我正在手动(即通过自定义脚本)安装 Ubuntu 21.04 系统。
我的 GPT 磁盘有两个分区。一个是 EFI 系统分区,另一个是 LUKS(版本 1)加密的 BTRFS 分区。
在启动时,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
有趣的是,如果我添加ef02
BIOS 类型的启动分区,并安装 BIOS 版本的 Grub,并以 BIOS 模式启动系统,则启动将成功。但是,我希望磁盘在 UEFI 系统上启动。
背景信息:
我查看了以下链接中的说明,但我发现无需执行任何其他操作即可启用该cryptomount
命令。我尝试添加insmod cryptomount
到/boot/efi/EFI/BOOT/grub.cfg
,但没有成功。
https://cryptsetup-team.pages.debian.net/cryptsetup/encrypted-boot.html
之前,我手动安装了带有纯文本/boot
分区和加密/
分区的 Ubuntu,一切正常。所以新元素是我试图将目录放在/boot
加密/
分区上。我还在/boot
加密分区上安装了 Void Linux,一切正常。
/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
答案1
看来,在安装 chroot 环境中按以下顺序运行以下命令(以 root 身份)将生成 Grub 文件,以便 Grub从加密分区上的目录中/boot/efi/EFI/BOOT/
读取内核和文件。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.4M,而现在为 1.7M。
我不知道有什么方法(除了尝试重新启动)来查看内部BOOTX64.EFI
并验证它是否确实包含该cryptodisk
模块。