Как заставить Grub автоматически запускать cryptomount для загрузки своего файла конфигурации (зашифрованная загрузка)

Как заставить Grub автоматически запускать cryptomount для загрузки своего файла конфигурации (зашифрованная загрузка)

Итак, я пытаюсь запустить полностью зашифрованный загрузочный раздел. Я использую Funtoo, но в основном черпаю помощь из Arch wiki.

Поэтому я решил сделать что-то безумное/спорное: не разделять разделы boot/root. Моя настройка выглядит так:

/dev/nvme0n1p1  - EFI parition
/dev/nvme0n1p2  - Swap
/dev/nvme0n1p3  - Encrypted /

У меня /etc/default/grubв наличии следующее:

GRUB_ENABLE_CRYPTODISK=y
GRUB_PRELOAD_MODULES="luks cryptodisk"
GRUB_CMDLINE_LINUX="luks enc_root=/dev/nvme0n1p3 root=/dev/mapper/enc_root"

Все аргументы Linux залучше-initramfs. Я включаю ключ к файловой системе в ramdisk, чтобы он не запрашивал у меня пароль дважды.

Я установил Grub следующим образом:

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id="Funtoo Linux [GRUB]" --recheck --boot-directory=/boot/efi/EFI

Итак, в текущем состоянии я получаю приглашение на восстановление Grub. Он не может найти свой файл конфигурации (он находится на зашифрованном загрузочном/корневом диске). Поэтому я запускаю следующие команды:

insmod luks
cryptomount (hd1,gpt3)
set root=(crypto0)
configfile (crypto)/boot/grub/grub.cfg

..и у меня полностью загружающаяся/рабочая система! :)

Итак, мой вопрос: как настроить загрузчик Grub EFI, чтобы он автоматически загружал зашифрованный раздел (crypt0)и считывал его файл конфигурации?

Примечание: Grub определяет диск как (hd1,gpt3)наиболее вероятный, поскольку моя USB-флешка все еще подключена. Это должно измениться, (hd0,gpt3)если я отключу ее и перезагружу.

решение1

Оказывается, в Gentoo/Funtoo устройство сопоставления устройств для grub по умолчанию не включено. Я добавил следующее в /etc/portage/package.use:

sys-boot/grub device-mapper

Затем я снова установил grub, запустил grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id="Funtoo Linux [GRUB]" --recheckи перезагрузился, чтобы найти экран запроса пароля luks. После его ввода все загрузилось отлично.

Особая благодарность frostschutz, который предоставил решение в этой теме:

https://forums.gentoo.org/viewtopic.php?p=7972812#7972812

Связанный контент