如何设置引导程序,以便在Windows 7 / Ubuntu 11.04的双引导中,Windows以标准方式而不是Ubuntu方式启动?

评论

由于我“不够活跃”,因此无法在此处发布答案...但这是一个无需安装任何内容的简单解决方案:dpkg-divert --divert /etc/grub.d/31_linux --rename / etc /grub.d/10_linux。这会将其他操作系统放在引导列表的第一位。然后只需运行update-grub即可更新列表。显然,这些都是root用户。

#1 楼

自定义/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)" {


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

编辑/etc/default/grub文件

在终端中键入


sudo nano -B / etc /默认值/ grub


以及密码(如果要求)。纳米编辑器将打开。

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



我将GRUB_DEFAULT的值更改为saved: />
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是菜单项列表中的最后一个。条目列表。

更新启动配置

现在您必须运行


sudo update-grub


更新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
nano特别易于在终端中使用。使用箭头键四处移动。键入您的添加内容,删除不需要的内容。

-B--backup选项备份了以前的版本它是后缀为~的当前文件名,如果使用dre则非常方便增强的Fat pfinger效果。

浏览完后,按Ctrl + o可以通过按Enter来保存编辑,而Ctrl + 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命令行选项会执行相同的操作。 nanoviemacs之类的编辑器更直观,它们非常灵活,但是需要学习很多命令,快捷方式或不同的模式。

如果您不想使用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社区文档页面上讨论如何执行这些操作。

祝你好运!

评论


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

–keepitsimpleengineer
2011年11月28日20:24



喜欢它对我有很大帮助,但是如我所见,GRUB customr非常容易:P XD

–冉·谢默(Ran Shemer)
2011年12月2日于20:38

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

– pvvries
17-10-11在14:48



将默认的操作系统名称写入配置文件时,请确保在Ubuntu 16中使用SINGLE QUOTES!否则,update-grub会在该行上显示错误消息,提示意外的“(”。顺便说一句,这是一个很好而详尽的答案!

–hubbabubba
17年11月4日在8:13



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

–keepitsimpleengineer
17年11月5日15:53

#2 楼

借助一些命令行技巧,无论何时安装新内核,您都可以将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)"


ie粘贴所需的条目(包括引号)

保存,然后键入

sudo update-grub


source

评论


在Ubuntu 16.04上工作,只有一个小差异(将信号引用更改为double qoute)

– WiredIn
16年7月30日在1:36

也适用于18.04,将单引号更改为双引号

– Alleo
19年11月14日在23:32

谢谢!默认情况下,我的20.04安装似乎没有安装gksu,但是sudo gedit / etc / default / grub在该步骤中有效。

–杰夫·沃德(Jeff Ward)
20 Dec 1'0 at 0:44

#3 楼

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

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

grep menuentry /boot/grub/grub.cfg


这将列出grub菜单项。我将以我的grub菜单为例: sda1)”(包括双引号)并将其复制。

第二步。打开/etc/default/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 {


它将使用gedit打开/ etc / default / grub文件。查找GRUB_DEFAULT=0行,并通过粘贴将其值从0更改为选定的Windows菜单项。也可以使用一个整数值来指定Windows操作系统的索引位置,请注意索引从0开始计数,因此在我的示例中, Windows操作系统值为4,因此您还可以设置

gksudo gedit /etc/default/grub


之后,您需要通过键入

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

#4 楼

您可以在这里按照nitstorm的答案进行操作,

您必须通过

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer
添加Grub-customizer,然后从仪表板,仪表板启动。



上面的菜单与您的菜单有所不同,因此请明智地选择并选择Windows 7条目,然后从顶部的菜单栏中选择^箭头将其移动。

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



#5 楼

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

什么是Grub Customizer?该应用程序允许用户添加,删除,冻结,重命名和重新排序启动菜单项

如何安装?

按Alt + Ctrl + T打开终端并运行以下命令一一命令:

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


如何使用?


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



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

评论


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

–ruffEdgz
2012年5月17日13:43

#6 楼

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



评论


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

–达戈
2011年11月26日17:50



在Ubuntu 20.04中,“ Ubuntu软件”应用程序中提供了Grub Customizer。

–乌塔姆
20年6月13日在5:11

#7 楼

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

GRUB_DEFAULT=0


更改为

,运行sudo update-grub

评论


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

– david6
2011年11月27日5:52



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

– imbaer
2011-11-27 10:40

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

– david6
2011年11月27日20:35

没错,应该是= 5。

– imbaer
2011年11月28日在8:40

#8 楼

标识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)。将您的条目的名称写在某个地方,现在让我们将其设置为默认名称。

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

$ gksudo gedit /etc/default/grub


搜索以下行:

GRUB_DEFAULT = 0


并用Windows条目的名称修改0。在我的计算机上:

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


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

更新GRUB

只需运行以下命令:

$ sudo update-grub


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

#9 楼

Grub-Customizer:

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

#10 楼

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

祝你好运。

评论


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

–克里斯托弗·凯尔·霍顿(Christopher Kyle Horton)
2011年7月14日在18:54

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

–文森佐
2011年7月16日在8:28

#11 楼

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

命令将输出类似Windows的内容。

现在,通过运行以下命令打开/boot/grub/grub.cfg:更改:

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




gksudo gedit /etc/default/grub


最后,运行:

GRUB_DEFAULT=0


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

#12 楼

编辑文件/ etc / grub / default

,当您第一次启动计算机并获得grub菜单时,会在

GRUB_DEFAULT=0


引导菜单中的第一项是0
,如果引导菜单中的第二项是Windows,则将该数字更改为1

保存,退出,
运行
update-grub
命令并重新启动以看到您的新更改!

评论


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

– Nirmik
2012年5月16日在20:12

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

–ruffEdgz
2012年5月16日21:29

11.10使用grub2,我的示例来自12.04。却是一样的

–tomodachi
2012年5月20日13:22

#13 楼

您不需要安装grub-customizer!

所以,这是您对grub2所要做的:输出说明您有什么启动可能性/操作系统。

这是示例输出:

grep menuentry /boot/grub/grub.cfg 


您可以看到,Windows 7是在输出的第5行。

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

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

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

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

#14 楼

下次启动计算机时,Windows 7将放置在GRUB菜单中。 (请记住,您必须从0开始计数-例如,如果Windows位于第三行,则它的位置为2,依此类推)。

然后修改行

sudo gedit /etc/default/grub




GRUB_DEFAULT="0"

grub菜单中Windows7条目的位置(从0开始)。
如果需要更多信息,请告诉我。

评论


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

–拉斯穆斯·麦蒂森(Rasmus Mathiesen)
2011年7月13日在17:42

如果它在第二行中,则必须放入1(第一行编号为0)

– Juan Sebastian Totero
2011年7月13日在17:47

对对对,这就是我的意思;)

–拉斯穆斯·麦蒂森(Rasmus Mathiesen)
2011年7月13日在17:54

每次ubuntu安装新版本的内核时,这都会中断

–大卫·奥尼尔(David Oneill)
2011年7月13日在21:54

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

– Juan Sebastian Totero
2011年7月14日在9:53

#15 楼

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

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

ppa:danielrichter2007 / grub-customizer

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

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

或者,您可以只打开一个终端并运行以下命令: apt-get install grub-customizer

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

如果您要开始之前请了解更多信息:

用于Grub Customizer的启动板PPA

关于如何通过浏览和图片进行怪胎的指南

#16 楼

通常,当我不得不“弄乱”我使用“ 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
13年4月6日在22:57

无需安装用于更改grub顺序的软件。您也可以使用grub-customizer来做到这一点,但是我认为比通过命令行更困难

–来自fromnaboo
2013年4月6日23:56