Dies ist eine alte Version des Dokuments!
Bei der Installation soll ein Ubuntu Mate 20.04.1 in ein veschlüsseltes BTRFS-Filesystem installiert werden. Der Installationstool Ubiquity unterstützt die Art der Installation nicht aktiv. Daher sind diverse Vor- und Nacharbeiten notwendig.
Da GRUB das Entschlüsseln von LUKS-Partitionen im Format luks1 beherrscht, erfolgt die Verschlüsselung im luks1-Format.
LUKS-Partition einrichten:
cryptsetup luksFormat --type=luks1 /dev/sda2
An dieser Stelle wird die künftig zu verwendende Passphrase vorgegegeben.
cryptsetup luksOpen /dev/sda2 cryptdata
Nach der Eingabe der Passphrase sollte die folgende Ausgabe erscheinen:
control cryptdata
Im nächsten Schritt wird das Btrfs-Filesystem erstellen:
mkfs.btrfs /dev/mapper/cryptdata
/dev/sda2
, sondern im logischen Volume /dev/mapper/cryptdata
erstellt wird.
Da die Installation auf einer SSD erfolgt, können/sollten hier entsprechende Optionen für den mount-Vorgang vorgegeben werden:
nano /usr/lib/partman/mount.d/70btrfs
Hier können die folgenden Änderungen vorgenommen werden:
options="${options:+$options,}subvol=@,ssd,noatime,space_cache,commit=120,compress=zstd"
options="${options:+$options,}subvol=@home,ssd,noatime,space_cache,commit=120,compress=zstd"
Da die Hardware bereits etwas älter ist, habe ich auf den Option compress=zstd
verzichtet (Komma davor entfernen).
Entsprechende Folgeänderungen:
nano /usr/lib/partman/fstab.d/btrfs
Hier können die folgenden Änderungen vorgenommen werden:
pass=0
home_options="${options:+$options,}subvol=@home,ssd,noatime,space_cache,commit=120,compress=zstd"
options="${options:+$options,}subvol=@,ssd,noatime,space_cache,commit=120,compress=zstd"
pass=0
options="${options:+$options,}subvol=@home,ssd,noatime,space_cache,commit=120,compress=zstd"
pass=0
echo "$home_path" "$home_mp" btrfs "$home_options" 0 0
compress=zstd
weggelassen), sind die Zeilen 31, 32 und 37 entsprechend anzupassen.
Für die eigentliche Installation kann das Installationstool Ubiquity genutzt werden. Da das Tool eine im verschlüsselten root-Filesystem liegende „boot-Partition“ nicht unterstützt, muss das Erstellen des Bootloaders unterdrückt werden.
ubiquity --no-bootloader
Entsprechend dem obigen Layout der SSD sind bei den zu verwendenden Partitionen die folgenden Vorgaben zu machen:
Gerät | Formieren als | Mountpoint |
---|---|---|
/dev/mapper/cryptdata | btrfs | / |
/dev/sda3 | swap |
Am Ende der Installation startet mn nicht ins das frisch intsallierte system, sondern lässt das Fenster des Installationsprogrammes offen oder wählt Weiter ausprobieren.
Nach der eigentlichen Installation sind sind noch Anpassungen am Krypto-Setup vorzunehmen und der Bootloader einzurichten.
Als erste Schritt wechselt man in eine Change-root-Umgebung mit dem frisch installiertem System:
mount -o subvol=@,ssd,noatime,space_cache,commit=120,compress=zstd /dev/mapper/cryptdata /mnt mount -o subvol=@home,ssd,noatime,space_cache,commit=120,compress=zstd /dev/mapper/cryptdata /mnt/home
compress=zstd
weggelassen), sind beim mount
die Optionen (-o subvol=@,ssd,noatime…
entsprechend anzupassen.
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done sudo cp /etc/resolv.conf /mnt/etc/ sudo chroot /mnt
Eine kurze Kontrolle, ob alles richtig steht:
Alles richtig gemountet?
mount -av
Ergebnis:
/ : ignoriert /home : bereits eingehängt none : ignoriert
Und die Btrfs-Subvolumes:
btrfs subvolume list /
Ergebnis:
ID 256 gen 160 top level 5 path @ ID 257 gen 14 top level 5 path @home
Die Einträge für die crypttab
werden manuell angelegt:
export UUIDVDA3=$(blkid -s UUID -o value /dev/sda2) #this is an environmental variable echo "cryptdata UUID=${UUIDVDA3} none luks" >> /etc/crypttab
Und die /etc/crypttab
zu Kontrolle anzeigen…
cat /etc/crypttab
Ausgabe:
cryptdata UUID=8a06f062-cd19-4b53-917e-65461f5e27c7 none luks
(Die angezeigte UUID wird auf jeden Fall abweichen; ist halt unique…)
Die Swap-Partition sollte auch verschlüsselt werden. Ich weiche hier vom Vorgehen von Willi Mutschler ab, weil ich ggf. Hibernate oder Suspend-to-Disk nutzen möchte.
export SWAPUUID=$(blkid -s UUID -o value /dev/sda3)