Ubuntu + ZFS + Encryption + Multiboot auf einer Festplatte

dorian.grey

Ensign
Registriert
Dez. 2010
Beiträge
221
Moin,
Ich habe herausgefunden wie man z.B. auf einem Laptop ein Ubuntu mit Festplattenverschlüsselung neben einem anderen System installieren kann.
Der normale Weg ist die Festplatte mit LUKS+dm-crypt bei der Installation zu verschlüsseln und später den Verschlüsselungscontainer und die darin befindlichen Partitionen zu verkleinern. Dauert lange, ist schwierig und fehleranfällig.

Einfacher geht es mit ZFS. In Ubuntu 20.04. kann der Installer bei der Installation ZFS als Dateisystem einrichten.
Normalerweise leider nur für die gesamte Festplatte und ohne Verschlüsselung. Ein zweites Betriebssystem ist damit nicht möglich.

Dann habe ich diese Anleitung gefunden https://pov.es/linux/ubuntu/ubuntu-20-04-install-ubuntu-with-zfs-and-encryption/ und modifiziert.

1. Ihr startet vom Ubuntu USB Stick. Wählt "Ubuntu ausprobieren" um die Oberfläche zu starten.
2. Öffnet ein Terminal und gebt die folgenden Befehle ein
sudo su
nano /usr/share/ubiquity/zsys-setup

Sucht die Zeilen in denen die Größe des bpools definiert wird. Bei Ubuntu 20.04.1 sind es die folgenden Zeilen:
Zeilen 270-272
${partprefix}${partswap} : size= ${ss}M, type=0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
${partprefix}${partbpool} : size= ${bpool_size}M, type=6A82CB45-1DD2-11B2-99A6-080020736631
${partprefix}${partrpool} : type=6A85CF4D-1DD2-11B2-99A6-080020736631

285-287
${partprefix}${partswap} : size= ${ss}M, type=82
${partprefix}${partbpool} : size= ${bpool_size}M, type=a5
${partprefix}${partrpool} : type=a5

Da wo nichts steht kann man die größe des rpools in M oder G definieren (200G für 200GiB):
Lines 270-272
${partprefix}${partswap} : size= ${ss}M, type=0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
${partprefix}${partbpool} : size= ${bpool_size}M, type=6A82CB45-1DD2-11B2-99A6-080020736631
${partprefix}${partrpool} : size= 200G, type=6A85CF4D-1DD2-11B2-99A6-080020736631

285-287
${partprefix}${partswap} : size= ${ss}M, type=82
${partprefix}${partbpool} : size= ${bpool_size}M, type=a5
${partprefix}${partrpool} : size= 200G type=a5

Dann sucht Ihr mit der Suchfunktion "# Pools". Bei mir Zeile 316ff
Unverändert sieht sie so aus:

# Pools
# rpool
zpool create -f \
-o ashift=12 \
-o autotrim=on \
-O compression=lz4 \
-O acltype=posixacl \
-O xattr=sa \
-O relatime=on \
-O normalization=formD \
-O mountpoint=/ \
-O canmount=off \
-O dnodesize=auto \
-O sync=disabled \
-O mountpoint=/ -R "${target}" rpool "${partrpool}"

# Pools
# rpool
echo PASSWORD | zpool create -f \
-o ashift=12 \
-O compression=lz4 \
-O acltype=posixacl \
-O xattr=sa \
-O relatime=on \
-O normalization=formD \
-O mountpoint=/ \
-O canmount=off \
-O dnodesize=auto \
-O sync=disabled \
-O recordsize=1M \
-O encryption=aes-256-gcm \
-O keylocation=prompt \
-O keyformat=passphrase \
-O mountpoint=/ -R "${target}" rpool "${partrpool}"

Datei speichern.
3. Den installer starten. Entweder vom Desktop oder durch "ubiquity" im Terminal.
4. Bei den Formatierungsoptionen "ZFS nutzen" auswählen und dass die ganze Platte genutzt werden soll. Die ZFS Partition wird trotzdem nur so groß wie von Euch definiert.
 
Ich bin mir nicht sicher ob das noch gilt, aber es war Mal so, dass die zfs Performance deutlich gelitten hat, wenn eine Partition statt des ganzen devices verwendet wurde. Ich glaube irgendwelche Caches wurden deaktiviert, weil zfs nicht mehr damit rechnet den Cache des devices exklusiv nutzen zu können.

Weiß jemand ob das noch so ist?
 
  • Gefällt mir
Reaktionen: dorian.grey
KurzGedacht schrieb:
Ich glaube irgendwelche Caches wurden deaktiviert, weil zfs nicht mehr damit rechnet den Cache des devices exklusiv nutzen zu können.
Mich würde interessieren wie man das testet.
Bemerkt habe ich es nicht. Was beim Laptop aber auch nichts heißt. Das Gerät läuft flott.
Ich lese und schreibe nicht ständig große Dateien bzw. immer von oder an Laufwerke die langsamer sind (USB Festplatten oder Netzwerk).
 
Zurück
Oben