shithub: docs.9front.org

ref: b962b3f7da70cc249ae70c77d513a0af0306a154
dir: /vmx.md/

View raw version
VMX
===

## Installing Void Linux

This guide describes a "chroot" installation type, full manual.  Basic
ideas are the same if you want to follow the more usual TUI
installation method.  As always, refer to the
[docs](https://docs.voidlinux.org/installation/live-images/guide.html).

Download a live ISO image, copy the kernel and initrd.

	hget https://alpha.de.repo.voidlinux.org/live/current/void-live-x86_64-20210218.iso > void.iso
	9660srv
	mount /srv/9660 /n/void void.iso
	cp /n/void/boot/^(vmlinuz initrd) .
	unmount /n/void
	rm /srv/9660

Generate a random MAC address (12 characters).  It might make sense to
keep it static across vmx restarts so it's possible to pin virtualized
Void to a specific IP address.

	# hold my beer
	dd -quiet 1 -if /dev/random -bs 6 -count 1 | xd -1 | awk '{$1=""; print $0}' | tr -d ' '
	# replace XXXXXXXXXXXX with the MAC address
	# replace /dev/sdN0/linux with the disk file allocated to The Void
	vmx -M 4G -n 'ea:XXXXXXXXXXXX!/net/ether0' -v text -d /dev/sdN0/linux -d void.iso -m initrd vmlinuz 'root=live:CDLABEL=VOID_LIVE loglevel=4'

Enter The Void as root with "voidlinux" password and continue with installation.

	ip addr # notice the ip address

Ssh to Void. It could be a bit easier to type.

	ssh anon@ipaddress
	# see the line with the thumbprint and execute it
	vt -rxb 'ssh anon@ipaddress' # the password is "voidlinux"

Continue with the installation process.

	bash # just for completion
	su   # work as root
	mkfs.ext4 -L voidroot /dev/vda # root parition, ext4
	mount /dev/vda /mnt
	cd /tmp
	export REPO=https://alpha.de.repo.voidlinux.org/current
	export XBPS_ARCH=x86_64
	xbps-install -Sy -r /tmp -R $REPO xz # need xz to unpack rootfs
	xbps-fetch https://alpha.de.repo.voidlinux.org/live/current/void-x86_64-ROOTFS-20210218.tar.xz
	cp usr/bin/xz /usr/bin
	tar xvf void-x86_64-ROOTFS-*.tar.xz -C /mnt/
	mount --rbind /sys /mnt/sys && mount --make-rslave /mnt/sys/
	mount --rbind /dev /mnt/dev && mount --make-rslave /mnt/dev/
	mount --rbind /proc/ /mnt/proc/ && mount --make-rslave /mnt/proc/
	cp /etc/resolv.conf /mnt/etc/
	PS1='(void) ' chroot /mnt/ /bin/bash
	xbps-install -Suy xbps
	xbps-install -uy
	xbps-install -y base-system
	xbps-remove -y base-voidstrap
	echo void > /etc/hostname
	vi /etc/rc.conf  # optional, edit a few options (use UTC for clock)
	passwd           # type the new root password
	cp /proc/mounts /etc/fstab
	vi /etc/fstab    # remove proc, sys, devtmpfs and pts, change /dev/vda to LABEL=voidroot
	xbps-reconfigure -fa
	xbps-install chrony # OPTIONAL, to keep clock in sync
	ln -s /etc/sv/chronyd /var/service/
	# check out (and enable) other services in /etc/sv that you might need

Switch to another rio window and `cd` to where your void files are.
Now update the kernel and initramfs with the ones installed.

	sshfs -m /n/void -r /mnt/boot root@ipaddress
	cp /n/void/initram* initrd # overwrite
	cp /n/void/vmlinuz* vmlinuz # overwrite
	unmount /n/void

*NOTE* you'll need to repeat the above procedure each time the kernel
gets updated in Void.  Otherwise expect various shenanigans.

Switch back to `vt`.

	exit
	poweroff

Kill vmx, update its arguments, and run again.

	vmx -M 4G -n 'ea:XXXXXXXXXXXX!/net/ether0' -v text -d /dev/sdN0/linux -m initrd vmlinuz 'root=LABEL=voidroot loglevel=4'

Voila, you got yourself some Void. Continue with [postinstallation](https://wiki.voidlinux.org/Post_Installation).