如何从 Grub 命令行启动到 efi USB 驱动器

如何从 Grub 命令行启动到 efi USB 驱动器

我正在尝试从 Grub 启动到 USB 记忆棒,我找到了一些网站来解释如何操作,但当我按照这些说明操作时,似乎不起作用。我认为这些指南可能已经过时了。我确实发现https://askubuntu.com/a/436735,但其中似乎仅涵盖了当 grub 上已经有正在运行的工作系统时如何向其中添加条目。

https://blog.viktorpetersson.com/2014/07/29/how-to-boot-from-usb-with-grub2.html告诉我从 grub shell 运行以下命令:

grub> linux (hd1,msdos1)/install/vmlinuz root=/dev/sdb1
grub> initrd (hd1,msdos1)/install/initrd.gz
grub> boot

但是该记忆棒仅包含 /efi/boot/bootx64.efi 和 /efi/boot/grubx64.efi。我通过设置set root=(hd1,msdos2)(即 USB 记忆棒)然后按 Tab 键找到了它find /。所以我的问题是:如何从该 USB 记忆棒启动 grub?

附言:在这台电脑上,从 BIOS 启动到 USB 似乎不起作用。

答案1

从 grub 启动 USB 上的 ISO 文件

您可以使用桌面 grub 循环挂载来启动 USB 上的 ISO。将以下菜单项(或类似内容)添加到 /etc/grub.d/40_custom:

menuentry "Ubuntu-18.04.1-desktop-amd64.iso" {
    set root=(hdx,1)
        loopback loop /Ubuntu-18.04.1-desktop-amd64.iso
        linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/Ubuntu-18.04.1-desktop-amd64.iso splash --
        initrd (loop)/casper/initrd.lz
    }

其中 x 是 USB 驱动器编号。

然后在终端运行:

sudo update-grub

如果想要持久性,可以添加一个标记为 casper-rw 的 ext4 持久分区,然后在 grub.cfg 的“splash --”后添加一个空格和单词“persistent”

从桌面 grub 启动完整安装 USB

您还可以使用桌面的 grub 启动完整安装 USB。

将您喜欢的菜单项从 USB 的 grub.cfg 复制到内部驱动器上的 /etc/grub.d/40_custom。

然后在终端运行:

sudo update-grub

答案2

如果您使用 balena Etcher 将 iso 映像刷入 USB,请使用 Windowz 磁盘工具再次查看。虽然 USB 的第一个分区有那些 bootx64.efi 文件,但您找不到 .iso 文件。

显然,balena Etcher 应用程序在创建某些发行版(例如 Kali)时遇到了问题。

相关内容