documentation/docs/void-desktop-setup/Installation-with-LVM.md

3.6 KiB

Installation with LVM

To install the Void Linux distribution on the system, the encrypted partition and the efi partition have to be mounted to the main system.

# mount /dev/mapper/lv0-root /mnt
# mkdir /mnt/boot
# mount /dev/disk/by-label/efi /mnt/boot
# for dir in dev proc sys run; do
> mkdir /mnt/$dir
> mount --rbind --make-rslave /$dir /mnt/$dir
> done

The "base-system" needs to be installed to the mounted drive. For this installation there is also other packages which are needed like NetworkManager, gummiboot and cryptsetup.

  • For glibc:
# xbps-install -Sy -R https://repo-default.voidlinux.org/current -r /mnt base-system cryptsetup gummiboot vim apparmor NetworkManager git lvm2 booster
  • For musl:
# xbps-install -Sy -R https://repo-default.voidlinux.org/current/musl -r /mnt base-system cryptsetup gummiboot vim apparmor NetworkManager git lvm2 booster

To get internet inside the chroot whilst installing the system, copy over the resolv.conf.

# cp /etc/resolv.conf /mnt/etc/

Entering the chroot and configuring the system.

# chroot /mnt
# chown root:root /
# chmod 755 /
# passwd root
# echo <hostname> > /etc/hostname

Adding the uuid of the root partition to crypttab by:

# blkid -o value -s UUID /dev/<disk2> >> /etc/crypttab

Now edit /etc/crypttab and insert:

root /dev/disk/by-uuid/<uuid> none

We can configure the fstab by editing /etc/fstab and inserting:

tmpfs /tmp tmpfs defaults,nosuid,nodev 0 0
efivarfs /sys/firmware/efi/efivars efivarfs defaults 0 0
/dev/disk/by-label/root / ext4 defaults,noatime 0 0
/dev/disk/by-label/home /home ext4 defaults,noatime 0 0
/dev/disk/by-label/efi /boot vfat defaults 0 2

Booster is a faster and more secure initramfs than Dracut.

To configure booster create a file /etc/booster.yaml which contains:

busybox: true
modules: vfat,nls_cp437,nls_iso8859_1
enable_lvm: true

Then to remove dracut from the system first create a config file at /etc/xbps.d/no-dracut.conf

ignorepkg=dracut

And after that delete it from the system with:

# xbps-remove -Ry dracut

Now mount efivarfs to /sys/firmware/efi/efivars.

# mount -t efivarfs efivarfs /sys/firmware/efi/efivars

And install gummiboot.

# gummiboot install

Create /boot/loader/void-options.conf to configure gummiboot.

# touch /boot/loader/void-options.conf

The uuid is needed again and can be obtained by:

# blkid -o value -s UUID /dev/<disk2> >> /boot/loader/void-options.conf

Now edit /boot/loader/void-options.conf and insert:

rw rd.luks.name=<uuid>=root root=/dev/disk/by-label/root quiet splash apparmor=1 security=apparmor loglevel=1 rd.lvm.vg=lv0

To obtain a boot menu. A timeout may be added to /boot/loader/loader.conf.

timeout 4

If running glibc the locales have to be configured, to configure the locales edit /etc/default/libc-locales and uncomment.

en_US.UTF-8 UTF-8

And reconfigure the locales.

 # xbps-reconfigure -f glibc-locales

To obtain better security, apparmor will be set to enforce. By editing /etc/default/apparmor and inserting:

APPARMOR=enforce

To set the internal network edit /etc/hosts and insert.

127.0.1.1 <hostname>

Finally reconfigure the linux kernel.

# xbps-reconfigure -f linux<version>

Exit the chroot.

# exit

Do not forget to umount. (I always do).

# umount -Rf /mnt

And reboot.

# shutdown -r now