Приобрел на днях девайс, и решил накатить Gentoo с шифрованным корневым разделом. Итого:
/dev/nvme0n1p1 - /boot/efi (vfat)
/dev/nvme0n1p2 - /boot (ext4)
/dev/nvme0n1p3 - раздел с luks2 с /
Я решил не использовать LVM в качестве дополнительной прослойки - грубо говоря скопипастил отсюда: https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting_an_entire_system#LUK...
В итоге в чруте все работает, cryptsetup luksOpen /dev/nvme0n1p3 rootfs отлично отрабатывает, запрашивает пароль, затем монтируется. Туда навернул ядро, собрал. После n-ых попыток все-таки правильно сконфигурил граб, собрал initrd (dracut):
dracut -a crypt --lz4 --hostonly '' 4.19.57-gentoo-build-1 --force
В итоге я загружаюсь, вижу предложение ввести пароль, и после ввода оно мне говорит wrong password (хотя с livecd с systemrescuecd все «ок»). Версии одинаковы в установленной системе и той, с которой гружусь. Если запустить в вывалившемся initrd команду cryptsetup с дебагом, то там видно что-то вроде
# dm status rootfs [ opencount noflush ] [16384] (*1)
# Keyslot 0 priority 1 != 2 (required), skipped.
# Trying to open LUKS2 keyslot 0
# Keyslot 0 (luks2) open failed with -22
Если запускать с livecd, последняя строчка вычитывает адрес:
# Reading keyslot area [0x8000]
и открывает устройство. Может коллективный разум ЛОРа подскажет, как чинить?
P.S. как я понял, luks1 и luks2 форматы разные, такое впечатление. что оно не может вычитать luks2 формат