用于在 USB 驱动器上启动 Ubuntu 的 GRUB 菜单项

用于在 USB 驱动器上启动 Ubuntu 的 GRUB 菜单项

我使用了这篇文章中的答案来制作一个 GRUB 菜单项,以便从装有 Ubuntu 18.04 的 USB 驱动器启动:

如何添加 GRUB2 菜单项以启动 USB 驱动器上安装的 Ubuntu?

它说把这个放在 /etc/grub.d/40_custom 中:(使用您自己的 UUID)

menuentry "Boot from LIVE USB Drive" {
   search --set=root --fs-uuid CA05-C6FF
   linux ($root)/casper/vmlinuz boot=casper quiet splash --
   initrd ($root)/casper/initrd
}

您可以从脚本编辑 /etc/defaults/grub:

GRUB_DEFAULT="从 LIVE USB 驱动器启动"

然后执行:

sudo 更新 grub

在脚本中你可以执行:

sudo 重启

计算机将从 USB 启动 - 如果您在 USB 上运行的是 Ubuntu 18.04。如果您运行的是 20.04,GRUB 将停止并显示“错误:没有这样的设备:CA05-C6FF”

blkid 显示 UUID 正确:dfr@m9kmission:~$ blkid

/dev/sdb1:LABEL="UBUNTU 20_0" UUID="CA05-C6FF" TYPE="vfat" PARTUUID="1246c10c-01"

知道如何修复这个问题吗?

答案1

从内部 GRUB 启动 USB

我的 grub.cfg 文件中有三个闪存驱动器菜单项:

menuentry "Ubuntu - flash drive" {
    set root=(hdX,Y)
    set gfxpayload=keep
    linux ($root)/casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash ---
    initrd ($root)/casper/initrd
}

menuentry "Ubuntu - flash drive" {
 search --set=root --fs-uuid xxxx-xx-xx-xx-xx-xx-xx
    set gfxpayload=keep
    linux ($root)/casper/vmlinuz  file=/cdrom/preseed/ubuntu.seed boot=casper quiet splash ---
    initrd ($root)/casper/initrd
}

如果第一个不起作用(有时(hdX,Y)如果 0,1 不正确则需要摆弄),我会将正确的 UUID 添加到第二个。

我不需要编辑edit /etc/defaults/grub

如果你的 USB 是 ISO 启动器,那么包括set root 循环安装 ISO 在内的标准菜单项应该可以工作

menuentry "Ubuntu-20.04 64-bit ISO" {
    rmmod tpm
    set root=(hd0,1)
    set isofile="/ubuntu-20.04-desktop-amd64.iso"
        loopback loop $isofile
        linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile quiet splash --
        initrd (loop)/casper/initrd
}

您可能还得再次摆弄set root位置。

fsck.mode=skip如果您想摆脱文件检查,您也可以在 quiet splash 之后添加。

相关内容