Im Folgenden wird eine Grundinstallation von void linux durchgeführt. Ziel ist eine Desktopinstallation auf einer vollverschlüsselten Festplatte. Als Desktopumgebung kommt Cinnamon zum Einsatz. Die Installation erfolgt exemplarisch auf einem Thinkpad x220. Daher kann es sein, dass einige Installationsschritte für dieses Notebook notwendig sind.
Zu Beginn wird ein aktuelles Bootmedium von void linux gestartet. Da die Installation manuell durchgeführt wird kann ein minimal Installationsmedium verwendet werden.
Zunächst wird die Festplatte partitioniert. Im Weiteren wird davon ausgegangen, dass auf die erste Festplatte /dev/sda installiert wird.
sudo cfdisk /dev/sda
Hier wird zunächst ein dos Label erstellt. Hintergund hierbei ist, dass es auf dem x220 beim Booten von gpt-Partitionen Probleme geben kann (das ist ein Fehler in alten Lenovo-Firmware).
Es wird eine primäre Partition angelegt, welche die komplette Festplatte umfasst. Die Partition wird als bootfähig markiert und das Partitionslayout auf die Festplatte geschrieben. Danach kann das Programm verlassen werden.
Nun wird ein luks-Container in der gerade erstellten Partition angelegt und geöffnet.
cryptsetup luksFormat /dev/sda1 cryptsetup luksOpen /dev/sda1 crypt-pool
Danach wird ein LVM in dem luks-Container angelegt. Es wird eine 20GB Swap-Partition angelegt und der Rest wird für / verwendet. An dieser Stelle kann nach eigenen Wünschen Partitioniert werden.
vgcreate pool /dev/mapper/crypt-pool lvcreate --name swap -L 20G pool lvcreate --name root -l100%FREE pool
Im Anschluss müssen die angelegten Partitionen vorbereitet werden.
mkfs.ext4 -L root /dev/mapper/pool-root mkswap -L swap /dev/mapper/pool-swap
mount /dev/mapper/pool-root /mnt mkdir /mnt/{dev,proc,sys} mount --rbind /dev /mnt/dev mount --rbind /proc /mnt/proc mount --rbind /sys /mnt/sys
xbps-install -S -R http://repo.voidlinux.eu/current -r /mnt base-system lvm2 cryptsetup grub
chroot /mnt /bin/bash passwd root chown root:root / chmod 755 / vi /etc/rc.conf
In der /etc/rc.conf werden die Zeilen folgenden Zeilen angepasst:
echo x220-void >/etc/hostname echo "LANG=de_DE.UTF-8" > /etc/locale.conf echo "de_DE.UTF-8 UTF-8" >> /etc/default/libc-locales xbps-reconfigure -f glibc-locales vi /etc/fstab
Zur /etc/fstab wird folgende Zeile hinzugefügt um den swap automatisch zu aktivieren:
/dev/mapper/pool-swap none swap sw 0 0
Anschließend wird die Konfiguration des Grub angepasst um von der verschlüsselten Partition starten zu können:
vi /etc/default/grub
Die Zeile GRUB_CMDLINE_LINUX_DEFAULT wird um den Wert rd.auto=1 ergänzt. Zusätzlich wird die Zeile GRUB_ENABLE_CRYPTODISK=y hinzugefügt. Die Konfiguration sollte dann in etwa so aussehen:
# # Configuration file for GRUB. # GRUB_DEFAULT=0 #GRUB_HIDDEN_TIMEOUT=0 #GRUB_HIDDEN_TIMEOUT_QUIET=false GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="Void" GRUB_CMDLINE_LINUX_DEFAULT="loglevel=4 slub_debug=P page_poison=1 rd.auto=1" # Uncomment to use basic console #GRUB_TERMINAL_INPUT="console" # Uncomment to disable graphical terminal #GRUB_TERMINAL_OUTPUT=console GRUB_BACKGROUND=/usr/share/void-artwork/splash.png GRUB_BACKGROUND=/usr/share/void-artwork/fire-1073217_1920.jpg #GRUB_GFXMODE=1920x1080x32 #GRUB_DISABLE_LINUX_UUID=true #GRUB_DISABLE_RECOVERY=true GRUB_ENABLE_CRYPTODISK=y
Nachdem die Konfiguration erstellt wurde wird Grub installiert und die initrd neu geschrieben:
grub-install /dev/sda xbps-reconfigure -f linux4.14
Die grundlegende Installation ist an dieser Stelle beendet und kann getestet werden. Hierzu die chroot-Umgebung verlassen und das System neu Starten.
Nun ist ein vollverschlüsseltes System installiert. Jedoch muss beim Booten zweimal das Kennwort zur Entschlüsselung der Festplatte eingegeben werden (einmal für die initrd und einmal zum endgültigen Starten des Systems). Dies wird im folgenden Abschnitt korrigiert.
Das System sollte sich nun starten lassen, mit dem Nachteil, dass man zweimal das Passwort zur Entschlüsselung der Festplatte eingeben muss.
Es wird ein zufälliges Keyfile erzeugt und dem luks-Container übergeben. Anschließend wird das Keyfile geschützt indem alle Benutzerrechte darauf entzogen werden.
dd bs=512 count=4 if=/dev/urandom of=/crypto_keyfile.bin cryptsetup luksAddKey /dev/sda1 /crypto_keyfile.bin chmod 000 /crypto_keyfile.bin chmod -R g-rwx,o-rwx /boot
Nun wird der Key in der /etc/cryptab bekannt gemacht. Hierzu die Datei um folgende Zeile ergänzen:
crypt-pool /dev/sda1 /crypto_keyfile.bin luks
Nun muss das Keyfile und die /etc/crypttab noch ins initrd gepackt werden. Hierzu wird die Datei /etc/dracut.conf.d/10-crypt.conf editiert um folgende Zeile ergänzt:
install_items+="/crypto_keyfile.bin /etc/crypttab"
Anschließend wird das initrd neu geschrieben
xbps-reconfigure -f linux4.14
Nun sollte das System beim Booten nur noch einmal das Passwort zur Festplattenentschlüsselung anfragen.