Как расшифровать, создать и смонтировать зашифрованный пул zfs raidz LUKS при запуске?

335
PhiloEpisteme

У меня есть Ubuntu-18.04, на котором установлена ​​ОС с SSD, которую я НЕ хочу зашифровывать. У меня есть 3 дополнительных диска по 2 ТБ, которые я хотел бы использовать в качестве зашифрованного (через LUKS) дополнительного хранилища RAID-Z1. Я хотел бы использовать разные фразы для каждого диска, получать подсказки для каждой ключевой фразы во время загрузки, а также автоматически создавать и монтировать пул raidz при загрузке.

Я следовал следующему уроку.

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

В приведенном выше руководстве описывается шифрование как загрузочного диска, так и дополнительного накопителя. Поскольку я не пытаюсь зашифровать загрузочный диск, я попытался разобрать все, что с этим связано, и выполнить только операции, необходимые для создания дополнительного хранилища на 3 накопителях по 2 ТБ, которые мне интересны.

У меня был некоторый успех в том, что выполнение следующих шагов, кажется, зашифровывает каждый диск с помощью собственной парольной фразы, и я могу превратить их в пул raidz. Есть две точки отказа, которые мне не удалось устранить:

  1. Моя система не запрашивает пароль для расшифровки во время загрузки.
  2. Пул raidz не создается и не монтируется при запуске. Вероятно, по крайней мере, частично из-за первой проблемы.

После загрузки машины я могу вручную расшифровать, а затем импортировать ранее созданный пул без проблем. Вот мои настройки настройки до сих пор.

$ 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 ответов на вопрос

Похожие вопросы