如何在 USB 拇指驱动器上为完全可移植的 Linux 制作 grub,而无需将条目写入系统 EFI?

如何在 USB 拇指驱动器上为完全可移植的 Linux 制作 grub,而无需将条目写入系统 EFI?

我已经在 USB 拇指驱动器上安装了 Debian Bullseye。当我从中插入拇指驱动器笔记本电脑启动项时,因为 UEFI 中有一个条目“debian”。用sudo efibootmgr -b <boot entry number> -B拇指驱动器将其移除后,在从 UEFI 启动管理器中选择它后,它不再启动。它不再可启动,因为 UEFI 使用了默认的 Windows 启动管理器启动项。

之后我使用了 Ubuntu Live 系统并发布了

sudo mount /dev/sdXY /mnt
sudo mount /dev/sdXX /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
grub-install --no-nvram --removable /dev/sdX
update-grub  

像这里描述的一样https://askubuntu.com/a/831241并添加选项--no-nvram --removable,请参阅https://www.systutorials.com/docs/linux/man/8-grub-install/

现在从 EFI 启动管理器中选择拇指驱动器时,它会启动,但会显示一条消息“启动选项恢复”,该消息可以在大约 6 秒内取消。此后系统重新启动,然后加载 grub 并启动系统。但是现在debianUEFI 系统中又出现了。

使用--no-nvram与否没有区别。要从此拇指驱动器启动,UEFI 中有一个条目。如何防止这种情况发生?从 Acronis Media 或 USB 拇指驱动器上的 Ubuntu Live 媒体启动时,它会启动而不修改系统的 UEFI 启动条目表。所以这应该是可能的。

更新:您可以按任意键,然后选择继续启动而不重置系统并始终继续启动。然后不再显示“启动选项恢复”窗口,而是立即显示 grub,但操作系统仍会写入 UEFI 启动顺序。

答案1

如果您的 USB 格式为 fat(或 vfat),则只需在其上创建一个 /EFI 目录并在那里安装 grub。除非它不是 fat 格式,否则不需要单独的 EFI 分区。

BIOS 不需要知道该 EFI 条目,因此您不需要使用 efibootmgr 安装它。但是,您可能需要告诉您的 BIOS 启动 USB,可以手动启动(每次启动时从手动启动菜单中选择它)或将 USB 放入启动顺序中。

相关内容