我同时使用蓝牙鼠标和键盘,坦率地说,为了启动另一个内核版本或另一个分区上的 Windows,必须使用物理键盘真的很烦人。有没有办法让我告诉 GRUB 当它重新启动时,直接启动到特定的内核或 Windows?
是否有一个命令可以grub-reboot "Windows 7"
让我的机器重新启动并在启动时启动到指定的操作系统或内核?
答案1
(我正在改编这个答案https://unix.stackexchange.com/a/11431/73,因为即使问题不同,它的工作原理也是一样的)
首先你需要做一些准备工作/boot/grub/grub.conf
。改成。default
saved
在每个操作系统块中,添加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