强制 GRUB 引导至特定内核/操作系统?

强制 GRUB 引导至特定内核/操作系统?

我同时使用蓝牙鼠标和键盘,坦率地说,为了启动另一个内核版本或另一个分区上的 Windows,必须使用物理键盘真的很烦人。有没有办法让我告诉 GRUB 当它重新启动时,直接启动到特定的内核或 Windows?

是否有一个命令可以grub-reboot "Windows 7"让我的机器重新启动并在启动时启动到指定的操作系统或内核?

答案1

(我正在改编这个答案https://unix.stackexchange.com/a/11431/73,因为即使问题不同,它的工作原理也是一样的)

首先你需要做一些准备工作/boot/grub/grub.conf。改成。defaultsaved在每个操作系统块中,添加savedefault 0,其中 0 是您希望其默认为的内核的索引,除非另有说明。将值写入0文件/boot/grub/default,以便 GRUB 知道下次重新启动时使用哪个默认值(在savedefault执行任何这些指令之前)。

现在,在重新启动之前的任何时候,您都可以更改该值/boot/grub/default以更改下次启动时的默认值。如果将其设置为1,GRUB 列表中的第二个条目将成为默认值。一旦开始启动,GRUB 将执行该savedefault 0指令并将默认值更改回0,因此在后续启动时,您将切换回默认值 0。

要更改默认值,您可以使用grub-set-default,它获取索引号并将其写入该文件。因此,创建一个别名/脚本来执行以下操作:

grub-set-default 1
shutdown -hr now

当您运行它时,GRUB 将重新启动到列表中的第二个条目。下次重新启动时,它将切换回第一个(或您指定的)

答案2

在 CentOS 7 中以及可能在其他发行版中,您可以grub2-reboot仅选择下次重新启动时使用的内核,而无需更改默认值。

列出可用的内核:

awk -F\' /^menuentry/{print\$2} /etc/grub2.cfg

按数字(从零开始)选择您想要的一个。例如,要重新启动到列出的第二个系统(编号“1”):

grub2-reboot 1 && reboot

相关内容