问题描述
如何设置引导加载程序,以便在Windows 7 /Ubuntu 11.04的双引导下,Windows可以作为标准而不是Ubuntu启动?
最佳解决方案
自定义/etc/default/grub
文件
有两种使用编辑grub文件的方法。这些在Ubuntu Community Documentation Grub2 page中进行了描述
两种方法是:
-
启动上次启动的操作系统,即”saved method”
-
这是我使用的一个。它让我决定我要使用哪一个,并允许我重新引导到该系统,在我更新时方便使用。
-
-
默认情况下启动特定的操作系统。
-
你确切的问题的答案。
-
寻找menuentry设置为新的默认值
要开始,我们需要找出我们正在启动或想要启动的内容。用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/default/grub
和你的密码,如果问。 nano编辑器将打开。
A.保存的方法 – 以我喜欢的方式,我从标准的grub文件进行了以下更改。
-
我将
GRUB_DEFAULT
的值更改为saved
:GRUB_DEFAULT=saved
-
我通过添加以下行来启用SAVEDEFAULT functionality:
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
在/boot/grub/
目录中更新系统生成的grub.cfg
文件。
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
Addendum
纳米笔记
nano
特别容易在终端中使用。用箭头键移动。输入你的addtions,删除不需要的。
-B
或--backup
选项将其以前版本备份到当前文件名后缀为~
。在可怕的Fat pfinger effect的情况下非常方便。
当您通过时,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
,因为除非您是管理员,否则默认设置可以用non-obvious方式覆盖。 sudoedit
比较安全,因为它会自动保存已编辑文件的备份副本,但nano
中的-B
命令行选项的功能相同。 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进行了一些更改。如月亮发射的背景图片。建议在Ubuntu Community Documentation page on Grub2上讨论如何做到这些。
祝你好运!
次佳解决方案
通过一些命令行技巧,您可以将grub的默认设置始终作为特定的grub条目 – 例如Windows – 无论何时安装新内核。
在终端类型中:
fgrep menuentry /boot/grub/grub.cfg
这将显示所有的grub条目 – 例如
突出显示您想要默认的条目 – 例如screen-shot中的Windows 7。右键单击并选择copy
类型
gksu gedit /etc/default/grub
更改条目
GRUB_DEFAULT=0
至
GRUB_DEFAULT="Windows 7 (loader) (on /dev/sda2)"
即粘贴你想要的条目(包括引号)
保存,然后键入
sudo update-grub
第三种解决方案
您需要编辑/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(loader)(在/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操作系统索引位置的整数值,请注意索引从0开始计数,因此在我的示例中,Windows操作系统值为4,因此您也可以设置
GRUB_DEFAULT=4
之后,您需要通过输入来更新grub
sudo update-grub
第四种方案
你可以关注这个nitstorm answer here,
您将不得不通过添加Grub-customizer
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer
然后从短跑,应用镜头启动它。
上述菜单将与您的不同,因此请明智地选择并选择Windows 7条目,然后从顶部的菜单栏中选择^箭头将其向上移动以在启动时位于顶部位置。
要直接启动到Windows,请选择preference
并减少boot-time以加载窗口。
第五种方案
使用启动管理器,您可以从短划线开始。您可以在下拉菜单中使用操作系统。
第六种方案
它可以通过称为”Grub Customizer”的GUI工具轻松完成。
什么是Grub Customizer?
Grub Customizer是配置grub2的图形界面。该应用程序允许用户添加,删除,冻结,重命名和重新排序引导菜单项
如何安装?
打开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组中移出。
第七种方案
在启动时,将/etc/default/grub
中的GRUB_DEFAULT
值更改为可用操作系统的grub列表中的任何窗口。例如在我的情况下,我将不得不改变这条线
GRUB_DEFAULT=0
至
GRUB_DEFAULT=5
之后,运行sudo update-grub
。
第八种方案
识别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(一个文本编辑器)作为root打开我们的配置文件,运行这个命令:
$ 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条目应作为默认值突出显示!
第九种方案
是一个非常易于使用的图形GRUB2设置管理器。目前,它只允许您编辑GRUB2菜单条目:重新排序,重命名或添加/删除条目。它也将允许更改背景图像和菜单超时。由于这些实际上是生成boot.cfg文件的脚本,因此Grub Customizer会更改实际的脚本顺序,然后生成新的boot.cfg,因此如果您运行“sudo update-grub”,则不会覆盖您的自定义设置。