我正在尝试将GRUB作为引导加载程序安装到USB上,这样我就可以引导到一个通常无法引导到NVMe的系统。
它是首选使用安全UEFI引导风格。
对于一个对Linux和GRUB完全陌生的人来说,我已经花了10多个小时在概念形成和初步研究上。
在一个安装了完全Linux的完全支持NVMe引导的镜像系统上,我创建了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#请看最后一行。有专家能在这上面照点光吗?非常感谢,谢谢。
发布于 2021-05-05 07:23:05
睡了一夜后,我想读更多的参考资料,并重新检查我的命令。
基于BIOS/MBR的YouTube教程,但底层步骤是相同的
在我从/boot命令中删除grub-install之后,它起了作用:
grub-install --target=x86_64-efi --uefi-secure-boot --efi-directory=/efi --bootloader-id=GRUB --removable –verbose这是UEFI的引导。为了测试它,我插入了USB和BIOS启动设置,禁用了NVMe中的引导条目。USB中的绿灯在闪烁,它启动正常。在没有USB的情况下重新启动计算机时,计算机无法(正确)找到启动设备。
一旦我有机会恢复系统并重复这个过程,我将发布完整的命令历史记录(我已经备份了系统,以反复测试它)。
https://askubuntu.com/questions/1336093
复制相似问题