muzi
Исходя из предоставленных вами данных, я предполагаю, что файл /etc/crypttab должен выглядеть следующим образом:
keystore-rpool UUID=18114400123631025246 /boot/rootkey.enc luks,keyscript=decrypt_opensc
Объяснение параметров:
• keystore-rpool: это имя, которое будет использоваться для отображения в /dev/mapper/. Его можно изменить.
• UUID=<UUID>: это UUID зашифрованного раздела /dev/nvme0n1p4.
• /boot/rootkey.enc: ключ, который будет использоваться для разблокировки.
• luks: указывает, что используется шифрование LUKS.
• keyscript=decrypt_opensc: скрипт для разблокировки.
Я предполагаю, что в вашем случае необходимо расшифровывать именно раздел /dev/nvme0n1p4, потому что исходя из команды blkid, этот раздел имеет LABEL: rpool и TYPE="zfs_member".
В стандартной установке Ubuntu с ZFS корневая файловая система (/) монтируется из ZFS пула под именем rpool (root pool), и, как правило, именно этот раздел должен быть доступен после расшифровки.
Не забудьте обновить initramfs:
sudo update-initramfs -u
Также проверьте, включена ли служба pcscd:
sudo systemctl status pcscd
Если служба не запущена, выполните:
sudo systemctl start pcscd
sudo systemctl enable pcscd
После загрузки выполните:
ls /dev/mapper/
Убедитесь, что присутствуют следующие устройства:
keystore-rpool
Если советы выше не помогут, то советую переместить /boot/rootkey.enc в раздел /root/rootkey.enc или даже в initramfs. Возможно, в вашем случае, раздел boot монтируется после разблокировки LUKS, перед загрузкой ОС. Только не забудьте обновить initramfs после переноса ключа, и прописать актуальный путь к ключу в crypttab.
Главное, чтобы файл rootkey.enc был доступен на незашифрованном разделе для расшифровки LUKS диска. Хранение rootkey.enc на незашифрованном разделе необходимо и безопасно, ведь сам ключ расшифровывается через Рутокен с момент расшифровки LUKS диска.
Для безопасности, рекомендую удалить расшифрованный ключ, а именно rootkey.dec, как указано в нашей статье.
Данная инструкция не проверялась на Ubuntu 24.04.1, но механизмы работы LUKS с версии Ubuntu 22.04.3 LTS, насколько мне известно, не изменились. Предполагаю, что инструкция должна работать исправно и на этой версии ОС.