问题描述
我在共享机器上安装了Windows 7和Ubuntu。由于很多non-developers都使用Windows,因此我想更改引导顺序以使其更容易。
目前,引导顺序如下所示:
-
Ubuntu 11.10 kernelgeneric * 86
-
Ubuntu 11.10 kernelgeneric * 86(安全启动)
-
memory 测试
-
memory 测试
-
Windows 7上的
/dev/sda6
如何更改默认顺序,使Windows 7位于列表的顶部?
-
Windows 7上的
/dev/sda6
-
Ubuntu 11.10 kernelgeneric * 86
-
Ubuntu 11.10 kernelgeneric * 86(安全启动)
-
memory 测试
-
memory 测试
最佳解决方法
您可以使用名为Grub Customizer的GUI应用程序easy-to-use来让您的生活更轻松一些。顾名思义,您可以做的不仅仅是重新排序GRUB菜单条目。
你可以通过以下方式安装它
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer
(请参阅Ask Ubuntu问题Are PPA’s safe to add to my system and what are some “red flags” to watch out for?。)
有关于它的How-To Geek文章,How to Configure the Linux GRUB 2 Boot Menu the Easy Way。如果你有兴趣,请看看它。另外,Ubuntu论坛上有一个解决的线索,Change boot order in GRUB 2提到了这个工具。
以下是一些截图:
一些故障排除
Grub Customizer设置只能在最新的Linux /Ubuntu安装(安装Grub的安装)中使用。
例如,如果有人安装了两个OS-es(Windows和Ubuntu),然后安装第三个操作系统(Manjaro等),然后尝试遵循上述答案,则从第二个操作系统(Ubuntu,在这个例子中)。该程序必须安装在操作系统中,因为Grub Customizer似乎只能编辑通过安装其自身的系统的安装而创建的Grub文件。
决定Grub启动菜单的文件大多数情况下是在机器上安装了最新的系统,所以必须从该Linux系统安装并使用Grub Customizer。
次佳解决方法
您还可以从命令行更改grub默认启动项,而无需安装任何其他工具。这不会改变列表中的顺序,但它会允许不同的操作系统默认启动,这听起来像你可能想要的。
首先,制作/etc/default/grub
的备份副本。如果出现问题,您可以轻松恢复到known-good副本:
sudo cp /etc/default/grub /etc/default/grub.bak
然后使用vim
或您选择的文本编辑器编辑该文件:
sudo vim /etc/default/grub
找到包含的行
GRUB_DEFAULT=0
并将其设置为
GRUB_DEFAULT=x
其中x
是默认情况下要启动到的grub菜单项的索引。请注意菜单项是zero-indexed。这意味着列表中的第一项是0
,第六项实际上是5
。因此,要引导到列表中的第六项,该行将显示为:
GRUB_DEFAULT=5
如果您忘记了物品的顺序,请查看/boot/grub/grub.cfg
。每个菜单条目由一行类型指定:
menuentry 'Ubuntu' [options] {
您也可以通过名称而不是索引选择默认值,例如:
GRUB_DEFAULT='Ubuntu'
如果/boot/grub/grub.cfg
上有menuentry 'Ubuntu'
行。这可能是一个更好的方法,因为它不依赖于条目的顺序,而顺序可能会改变。
要在“以前的Linux版本”sub-menu中使用内核,请使用:
GRUB_DEFAULT="Previous Linux Versions>x"
(确保包含引号),其中x
是sub-menu上旧内核的索引,或者是/boot/grub/grub.cfg
中显示的内核的名称。例如,
然后建立更新的grub菜单:
sudo update-grub
第三种解决方法
来自tombuntu site(Tom的文章):
GRUB can be configured using the
/etc/default/grub
file. Before you make any changes to it, it may be a good idea to back it up by creating a copy:sudo cp /etc/default/grub /etc/default/grub.bak
You can restore the copying the backup over the original:
sudo cp /etc/default/grub.bak /etc/default/grub
Open the file using the text editor with root privileges:
gksu gedit /etc/default/grub
The line
GRUB_DEFAULT=0
means that GRUB will select the first menu item to boot. Change this toGRUB_DEFAULT=saved
. This change will make it easier to change the default item later.Save and close the file. Run this command to apply your changes to GRUB’s configuration:
sudo update-grub
The configuration change we made allows the grub-set-default and grub-reboot commands to be used at any time. These allow you to change the default boot item permanently or only for the next boot, respectively.
Run
grub-set-default
orgrub-reboot
(withsudo
) with the number of the menu item to boot (the first item is 0). This command will change the default to the second item:sudo grub-set-default 1