Wie entschlüsselt, erstellt und mounten Sie den LUKS-verschlüsselten zfs-raidz-Pool beim Start?

382
PhiloEpisteme

Ich habe eine Ubuntu-18.04-Box, auf der das Betriebssystem von einer SSD ausgeführt wird, die ich NICHT verschlüsseln möchte. Ich habe 3 zusätzliche 2-TB-Laufwerke, die ich als verschlüsselten (über LUKS) RAID-Z1 zusätzlichen Speicher verwenden möchte. Ich möchte für jede Festplatte eine andere Passphrase verwenden, als Startzeit für jede Passphrase aufgefordert werden und automatisch den raidz-Pool beim Booten erstellen und bereitstellen.

Ich habe das folgende Tutorial verfolgt.

https://help.ubuntu.com/community/encryptedZfs#ZFS_on_LUKS_Installation

Das obige Tutorial beschreibt das Verschlüsseln sowohl des Startlaufwerks als auch des zusätzlichen Speicherlaufwerks. Da ich nicht versuche, die Startdiskette zu verschlüsseln, habe ich versucht, alle relevanten Dinge herauszufinden und nur die erforderlichen Vorgänge auszuführen, um den zusätzlichen Speicher auf den 3 2-TB-Laufwerken zu erstellen, die mich interessieren.

Ich hatte einige Erfolge darin, dass das Abschließen der folgenden Schritte anscheinend jedes Laufwerk mit einem eigenen Passwort verschlüsselt, und ich kann sie in einen Raidz-Pool umwandeln. Es gibt zwei Fehlerpunkte, die ich nicht lösen konnte:

  1. Mein System fordert mich nicht zur Angabe der Passphrase beim Booten auf.
  2. Der Raidz-Pool wird beim Start nicht erstellt oder bereitgestellt. Wahrscheinlich zumindest teilweise wegen des früheren Problems.

Nach dem Booten der Maschine kann ich den zuvor erstellten Pool manuell entschlüsseln und importieren. Kein Problem. Hier sind meine bisherigen Setups.

$ sudo parted -a optimal /dev/sdb; sudo parted -a optimal /dev/sdc; sudo parted -a optimal /dev/sdd # the above parted command opens a prompt to enter commands. The following were the commands given # mklabel gpt # unit MB # mkpart vpool 1 -1 $ sudo apt install cryptsetup $ sudo cryptsetup luksFormat -c aes-xts-plain64 -s 512 -h sha512 /dev/sdb1 $ sudo cryptsetup luksFormat -c aes-xts-plain64 -s 512 -h sha512 /dev/sdc1 $ sudo cryptsetup luksFormat -c aes-xts-plain64 -s 512 -h sha512 /dev/sdd1 $ sudo cryptsetup luksHeaderBackup /dev/sdb1 --header-backup-file /home/user_home/luks_header_backup_sdb1; sudo cryptsetup luksHeaderBackup /dev/sdc1 --header-backup-file /home/user_home/luks_header_backup_sdc1; sudo cryptsetup luksHeaderBackup /dev/sdd1 --header-backup-file /home/user_home/luks_header_backup_sdd1 $ sudo cryptsetup luksOpen /dev/sdb1 vault1_crypt $ sudo cryptsetup luksOpen /dev/sdc1 vault2_crypt $ sudo cryptsetup luksOpen /dev/sdd1 vault3_crypt $ sudo fdisk -l # The above command was to check the sector size. because there is an old drive in there we have to use 512 sector size. This means using ashift=9 instead of ashift=12 when doing zpool create $ sudo zpool create -O mountpoint=none -o ashift=9 vault raidz1 /dev/mapper/vault1_crypt /dev/mapper/vault2_crypt /dev/mapper/vault3_crypt $ sudo zfs set mountpoint=/vault vault $ blkid # Copied value of each sdb1 sdc1 and sdd1 UUIDs $ sudo vim /etc/initramfs-tools/conf.d/cryptroot # Wrote as follows # target=vault,source=UUID=<UUID-from-blkid-for-sdb1>,key=none # target=vault,source=UUID=<UUID-from-blkid-for-sdc1>,key=none # target=vault,source=UUID=<UUID-from-blkid-for-sdd1>,key=none $ sudo update-initramfs -c -k all $ sudo update-grub; sudo grub-install /dev/sda 
0

0 Antworten auf die Frage