使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.