使grub在内核更新下保持其默认启动


11

我双重引导了我的计算机,我希望它默认启动到Windows,以便每当我从家中远程重新启动计算机时,便能够重新进入Windows(而不是Ubuntu)。

问题在于,每次Ubuntu升级内核时,我都必须将grub的默认启动项重置为Windows。这是因为grub菜单加载器使用位置(即6)作为默认OS进行引导。当Ubuntu安装新内核时,它将更改该顺序。

我正在寻找一种配置grub的方法,以记住内核更新下的默认启动项。

Answers:


9

Grub 1(Ubuntu 9.04及更早版本)

我发现最简单的方法是将Windows启动项移至的Ubuntu项上方/boot/grub/menu.lst。默认情况下,Grub配置文件的布局如下:

  1. 基本选择
  2. debian auto-magic内核配置(默认情况下包括诸如memtest86 +之类的实用程序)
  3. 其他检测到的操作系统

第2节在配置文件中由以下几行划分:

### BEGIN AUTOMAGIC KERNELS LIST
(lots of stuff here)
### END DEBIAN AUTOMAGIC KERNELS LIST

自动检测到的操作系统(例如Windows)的条目位于此部分之后。当您安装新内核时,第2节是唯一更改的部分。因此,将自动检测到的OS移至该行之前的某个BEGIN位置,将其放置在安装新内核时条目号不会更改的位置。


Grub 2(Ubuntu 9.10及更高版本)

使用Grub2,可以在任何时间update-grub运行重新创建整个配置文件,因此编辑/boot/grub/grub.cfg不会成为永久性的修复。该文件的生成方式由中的文件/etc/default/grub和脚本处理/etc/grub.d/*。因此,我们通过修改控制configfile各个部分的文件来修改配置,然后update-grub再次运行。

/etc/grub.d包括以下文件:

  • 00_header
  • 05_debian_theme
  • 10_hurd
  • 10_linux
  • 20_memtest86 +
  • 21_memtest86
  • 30_os-prober
  • 40_custom

这些是得到运行shellscripts 为了生成配置文件。Windows引导项由生成30_os-prober中启动Linux引导项运行10_linux。因此,只需重命名30_os-prober为少于10的内容,然后重新运行update-grub

mv /etc/grub.d/30_os-prober /etc/grub.d/09_os-prober
update-grub

现在,您的Windows条目应该是第一个条目,您可以在中将其设置为默认启动条目(GRUB_DEFAULT=/etc/default/grub


2

按照我的博客上说明这里使用干净的Windows引导加载你的工作。我现在使用它,当我启动PC时,有两个选择:

Windows Vista Ubuntu 10.04

没有其他混乱。您也可以为其设置许多不同的选项。如果5秒钟不按任何按钮,Windows将启动。

祝好运。


该链接几乎已失效
tshepang 2010年
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.