Answers:
每次在外部升级内核时,都可以运行此命令以更新内部驱动器上grub中的启动节。
sudo update-grub
但是,您也可以在grub2的40_custom中添加引导节,以引导分区而不是特定内核。Ubuntu在/(根)中安装链接以引导最新的安装。如有必要,请对驱动器和分区调整以下示例。带grub的引导驱动器始终为hd0,但其他驱动器的BIOS报告顺序可能有所不同。
编辑方式:
gksudo gedit /etc/grub.d/40_custom
然后加:
menuentry "Install on sdb1" {
set root=(hd1,1)
linux /vmlinuz root=/dev/sdb1 ro quiet splash
initrd /initrd.img
}
尽管上述工作正常,但我发现插入闪存驱动器或任何其他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(通过命令获取UUID blkid
)
menuentry "Boot from USB Drive" {
set root=UUID=XXXX-YYYY
linux /vmlinuz root=UUID=XXXX-YYYY ro quiet splash
initrd /initrd.img
}
从Ubuntu Live USB引导菜单项/etc/grub.d/40_custom
看起来应该是这样(用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
/dev/sdb1
?