如何更改GRUB引导顺序?

309

我在共享计算机上安装了Windows 7和Ubuntu。因为很多非开发人员都使用Windows,所以我想更改启动顺序,以便让他们更轻松。

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

  • Ubuntu 11.10 kernelgeneric * 86
  • Ubuntu 11.10 kernelgeneric * 86(安全启动)
  • 内存测试
  • 内存测试
  • Windows 7 on /dev/sda6

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

  • Windows 7 on /dev/sda6
  • Ubuntu 11.10 kernelgeneric * 86
  • Ubuntu 11.10 kernelgeneric * 86(安全启动)
  • 内存测试
  • 内存测试
chrisjlee 31.01.2012 - 17:18

5 答案

279

您可以使用易于使用的名为 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 Boot菜单 的。如果你有兴趣,看看它。此外,Ubuntu论坛上有一个已解决的主题, 更改GRUB 2中的启动顺序 提到这个工具。

以下是一些截图:

一些故障排除:

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

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

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

    
给出答案 Nitin Venkatesh 31.01.2012 - 18:30
218

您还可以从命令行更改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'

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

要在"以前的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
    
给出答案 dcharles 07.03.2012 - 04:44
35

来自 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
    
给出答案 silenTK 11.06.2012 - 19:04
-2

我尝试了以下内容并取得了不错的成绩。

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

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

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

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

祝你好运

    
给出答案 Outkast 19.09.2012 - 22:08
-5

打开终端窗口( 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版本中看起来不一样。所以使用你的大脑来避免你犯错误。

    
给出答案 Curt Jonsson 05.07.2012 - 20:01

阅读有关标签的其他问题