Benutzer-Werkzeuge

Webseiten-Werkzeuge


thoschwiki:linux:ubuntumatebtrfsencrypted

Dies ist eine alte Version des Dokuments!


Ubuntu Mate mit verschlüsseltem Btrfs

Die Seite befindet sich im Aufbau.

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.

Ausgangslage

Vorarbeiten

LUKS-Partition und Btrfs-root-Filesystem anlegen

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
An der Stelle ist darauf hinzuweisen, dass Dateisystem nicht auf dem physikalischem Gerät /dev/sda2, sondern im logischen Volume /dev/mapper/cryptdata erstellt wird.

Mount-Option für SSD anpassen (Optional)

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:

  • Zeite 24:
    options="${options:+$options,}subvol=@,ssd,noatime,space_cache,commit=120,compress=zstd"
  • Zeile 31:
    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:

  • Zeite 30:
    pass=0
  • Zeite 31:
    home_options="${options:+$options,}subvol=@home,ssd,noatime,space_cache,commit=120,compress=zstd"
  • Zeite 32:
    options="${options:+$options,}subvol=@,ssd,noatime,space_cache,commit=120,compress=zstd"
  • Zeite 36:
    pass=0
  • Zeite 37:
    options="${options:+$options,}subvol=@home,ssd,noatime,space_cache,commit=120,compress=zstd"
  • Zeite 40:
    pass=0
  • Zeite 56:
    echo "$home_path" "$home_mp" btrfs "$home_options" 0 0
Sofern man im vorherigen Schritt Anpassungen an den Optionen vorgenommen hat (hier: compress=zstd weggelassen), sind die Zeilen 31, 32 und 37 entsprechend anzupassen.

Installation durchführen

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.

Nacharbeiten

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
Sofern man bei den Vorarbeiten Anpassungen an den Mount-Optionen vorgenommen hat (hier: 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 Ausgaben können je nach individueller (Hardware)Konfiguration unterschiedlich ausfallen.

cryptab erstellen

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…)

Swap verschlüsseln

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)

Quellen

thoschwiki/linux/ubuntumatebtrfsencrypted.1606146913.txt.gz · Zuletzt geändert: 23.11.2020 16:55 von thosch