UEFI Grub не может загрузить зашифрованную систему Ubuntu 21.04: не могу найти команду `cryptomount '

Я вручную (т.е. с помощью пользовательских сценариев) устанавливаю систему Ubuntu 21.04.

Мой GPT-диск состоит из двух разделов. Системный раздел EFI и зашифрованный раздел BTRFS LUKS (версия 1).

При загрузке grub отображает следующие сообщения об ошибках, а затем переходит к приглашению grub .

error: file `/boot' not found.
error: no such device: /.disk/info.
error: no such device: /.disk/mini-info.
error: can't find command `cryptomount'.

Мой вопрос: как мне предоставить / активировать команду cryptomount внутри Grub?

(Если я наберу help в приглашении grub , команда cryptomount не указана.)

Интересно, что если я добавлю загрузочный раздел BIOS типа ef02 , установлю версию BIOS Grub и загрузю систему в режиме BIOS , загрузка будет успешной. Однако я хочу, чтобы диск загружался в системе UEFI.

Справочная информация:

Я просмотрел инструкции по приведенной ниже ссылке и не вижу ничего, что мне нужно сделать, чтобы включить команду cryptomount . Я попытался добавить insmod cryptomount в /boot/efi/EFI/BOOT/grub.cfg , но это не сработало.

https://cryptsetup-team.pages.debian.net/cryptsetup/encrypted-boot.html

Раньше я вручную устанавливал Ubuntu с разделом с открытым текстом / boot и зашифрованным разделом / , и все работало. Итак, новый элемент состоит в том, что я пытаюсь поместить каталог / boot в зашифрованный раздел / . Я также установил Void Linux с / boot на зашифрованный раздел, и это сработало, как и ожидалось.

/boot/efi/EFI/BOOT/grub.cfg :

cryptomount -u e5f6f8f5dc3944cbb6d8d99b1f17b343
search.fs_uuid 5e42bb87-3342-48b6-aff5-f2519063f9b9 root 
cryptouuid/e5f6f8f5dc3944cbb6d8d99b1f17b343 
set prefix=($root)'/@_2107_hirsute/boot/grub'
configfile $prefix/grub.cfg

Я устанавливаю grub , выполнив следующее:

opts=''
opts="$opts  --force"
opts="$opts  --no-floppy"
opts="$opts  --recheck"
opts="$opts  --removable"

opts="$opts  --target=x86_64-efi"
opts="$opts  --efi-directory=/boot/efi"
opts="$opts  --bootloader-id=Ubuntu"

chroot  /mnt  grub-install  $opts
0
задан 15 July 2021 в 03:10

1 ответ

Похоже, что выполнение следующих команд (от имени пользователя root) в следующем порядке внутри среды chroot установки приведет к созданию файлов Grub в / boot / efi / EFI / BOOT / , который позволит Grub читать ядро ​​и файл initrd.img из каталога / boot в зашифрованном разделе / .

#  echo  'GRUB_ENABLE_CRYPTODISK=y'  >>  /etc/default/grub
#  apt-get  install  -y  --reinstall  grub-efi-amd64-signed
#  update-initramfs  -c  -k all
#  grub-install  /dev/vda
#  update-grub

Источник: https://mutschler.eu/linux/install-guides/ubuntu-btrfs/#install-the-efi-bootloader

Раньше я выполнял большинство или все вышеперечисленные команды, но в другом порядке.

После этого файлы будут выглядеть следующим образом:

# ls -l /boot/efi/EFI/BOOT
total 1680
-rwx------ 1 root root 1718144 Jul 17 16:08 BOOTX64.EFI
-rwx------ 1 root root     224 Jul 17 06:13 grub.cfg

# cat /boot/efi/EFI/BOOT/grub.cfg 
cryptomount -u a771eeddca6942c0be0ac88852a9b45b
search.fs_uuid ae60b399-84bd-4a08-b0aa-7f33a847b873 root 
cryptouuid/a771eeddca6942c0be0ac88852a9b45b 
set prefix=($root)'/@_2107_hirsute/boot/grub'
configfile $prefix/grub.cfg

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

До выполнения вышеуказанных команд в указанном выше порядке размер файла BOOTX64.EFI составлял 1,4 МБ, тогда как теперь он составляет 1,7 МБ.

Я не знаю другого способа (кроме попытки перезагрузки) заглянуть внутрь BOOTX64.EFI и убедиться, что он действительно содержит модуль криптодиска .

0
ответ дан 28 July 2021 в 11:18

Другие вопросы по тегам:

Похожие вопросы: