尝试从完整 Linux 安装 GRUB 到 USB 闪存驱动器时,grub-install:错误:无法获取“/efi/boot”的规范路径

尝试从完整 Linux 安装 GRUB 到 USB 闪存驱动器时,grub-install:错误:无法获取“/efi/boot”的规范路径

我正在尝试将 GRUB 安装到 USB 作为引导加载程序,以便我可以启动通常无法启动到 NVMe 的系统。

最好使用安全的 UEFI 启动方式。

对于一个完全不了解 Linux 和 GRUB 的人来说,我已经花了超过 10 个小时进行概念形成和初步研究。

在完全支持 NVMe 启动且安装了完整 Linux 的镜像系统上,我创建了 GTP 闪存盘,格式化为 EFI 分区,并将 EFI 分区挂载到 /efi

user@user-PC:/$ sudo -s
[sudo] password for user: 

root@user-PC:/# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0         7:0    0  55.5M  1 loop /snap/core18/1988
loop1         7:1    0   219M  1 loop /snap/gnome-3-34-1804/66
loop2         7:2    0  64.8M  1 loop /snap/gtk-common-themes/1514
loop3         7:3    0    51M  1 loop /snap/snap-store/518
loop4         7:4    0  31.1M  1 loop /snap/snapd/11036
sda           8:0    1   3.6G  0 disk 
├─sda1        8:1    1   256M  0 part ### This is the EFI partition, so Linux wont mount it
└─sda2        8:2    1   3.4G  0 part /media/user/DATA
sr0          11:0    1  1024M  0 rom  
nvme0n1     259:0    0 238.5G  0 disk 
├─nvme0n1p1 259:1    0   100M  0 part /boot/efi
├─nvme0n1p2 259:2    0    16M  0 part 
├─nvme0n1p3 259:3    0 137.9G  0 part 
├─nvme0n1p4 259:4    0   499M  0 part 
└─nvme0n1p5 259:5    0   100G  0 part /

root@user-PC:/# mkfs.msdos -F 32 -n GRUB2EFI /dev/sda1
mkfs.fat 4.1 (2017-01-24)
root@user-PC:/# mount /dev/sda1 /efi

root@user-PC:/# mkdir -p /efi/etc/default
root@user-PC:/# cp -a /etc/grub.d /efi/etc
root@user-PC:/# cp /etc/default/grub /efi/etc/default

root@user-PC:/home/user# grub-install --target=x86_64-efi --uefi-secure-boot --efi-directory=/efi/boot --bootloader-id=GRUB --removable --verbose
Installing for x86_64-efi platform.
grub-install: info: adding `hd0' -> `/dev/nvme0n1' from device.map.
grub-install: info: adding `hd1' -> `/dev/sda' from device.map.
grub-install: error: failed to get canonical path of `/efi/boot'.
root@user-PC:/home/user#

请看最后一行。有哪位专家能解释一下吗?非常感谢,谢谢。

答案1

睡了一晚后,我考虑阅读更多参考资料并重新检查我的命令。

YouTube 教程基于 BIOS/MBR,但基本步骤相同

GRUB/UEFI 参考

在我/bootgrub-install命令中删除后它起作用了:

grub-install --target=x86_64-efi --uefi-secure-boot --efi-directory=/efi --bootloader-id=GRUB --removable –verbose

这是 UEFI 启动。为了测试它,我插入了 USB,并在 BIOS 启动设置中禁用了来自 NVMe 的启动项。USB 中的绿灯闪烁,启动正常。在没有 USB 的情况下重新启动计算机,计算机(正确地)无法找到启动设备。

我要出去了,一旦我有机会恢复系统并重复该过程,我就会发布完整的命令历史记录(我已经备份了系统以反复测试它)

相关内容