#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
命令行选项会执行相同的操作。 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社区文档页面上讨论如何执行这些操作。
祝你好运!
评论
保持简单是基于爱因斯坦的名言:“事情应该尽可能简单,但不要太简单。” (当有人引用时,省略最后三个词)。谢谢你的功夫...
–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
评论
由于我“不够活跃”,因此无法在此处发布答案...但这是一个无需安装任何内容的简单解决方案:dpkg-divert --divert /etc/grub.d/31_linux --rename / etc /grub.d/10_linux。这会将其他操作系统放在引导列表的第一位。然后只需运行update-grub即可更新列表。显然,这些都是root用户。