在原始的Grub中,您可以通过在/boot/grub/menu.lst中将默认关键字设置为“ saved”,然后在每个启动菜单项中使用savedefault关键字来执行此操作。
更新:
Grub2有点复杂。它也在不断发展,因此,即使Ubuntu 9.10和10.04都使用Grub2,在打包和配置事物方面还是有很多区别,以使事情变得有趣。
这两种方法都可以执行savedefault技巧:
Ubuntu 10.04:
9.10是一个技巧;清醒要简单得多。有关更多详细信息,请参见Ubuntu的帮助。您需要在/ etc / default / grub中进行两项更改:
更改GRUB_DEFAULT=0
为GRUB_DEFAULT=saved
添加一行 GRUB_SAVEDEFAULT=true
而已。其实还不错,不是吗?不要忘记跑步sudo update-grub
。
Ubuntu 9.10:
Ubuntu论坛上有一些技巧可以使它起作用。显然,在Grub v1.97中,savedefault关键字存在错误。 Ubuntu论坛上的这篇文章提供了一种方法。 另一篇文章提出了一种更简单的方法:
设置GRUB_DEFAULT =保存在/ etc / default / grub中。
将这两行放在/etc/grub.d/40_custom中(在“ exec tail”行之后,在底部附近):
saved_entry=${chosen}
save_env saved_entry
我已经在Ubuntu 9.10中测试了这种方法,并且可以正常工作。下次启动时将自动突出显示最后选择的条目。结合超时,这将自动引导到您引导的最后一个操作系统。
而且不要忘记跑步sudo update-grub
。完成更改后。这很重要,而且很容易忘记。
Grub无法将重新引导与冷启动区分开来,因此Grub无法在重新引导时单独执行此操作。但是,如果您要启动到Linux,则可以使用sudo grub-set-default N
(其中N是启动菜单项的编号,从0开始)来设置要在下次启动时选择的条目N(而不是保存任何条目)。
从理论上讲,当您告诉Linux关闭时(但是当您告诉它重新启动时),您可以将与关闭例程相关联的东西(可能是Upstart脚本)组合在一起,为您运行grub-set-default。但是,关闭Windows时不会获得相同的功能。
我确实听说过涉及将Grub安装到FAT32或NTFS / boot分区的Grub4DOS或Grub1技术-这将使您还可以从Windows 运行grub-set-default,因此可以从Windows注销脚本中调用它。上次我看到有关此内容的信息时,这在Grub2上是不可能的。到现在可能已经改变了。
sudo update-grub
。我通过启动进入Windows 7,关机,然后重新打开计算机的方式进行测试。Ubuntu 10.04(默认)仍处于选中状态。我还尝试将“ saved_entry”放在/ etc / default / grub中,而不是“ saved”(不确定grub配置脚本的工作方式),但这没有帮助。我还没有尝试过解决方案1。