用Windows引导器启动Grub

出自Linux Wiki

在2009年2月15日 (日) 12:15由Chenxing (讨论 | 贡献)所做的修订版本

一般Linux、Windows双系统用户习惯用Linux的启动管理器grub引导Windows,但有时还需要用Windows XP/Vista的引导器引导grub。产生这一需要的主要原因有:

  • 需要保留电脑的一键恢复功能。将Grub写至MBR一般会损坏这一功能。
  • 重新安装Windows系统后,MBR被Windows覆盖,grub不被启动的情况

本文介绍较简单的一种实现方案:使用grub4dos的核心文件及Windows引导器,由于Windows XP与Vista在引导管理上的巨大差异,故将二者分开讨论。

目录

Windows XP/2000系统

下载必要文件

网上一般要求下载grub for dos,但实际上只要有grldr一个文件就可以了,可以从这里直接下载(2009年2月15日更新),解压、并把这个文件放在C盘根目录下。

编辑boot.ini

在Windows中,"我的电脑"上点右键->属性->高级->启动和故障恢复右边的"设置"->上半部分的"编辑"出现用记事本打开的 boot.ini 文件。

在文件的末尾,加上一行

c:\grldr="GRUB"

保存文件,退出,重新启动。

如果不出意外的话,重启后就可以进入grub,可以用它启动Linux,在Linux中如果想要恢复grub到mbr就不难了。

Windows Vista系统

用Vista loader的系统

如果您的vista系统是用vista loader引导的(如果您用的不是正版Windows Vista,极有可能是这种情况),那么实际上已经有grub for dos了,因为vista loader本身就是从grub改来的。

如果属于这种情况,直接创建C:\menu.lst做为grub for dos的菜单即可。启动时会自动进入grub。注意进入Windows的菜单项配置是:

title Windows
   acpi
   chainloader (hd0,0)/bootmgr

普通的Vista操作系统

Vista使用BCD管理启动项,方法要麻烦些。[1]用管理员身份运行“命令行提示符”(在相应菜单项上按右键,选管理员身份运行)

首先下载完整的grub4dos,本站提供了镜像文件,解压后,把grldrgrldr.mbrmenu.lst(可选)都放到C盘根目录。

先建立一个菜单项

bcdedit /create /d "Grub4Dos" /application bootsector

此时会得到一个字符串,下面用id代替上一命令得到的字符串

bcdedit /set {id} device partition=C:
bcdedit /set {id} path \grldr.mbr
bcdedit /displayorder {id} /addlast

如果要设Grub4Dos为默认,则

bcdedit /default {id}

参考资料

  1. http://hi.baidu.com/%BF%B5%BD%A1/blog/item/c906c3fd8b67c740d7887d55.html
个人工具
简体繁体转换