如何在启动加载程序中将Windows设置为默认启动?


Answers:


262

自定义/etc/default/grub文件

使用编辑grub文件有两种方法。这些在Ubuntu社区文档Grub2页面中进行了描述

两种方式是:

  • 引导您上次引导的哪个操作系统,“保存方法”
    • 这是我用的那个。它使我可以决定要使用哪个系统,并可以在更新时方便地重新启动该系统。
  • 默认情况下引导特定的操作系统。
    • 确切问题的答案。

查找设置为新默认菜单的菜单项

要开始,我们需要找出正在引导或想要引导的内容。用Ctrl+ Alt+ 打开终端t并输入

grep menuentry /boot/grub/grub.cfg

user@YourComputer:~$ grep menuentry /boot/grub/grub.cfg
menuentry 'Ubuntu, with Linux 2.6.35-31-generic' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, with Linux 2.6.35-31-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, with Linux 2.6.35-30-generic' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, with Linux 2.6.35-30-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry "Memory test (memtest86+)" {
menuentry "Memory test (memtest86+, serial console 115200)" {
menuentry "Windows NT/2000/XP (loader) (on /dev/sda1)" {
menuentry "Ubuntu, with Linux 2.6.32-34-generic (on /dev/sdb1)" {
menuentry "Ubuntu, with Linux 2.6.32-34-generic (recovery mode) (on /dev/sdb1)" {
menuentry "Ubuntu, with Linux 2.6.32-33-generic (on /dev/sdb1)" {
menuentry "Ubuntu, with Linux 2.6.32-33-generic (recovery mode) (on /dev/sdb1)" {
menuentry "Windows Vista (loader) (on /dev/sdc1)" {

您会看到,在启动多个操作系统时,“保存”方法会派上用场。保存您想要的条目的名称,例如Windows NT/2000/XP (loader) (on /dev/sda1),稍后我们将需要它。

编辑/etc/default/grub文件

输入终端

须藤nano -B / etc / default / grub

以及询问您的密码。该纳米编辑器将打开。

A.保存的方法 -以我的首选方式,我对标准grub文件进行了以下更改。

  • 我将的值更改GRUB_DEFAULTsaved

    GRUB_DEFAULT=saved
    
  • 我通过添加以下行来启用SAVEDEFAULT功能

    GRUB_SAVEDEFAULT=true
    

B.特定菜单项 -您要求的方式

  • 将的值更改为GRUB_DEFAULT要始终引导的Windows系统的名称。可以按照上一节中的说明找到相应的Grub菜单项的名称。
  • 我希望在启动时始终将Window XP设置为默认值,我将设置GRUB_DEFAULT"Windows NT/2000/XP (loader) (on /dev/sda1)"

    GRUB_DEFAULT="Windows NT/2000/XP (loader) (on /dev/sda1)"
    

    注意:某些版本的Ubuntu需要单引号(')副双引号(“)。

您也可以GRUB_DEFAULT在菜单项列表中设置行号(第一个为0),但是在Ubuntu内核更新时,grub将新内核添加到列表顶部,因此您必须更改该行号,因为Windows是菜单条目列表中的最后一个。您可以在我的菜单条目列表中看到它。

更新启动配置

现在你要跑

须藤更新

更新目录中系统生成的grub.cfg文件/boot/grub/

user@YourComputer:~$ sudo update-grub
Generating grub.cfg ...
Found background: /usr/share/images/grub/Apollo_17_The_Last_Moon_Shot_Edit1.tga
Found linux image: /boot/vmlinuz-2.6.35-31-generic
Found initrd image: /boot/initrd.img-2.6.35-31-generic
Found linux image: /boot/vmlinuz-2.6.35-30-generic
Found initrd image: /boot/initrd.img-2.6.35-30-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Windows NT/2000/XP (loader) on /dev/sda1
Found Ubuntu 10.04.3 LTS (10.04) on /dev/sdb1
Found Windows Vista (loader) on /dev/sdc1
done

附录

纳米注意事项

nano特别容易在终端中使用。使用箭头键四处移动。输入您要添加的内容,删除不需要的内容。

-B--backup选项备份先前版本的它可以用一个后缀当前文件名~。如果出现可怕的Fat pfinger效应,非常方便。

完成操作后,Ctrl+ o将允许您通过单击来保存所做的编辑,EnterCtrl+ x将关闭。这些选项和其他选项显示在终端屏幕的底部,带有^指示Ctrl

^G Get Help    ^O WriteOut    ^R Read File   ^Y Prev Page   ^K Cut Text    ^C Cur Pos
^X Exit        ^J Justify     ^W Where Is    ^V Next Page   ^U UnCut Text  ^T To Spell

有关nano,sudoeditor和其他编辑器的说明

Ubuntu社区中的一些建议sudoedit而不是nano。我建议使用nano-这是Ubuntu后续发行版中的默认sudoedit编辑器-而不是sudoedit,因为除非您是管理员,否则可以以非显而易见的方式覆盖默认值。 sudoedit这样做比较安全,因为它会自动保存已编辑文件的备份副本,但是-B命令行选项中的nano功能相同。 nano比诸如vi或的编辑器更直观emacs,后者非常灵活,但需要学习很多命令,快捷方式或不同的模式。

如果您不想使用该nano编辑器,而希望使用Gnome文本编辑器,而不要sudo nano -B使用gksu gedit。我通常对大文件执行此操作,/etc/default/grub因此很容易将其视为大文件。因此输入gksu gedit /etc/default/grub而不是sudo nano -B /etc/default/grub。请注意,Gnome文本编辑器不会自动进行备份!

关于我的grub文件的注释

我根据自己的需要对grub进行了一些更改。如月球发射的背景图片。建议在Grub2上的Ubuntu社区文档页面上讨论如何执行这些操作。

祝好运!


16
保持简单是基于爱因斯坦的名言:“事情应该尽可能简单,但不要太简单。” (当有人引用此词时,将省略最后三个词)。感谢您的功课...
keepitsimpleengineer

喜欢它对我有很大帮助,但是正如我所见,GRUB定制器非常容易:P XD
Ran Shemer '12

根据您的配置,您可能会遇到“保存的方法”(A)似乎不起作用的问题。您的启动菜单项很有可能需要另外一行savedefault。有关更多详细信息,请参见grub手册。希望这可以帮助。
pdvries

将默认的操作系统名称写入配置文件时,请确保在Ubuntu 16中使用SINGLE QUOTES!否则,update-grub会在该行上显示错误消息“(“。顺便说一句,它是一个非常详尽的详细信息!
hubbabubba

@hubbabubba感谢您的注意,我编辑了答案:)
keepitsimpleengineer

78

借助一些命令行技巧,无论何时安装新内核,您都可以将grub的默认值始终保留为特定的grub条目(例如Windows)。

在终端中输入:

fgrep menuentry /boot/grub/grub.cfg

这将显示您所有的grub条目-例如

在此处输入图片说明

在屏幕快照中突出显示您想要默认为的条目-例如Windows 7。右键单击并选择copy

类型

gksu gedit /etc/default/grub

更改条目

GRUB_DEFAULT=0

GRUB_DEFAULT="Windows 7 (loader) (on /dev/sda2)"

即粘贴您想要的条目(包括引号)

保存,然后输入

sudo update-grub

资源


1
在Ubuntu 16.04上工作,只有很小的差异(将信号报价更改为双倍qoute)
WiredIn

21

您需要编辑/etc/default/grub文件以将Windows设置为默认操作系统。

第一步。确定Windows操作系统在grub菜单中的位置。为此,请按打开终端,Ctrl+Alt+T然后键入以下内容:

grep menuentry /boot/grub/grub.cfg

这将列出grub菜单项。我将以我的grub菜单为例:

menuentry 'Ubuntu, with Linux 2.6.38-8-generic' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, with Linux 2.6.38-8-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry "Memory test (memtest86+)" {
menuentry "Memory test (memtest86+, serial console 115200)" {
menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {

然后,您将选择Windows分区,在本例中为“ Windows 7(加载程序)(在/ dev / sda1上)”(包括双引号)并进行复制。

第二步。打开/etc/default/grub文件。为此,在终端上键入以下内容:

gksudo gedit /etc/default/grub

它将使用gedit打开/ etc / default / grub文件。查找该GRUB_DEFAULT=0行,并通过粘贴将其值从0更改为所选的Windows菜单项。。

GRUB_DEFAULT="Windows 7 (loader) (on /dev/sda1)"

或者,您可以使用整数值指定Windows OS的索引位置,请注意索引从0开始计数,因此在我的示例中,Windows OS值为4,因此您也可以设置

GRUB_DEFAULT=4

之后,您需要输入以下内容来更新grub

sudo update-grub

17

您可以在此处关注这个nitstorm答案

你将不得不增加GRUB的定制通过

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

然后从仪表板启动它。

在此处输入图片说明

上面的菜单将与您的菜单有所不同,因此请明智地选择并选择Windows 7条目,然后从顶部的菜单栏中选择^箭头以将其向上移动以使其处于最高位置,同时进行引导。

要直接启动Windows,请选择,preference 并减少启动时间以加载Windows。

在此处输入图片说明


15

使用称为“ Grub Customizer”的GUI工具可以轻松完成此操作。

什么是Grub Customizer?

Grub Customizer是用于配置grub2的图形界面。该应用程序允许用户添加,删除,冻结,重命名和重新排列启动菜单项

如何安装?

点击Alt+ Ctrl+ T打开终端并逐个运行以下命令:

sudo add-apt-repository ppa:danielrichter2007 / grub-customizer
sudo apt-get更新
sudo apt安装grub-customizer

如何使用?

  • 安装后,按超级键(Windows键)打开Unity破折号并搜索“”并打开它。
  • 通过单击Linux选择Linux组,然后单击工具栏中的向下箭头将其向下移动。完成后,单击保存。而已!

在此处输入图片说明

请记住,您不能将单个条目移出它们各自的组,就像Ubuntu无法移出Linux组一样。


很好,不知道有没有用于GRUB2配置的GUI。+1;)
ruffEdgz 2012年

11

使用启动管理器,您可以从破折号开始。在那里,您可以使用操作系统从下拉菜单开始。

启动经理


3
抱歉,我刚刚看到您说启动管理器无法在64位版本中工作。您可以尝试改用grub customr在ubuntu中安装Grub Customizer打开终端并运行以下命令sudo add-apt-repository ppa:danielrichter2007 / grub-customizer sudo apt-get update sudo apt-get install grub-customizer安装完成后即可>系统Toiols - - >自定义的Grub从应用开放
达戈

10

引导时,将GRUB_DEFAULTin 的值更改/etc/default/grub为可用操作系统的grubs列表上的任何窗口。例如,在我的情况下,我将不得不从

GRUB_DEFAULT=0

GRUB_DEFAULT=5

之后,运行sudo update-grub


1
需要修改此方法,以始终正确标识正确的菜单项(对于Windows)。此方法仅在最简单的设置中起作用,并且可能无法在内核更新或其他更改中幸免。请参阅:ubuntuforums.org/showthread.php?t=1195275
david6

1
今天,只有最新的内核才有2个条目(恢复和正常引导),所有其他内核都归为“其他内核”(或类似名称,我不记得它的名称了)。所以我不得不不同意,它在内核更新后仍然存在。
imbaer 2011年

我添加了评论,因为您的示例使用了= 6
david6

没错,应该是= 5。
imbaer

7

标识Windows条目的名称

在GRUB上,应该有类似的条目Windows 7 (loader) (/dev/sda1)。我们需要知道您的计算机上的名字是什么,因此打开一个终端并运行以下命令:

$ fgrep menuentry /boot/grub/grub.cfg

输出应该是这样的:

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
  menuentry_id_option=""
export menuentry_id_option
menuentry 'Linux Mint 14 Cinnamon 64-bit, 3.5.0-17-generic (/dev/sda6)' --class linuxmint --class gnu-linux --class gnu --class os {
menuentry 'Linux Mint 14 Cinnamon 64-bit, 3.5.0-17-generic (/dev/sda6) -- recovery mode' --class linuxmint --class gnu-linux --class gnu --class os {
menuentry "Memory test (memtest86+)" {
menuentry "Memory test (memtest86+, serial console 115200)" {
menuentry 'Windows 8 (loader) (en /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-chain-06B66EA8B66E97C7' {
menuentry 'Microsoft Windows XP Embedded (en /dev/sda4)' --class windows --class os $menuentry_id_option 'osprober-chain-7246B3A846B36C0B' {

看看我们正在谈论的那条线!在我的机器上是 Windows 8 (loader) (en /dev/sda1)。将条目的名称写在某个地方,现在让我们将其设置为默认名称。

将Windows条目设置为默认值

这很容易!

首先,以gedit(文本编辑器)为根打开我们的配置文件,运行以下命令:

$ gksudo gedit /etc/default/grub

搜索此行:

GRUB_DEFAULT = 0

0使用Windows条目的名称进行修改。在我的电脑上:

GRUB_DEFAULT = "Windows 8 (loader) (en /dev/sda1)"

现在,只需保存文件,关闭gedit,然后更新grub。

更新GRUB

只需运行以下命令:

$ sudo update-grub

现在,只需重新启动,Windows条目应突出显示为默认值!


2

Grub-Customizer

是一个非常易于使用的图形GRUB2设置管理器。目前,它仅允许您编辑GRUB2菜单条目:重新排序,重命名或添加/删除条目。它还将允许更改背景图像和菜单超时。由于这些实际上是生成boot.cfg文件的脚本,因此Grub Customizer更改实际脚本顺序,然后生成一个新的boot.cfg,因此,如果您随后运行“ sudo update-grub”,则您的自定义设置不会被覆盖。


1

根据我的经验,我发现更改Win7 / Ubuntu 11.04的启动优先级并非易事。实用程序(如Startup Manager)似乎正在尝试更改默认的引导系统,但是重新启动后什么也没有发生(默认为11.04继续引导)。在这种情况下,我建议在WebUpd8上使用 Grub Customiser Grub Customized,它可以与Grub2一起很好地工作。我只是删除了所有过时的启动选项(有很多),只剩下11.04和Win7。然后更改启动优先级。现在,一切正常:)

祝好运。


我已经在父母的台式机双启动Windows XP和Ubuntu 10.04 LTS上使用了Startup Manager,除了每次升级到新内核时都必须重新运行它的事实之外,它运行良好。
Christopher Kyle Horton

嗨!我想这是Grub2如何处理新内核安装的问题。它不考虑新的grub2菜单插入内容:)
Vincenzo

1

这实际上很容易做到。首先,您需要找出Grub命名Windows条目的名称。您可以通过查看/boot/grub/grub.cfg或运行以下命令来做到这一点:

sudo cat /boot/grub/grub.cfg | grep -i Windows | sed -e 's/^.* "//g' -e 's/".*$//g'

什么该命令的作用是寻求Windows/boot/grub/grub.cfg和去除之外的文本"字符。

该命令将输出类似的内容Microsoft Windows XP Professional (on /dev/sdb2)

现在,/etc/default/grub通过运行打开:

gksudo gedit /etc/default/grub

并更改:

GRUB_DEFAULT=0

GRUB_DEFAULT="Name of your Windows menu entry"

最后,运行:

sudo update-grub

重新生成Grub菜单。就是这样!将来的升级不会搞砸。默认情况下,始终会选择Windows菜单项。


1

编辑文件/ etc / grub / default

在那找到条目

GRUB_DEFAULT=0

首次启动计算机并获取grub菜单时,引导菜单中的第一项为0,因此,如果引导菜单中的第二项为Windows,则将此数字更改为1

保存,退出,运行:update-grub命令,然后重新启动以查看您的新更改!


@ Daniel Guzman您似乎对Linux / Ubuntu陌生。(从您选择的将Windows保留为默认操作系统的角度出发。如果我​​错了,抱歉。)因此,当您执行上述步骤时,请当心,不要乱七八糟。除了写的东西以外,您可能会遇到麻烦。:)
Nirmik

我可能是错的,但11.10没有使用grub2,难道不是/etc/grub/default更旧的grub1更改了吗?就是想。
ruffEdgz 2012年

11.10使用grub2,我的示例来自12.04。但这是相同的
tomodachi

1

您不需要安装grub-customizer !!!

我不知道您已经安装了什么ubuntu,所以我不确定您的操作系统使用的是grub2还是旧的grub,但是您安装grub2的可能性更大。

因此,这是您对grub2要做的事情:

grep menuentry /boot/grub/grub.cfg 

此命令为您提供输出,说明您有哪些启动可能性/操作系统。

这是一个示例输出:

menuentry 'Ubuntu, with Linux 2.6.38-8-generic' --class ubuntu --class gnu-linux --class gnu --class os {

menuentry 'Ubuntu, with Linux 2.6.38-8-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {

menuentry "Memory test (memtest86+)" {

menuentry "Memory test (memtest86+, serial console 115200)" {

menuentry "Windows 7 (loader) (on /dev/sda1)" --class windows --class os {

如您所见,Windows 7位于输出的第5行。

接下来,您使用文本编辑器和sudo特权打开/ etc / default / grub文件,并将GRUB_DEFAULT值修改为(您的Windows 7所在行的编号减一,因为grub选项索引从0开始)

因此,如果Windows 7位于第5行,则需要 GRUB_DEFAULT=4

如果Windows 7位于第7行,则需要 GRUB_DEFAULT=6

要保存更改,请键入sudo update-grub。这就是一切。


0

下次启动计算机时,Windows 7将放置在GRUB菜单中。(请记住,您必须从0开始计数-即,如果Windows位于第三行,则其位置为2,依此类推)。引导到ubuntu,打开一个终端并编写

sudo gedit /etc/default/grub

然后修改线

GRUB_DEFAULT="0"

GRUB_DEFAULT="N"

其中N是grub菜单中Windows7条目的位置(从0开始)。告诉我是否需要有关此的更多信息。


因此,如果我的窗户位于位置2,那么我将在您写“ N”的命令中写“ 2”吗?
Rasmus Mathiesen

如果在第二行,则必须放入1(第一行编号为0)
Juan Sebastian Totero 2011年

1
对对对,这就是我的意思;)
Rasmus Mathiesen

1
每次ubuntu安装新版本的内核时,此操作都会中断
David Oneill

1
实际上并没有,因为在升级时警告您正在安装的文件已更改,并提示您是否要更改,修改或安装新文件。升级从未遇到问题。
Juan Sebastian Totero 2011年

0

我使用grub定制程序来做到这一点。您可以使它每次自动启动到某个操作系统,也可以只启动到最后一次启动的操作系统。它易于安装和使用。

在ubuntu中,打开您的包管理器;在设置下,您应该找到“配置软件源”。点击那个,然后输入您的密码。现在,单击标题为“其他软件”的第二个选项卡,然后向底部按添加按钮。输入PPA for grub定制器:

ppa:danielrichter2007 / grub-customizer

单击确定,将显示几行新内容;如果尚未开始更新可用软件包,请立即关闭“软件源”对话框,然后按软件包管理器上的“检查更新”按钮。输入搜索功能:“ grub-cus”,您将在列表顶部看到grub定制程序。将其标记为要安装,然后单击“应用”以开始该过程。同意安装所有依赖项,以便它们也自动安装。

安装后,可以通过在搜索对话框中键入“ grub”来找到grub-customizer,也可以在“应用程序”>“设置”>“ Grub-Customizer”下的菜单中找到它。

或者,您可以打开终端并运行以下命令:

sudo add-apt-repository ppa:danielrichter2007 / grub-customizer
sudo apt-get更新
sudo apt-get安装grub-customizer

您可能想挑选一张漂亮的图片用作grub启动菜单的背景。

如果您想在开始之前了解更多信息,请参见以下链接:

适用于Grub Customizer的Launchpad PPA

攻略指南和图片指导


-1

通常,当我不得不“弄乱”我使用“ Grub Customizer”的Grub时,它具有一个GUI,因此您可以轻松查看正在更改的内容。只需在终端中输入以下内容:

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

然后在Dash中搜索grub定制程序,并将预定义条目更改为Windows。


我没有使用过,但是我认为这应该合并到另一个问题中,作为答案。
RobotHumans 2013年

无需安装用于更改grub顺序的软件。您也可以使用grub-customizer做到这一点,但是我认为它比通过命令行更困难
fromnaboo 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.