Я вручную (т.е. с помощью пользовательских сценариев) устанавливаю систему 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
Похоже, что выполнение следующих команд (от имени пользователя 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
и убедиться, что он действительно содержит модуль криптодиска
.