На днях в OpenSUSE появилась поддержка systemd-boot, а значит, можно наконец перестать вводить пароль от LUKS при загрузке.
Вот такая структура ФС сейчас:
$ sudo lsblk -o NAME,TYPE,FSTYPE,LABEL,MOUNTPOINT
NAME TYPE FSTYPE LABEL MOUNTPOINT
loop0 loop /snap/gnome-3-28-1804
loop1 loop /snap/gnome-42-2204/1
loop2 loop /snap/gtk-common-them
loop3 loop /snap/bare/5
loop4 loop /snap/core18/2812
loop5 loop /snap/core18/2796
loop6 loop /snap/core22/1033
loop7 loop /snap/core22/1122
loop8 loop /snap/snapd/20290
loop9 loop /snap/singularityapp/
loop10 loop /snap/singularityapp/
loop11 loop /snap/snapd/20671
loop12 loop /snap/zoom-client/218
loop13 loop /snap/zoom-client/225
nvme0n1 disk
├─nvme0n1p1 part vfat ubuntu-seed /boot/efi
├─nvme0n1p2 part ext4 ubuntu-boot
├─nvme0n1p3 part crypto ubuntu-save-enc
└─nvme0n1p4 part crypto
└─cr_nvme-nvme.1c5c-435939424e303035393132323042413355-48464d32353647444a544e472d3833313041-00000001-part4
crypt LVM2_m
├─system-root lvm btrfs /var
├─system-swap lvm swap [SWAP]
└─system-home lvm btrfs /home
Порядок действий:
- Инициализируем TPM.
$ sudo tpm2_pcrextend 7
- С помощью Clevis биндим зашифрованный раздел к tpm2.
sudo clevis luks bind -d /dev/nvme0n1p4 tpm2 '{"pcr_ids":"7"}'
- Делаю заголовок от уже существующего контейнера LUKS:
sudo cryptsetup luksHeaderBackup /dev/nvme0n1p4 --header-backup-file luks2_tpm2_header.dat
- На всякий случай восстанавливаю LUKS с созданным заголовком:
sudo cryptsetup luksHeaderRestore /dev/nvme0n1p4 --header-backup-file luks2_tpm2_header.dat
- Пересобираю initramfs
sudo dracut --force --regenerate-all
Правильно ли я понимаю порядок действий и не похерю ли систему, если сделаю все как описал выше?