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.

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

   hget > void.iso
   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=
   export XBPS_ARCH=x86_64
   xbps-install -Sy -r /tmp -R $REPO xz # need xz to unpack rootfs
   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.


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.