No Debian, como posso instruir o clevis/initramfs a desbloquear dois dispositivos LUKS antes da inicialização?
Atualmente, tenho ambos os dispositivos configurados para serem desbloqueados por meio do TPM2, o que está configurado corretamente, pois posso regenerar as vinculações sem precisar fornecer a senha do volume.
~# clevis luks regen -d /dev/nvme0n1 -s 1
Regenerating binding (device /dev/nvme0n1, slot 1):
Pin: tpm2, Config: '{"hash":"sha256","key":"ecc","pcr_bank":"sha256","pcr_ids":"REDACTED"}'
Do you want to proceed? [ynYN] y
Binding regenerated successfully
~# clevis luks regen -d /dev/nvme1n1p3 -s 0
Regenerating binding (device /dev/nvme1n1p3, slot 0):
Pin: tpm2, Config: '{"hash":"sha256","key":"ecc","pcr_bank":"sha256","pcr_ids":"REDACTED"}'
Do you want to proceed? [ynYN] y
Binding regenerated successfully
Dentro do /etc/crypttab
, ambos os dispositivos são listados e o UUID corresponde aos crypto_LUKS
dispositivos em blkid
. O uso update-initramfs -u
não reclama sobre referências ausentes.
nvme0n1_crypt UUID=REDACTED none luks,discard
nvme1n1p3_crypt UUID=REDACTED none luks,discard
No entanto, sempre que eu inicializo, apenas o segundo dispositivo nvme1n1p3_crypt
é automaticamente descriptografado sem que o primeiro dispositivo seja mencionado. Depois de um tempo, a inicialização falha com a seguinte mensagem.
Please unlock disk nvme1n1p3_crypt:
cryptsetup: nvme1n1p3_crypt: set up successfully
Gave up waiting for suspend/resume device
Gave up waiting for root file system device. Common problems:
...
(initramfs)
A partir daí, tenho que abrir manualmente o segundo dispositivo antes de prosseguir.
(initramfs) cryuptsetup luksOpen /dev/nvme0n1 nvme0n1_crypt
Enter passphrase for /dev/nvme0n1: # Provided passphrase
(initramfs) exit
/dev/mapper/lab--vg-root: clean, REDACTED files, REDACTED blocks
Os dispositivos são configurados da seguinte forma:
~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
nvme0n1 259:0 0 ----- 0 disk
└─nvme0n1_crypt 252:1 0 ----- 0 crypt
├─lab--vg-data_tmeta 252:4 0 ----- 0 lvm
│ └─lab--vg-data-tpool 252:6 0 ----- 0 lvm
│ ├─lab--vg-data 252:7 0 ----- 1 lvm
│ └─... 252:22 0 ----- 0 lvm
└─lab--vg-data_tdata 252:5 0 ----- 0 lvm
└─lab--vg-data-tpool 252:6 0 ----- 0 lvm
├─lab--vg-data 252:7 0 ----- 1 lvm
└─... 252:22 0 ----- 0 lvm
nvme1n1 259:1 0 ----- 0 disk
├─nvme1n1p1 259:2 0 ----- 0 part /boot/efi
├─nvme1n1p2 259:3 0 ----- 0 part /boot
└─nvme1n1p3 259:4 0 ----- 0 part
└─nvme1n1p3_crypt 252:0 0 ----- 0 crypt
├─lab--vg-root 252:2 0 ----- 0 lvm /
├─lab--vg-swap_1 252:3 0 ----- 0 lvm [SWAP]
├─lab--vg-data_tmeta 252:4 0 ----- 0 lvm
│ └─lab--vg-data-tpool 252:6 0 ----- 0 lvm
│ ├─lab--vg-data 252:7 0 ----- 1 lvm
│ └─... 252:22 0 ----- 0 lvm
└─lab--vg-data_tdata 252:5 0 ----- 0 lvm
└─lab--vg-data-tpool 252:6 0 ----- 0 lvm
├─lab--vg-data 252:7 0 ----- 1 lvm
└─... 252:22 0 ----- 0 lvm
~# uname -a
Linux lab 6.8.12-4-pve #1 SMP PREEMPT_DYNAMIC PMX 6.8.12-4 (2024-11-06T15:04Z) x86_64 GNU/Linux
Para que o initramfs desbloqueie dispositivos arbitrários, a
initramfs
opção pode ser usada no/etc/crypttab
arquivo.De acordo com o manual crypttab(5) :