问题描述
我不是在问如何从 USB 启动 LiveCD。
我有 2 个 Ubuntu 安装,一个在我计算机的内部硬盘驱动器上,另一个在 USB 驱动器上。
有没有办法添加一个 GRUB2 菜单项(到我内部硬盘上的 GRUB)来启动我已经安装到 USB 闪存驱动器的 Ubuntu 操作系统,并且在我升级 Linux 内核后这个相同的菜单项仍然有效关于USB安装?
最佳答案
每次在外部升级内核时,都可以运行它来更新内部驱动器上 grub 中的引导节。
sudo update-grub
但是您也可以在 grub2 的 40_custom 中添加一个引导节来引导分区,而不是特定的内核。 Ubuntu 在 /(root) 中安装链接以引导最近的安装。如果需要,请根据您的驱动器和调整以下示例分割。带有 grub 的引导驱动器始终是 hd0,但其他驱动器在 BIOS 报告的顺序中可能会有所不同。
编辑:
gksudo gedit /etc/grub.d/40_custom
然后加:
menuentry "Install on sdb1" {
set root=(hd1,1)
linux /boot/vmlinuz root=/dev/sdb1 ro quiet splash
initrd /boot/initrd.img
}
更新:较旧的安装将链接放在 /中,但较新的安装现在使用 /boot。\n更改示例以显示 /boot
虽然上述工作正常,但我发现插入闪存驱动器或任何其他 USB 设备时驱动器可能会发生变化。所以我正在转换为使用标签。
menuentry "Cosmic 18.10 on sdb12 test" {
search --set=root --label cosmic_b --hint hd2,gpt12
configfile /boot/grub/grub.cfg
}
次佳答案
我发现了如何使用驱动器的 UUID,如果您在启动时插入了多个驱动器,这很有用。感谢 oldfred 关于 /vmlinux
和 /initrd.img
符号链接的注释。
将此添加到文件 /etc/grub.d/40_custom
中,将 UUID=XXXX-YYYY
替换为分区 UUID(使用命令 blkid
获取 UUID)
menuentry "Boot from USB Drive" {
set root=UUID=XXXX-YYYY
linux /vmlinuz root=UUID=XXXX-YYYY ro quiet splash
initrd /initrd.img
}
第三种答案
要从 /etc/grub.d/40_custom
中的 Ubuntu Live USB 菜单项启动,应如下所示(将 DRIVE_UUID
替换为分区的 uuid):
menuentry "Boot from LIVE USB Drive" {
search --set=root --fs-uuid DRIVE_UUID
linux ($root)/casper/vmlinuz boot=casper quiet splash --
initrd ($root)/casper/initrd.lz
}
要应用更改运行:
sudo update-grub