如何更改GRUB引导顺序?

我在共享计算机上安装了Windows 7和Ubuntu。 因为很多非开发人员使用Windows,所以我想更改启动顺序以使其更容易使用。

目前,启动顺序如下所示:

  • Ubuntu 11.10 kernelgeneric * 86
  • Ubuntu 11.10 kernelgeneric * 86(安全启动)
  • 记忆测试
  • 记忆测试
  • /dev/sda6上的Windows 7

如何更改默认顺序以使Windows 7位于列表顶部?

  • /dev/sda6上的Windows 7
  • Ubuntu 11.10 kernelgeneric * 86
  • Ubuntu 11.10 kernelgeneric * 86(安全启动)
  • 记忆测试
  • 记忆测试

您可以使用易于使用的名为Grub Customizer的GUI应用程序来让您的生活更轻松一些。 顾名思义,您可以做的不仅仅是重新排序GRUB菜单条目。

您可以通过以下方式安装:

 sudo add-apt-repository ppa:danielrichter2007/grub-customizer sudo apt-get update sudo apt-get install grub-customizer 

(请参阅询问Ubuntu问题PPA是否可以安全地添加到我的系统中以及需要注意哪些“危险信号”?

有一篇关于它的How-To Geek文章, 如何轻松配置Linux GRUB 2引导菜单 。 如果你有兴趣,看看它。 此外,在Ubuntu论坛上有一个已解决的线程, 在GRUB 2更改引导顺序 ,提到了这个工具。

以下是一些截图:

SCREEN_1

screen_2

screen_3


一些故障排除

Grub Customizer设置可能仅适用于最新的Linux / Ubuntu安装,即安装Grub的安装。

例如,如果有人安装了两个操作系统(Windows和Ubuntu),然后安装第三个操作系统(Manjaro等),然后尝试按照上面的答案,Grub Customizer更改将无法使用第二个操作系统( Ubuntu,在例子中)。 该程序必须安装在他们的操作系统中,因为Grub Customizer似乎只能编辑安装自身的系统所创建的Grub文件。

确定Grub启动菜单的文件在大多数情况下都是安装在计算机上的最新系统,因此必须从 Linux系统安装和使用Grub Customizer。

您还可以从命令行更改grub默认启动项,而无需安装任何其他工具。 这不会改变列表中的顺序,但它会允许不同的操作系统默认启动,这听起来像你可能想要的。

首先,制作/etc/default/grub的备份副本。 如果出现问题,您可以轻松恢复到已知良好的副本:

 sudo cp /etc/default/grub /etc/default/grub.bak 

然后使用vim或您选择的文本编辑器编辑文件:

 sudo vim /etc/default/grub 

找到包含的行

 GRUB_DEFAULT=0 

并将其设置为

 GRUB_DEFAULT=x 

其中x是默认情况下要引导到的grub菜单项的索引。 请注意,菜单项是零索引的。 这意味着列表中的第一项是0 ,第六项实际上是5 。 因此,要引导到列表中的第六项,该行将显示为:

 GRUB_DEFAULT=5 

如果您忘记了项目的顺序,请查看/boot/grub/grub.cfg 。 每个菜单条目由以下类型的行指定:

 menuentry 'Ubuntu' [options] { 

您也可以通过名称而不是索引来选择默认值,例如:

 GRUB_DEFAULT='Ubuntu' 

如果/boot/grub/grub.cfg上有一个menuentry 'Ubuntu'行。 这可能是一种更好的方法,因为它不依赖于条目的顺序,这可能会改变。

要在“以前的Linux版本”子菜单中使用内核,请使用:

 GRUB_DEFAULT="Previous Linux Versions>x" 

(确保包含引号),其中x是子菜单上旧内核的索引,或者是/boot/grub/grub.cfg显示的内核名称。 例如,

 GRUB_DEFAULT="Previous Linux Versions>4.13.0-43-generic" 

然后构建更新的grub菜单:

 sudo update-grub 

来自tombuntu网站 ( Tom的文章):

可以使用/etc/default/grub文件配置GRUB。 在对其进行任何更改之前,通过创建副本来备份它可能是个好主意:

 sudo cp /etc/default/grub /etc/default/grub.bak 

您可以恢复复制原始备份:

 sudo cp /etc/default/grub.bak /etc/default/grub 

使用具有root权限的文本编辑器打开文件:

 gksu gedit /etc/default/grub 

GRUB_DEFAULT=0表示GRUB将选择要引导的第一个菜单项。 将其更改为GRUB_DEFAULT=saved 。 此更改将使以后更容易更改默认项目。

保存并关闭文件。 运行此命令以将更改应用于GRUB的配置:

 sudo update-grub 

我们进行的配置更改允许随时使用grub-set-default和grub-reboot命令。 这些允许您分别永久更改默认引导项或仅为下次引导更改。

使用要引导的菜单项编号运行grub-set-defaultgrub-reboot (使用sudo )(第一项为0)。 此命令将默认值更改为第二个项目:

 sudo grub-set-default 1 

我尝试了以下并取得了良好的效果。

打开一个终端窗口( Ctrl + Alt + T ),

输入sudo gksu nautilus并按Enter键。 输入您的用户密码。

导航到文件/boot/grub/grub.cfg 。 将文件复制并粘贴到同一目录中,应创建grub.cfg文件的副本以备份。 然后双击grub.cfg以在文本编辑器中打开该文件。

在文件中,您将找到该行( set default="0" )。 编辑0到Grub中要加载的行号。 我是第六行,所以我使用5,因为第一行被认为是0.保存文件。 重新启动电脑,如果你选择了正确的线路,它将成为Grub加载时突出显示的线路。

祝好运

打开终端窗口( Ctrl + Alt + T ),或按Alt + F2

输入 gksu nautilus并按Enter键

这将打开文件浏览器Nautilus,允许更改root拥有的文件。

导航到文件/boot/grub/grub.cfg并双击以在文本编辑器中打开该文件。

剪切,移动和粘贴属于不同操作系统的文件中的部分。 这样做你必须非常小心 ,好像你做错了,那么你将无法再启动了。 Windows启动总是可以使用Windows安装光盘( FIXMBR )中的工具进行修复,这些工具会使用典型的Windows-MBR覆盖GRUB-MBR。

我已经从Ubuntu 9.04到12.04进行了测试,每次都运行良好。

但我只是试图将Windows启动部分移动到列表的顶部,使其成为默认值。

如果我的内存是正确的,文件中的每个启动菜单部分都以begin …并以… end 。 并跨越多个文本行。

该文件中的文本变得有点复杂,并且在上一版本的Ubuntu版本中看起来不一样。 因此, 用你的大脑来避免犯错。