170 lines
3.6 KiB
Markdown
170 lines
3.6 KiB
Markdown
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
|
|
```
|