Vista/Win7下通过BCD启动配置实现与Linux的双启动

来源:互联网 发布:软件资格认证 编辑:程序博客网 时间:2024/05/22 02:19

对于Linux与Windows共存的机器,如果在安装的时候先安装了Linux,而后进行Windows的安装。这时候Windows会将mbr中的grub loader覆盖掉,这样安装后Linux将无法启动。

 

在XP之前的时代,Windows系统是通过boot.ini配置文件来进行启动项的配置的。 这时候,可以使用Grub4Dos,并且通过在boot.ini的最后追加一条C:/grldr=GRUB来启动Grub4Dos,进而进入Linux系统。

 

而Vista/Win7的系统,boot.ini这个文件已经取消。取而代之的是叫做BCD的启动配置文件。该文件需要通过BCDEdit程序来配置。

通过BCDEdit程序添加对Grub4Dos的动作如下:

 

1. 将grldr.mbr, grldr, menu.lst放在Vista/Win7系统根目录

2. 在Vista/Win7系统上,以管理员身份运行cmd.exe

3. 添加新的启动项, 添加成功后会返回一串{id}值 

 

      bcdedit /create /d "Grub4Dos" /application bootsector[1]

 

4. 设置启动项设备分区为grldr.mbr, grldr, menu.lst所存在的目录,即系统根目录。

 

      bcdedit /set {id} device partition=系统根目录[2]

 

5. 设置启动项所要运行的文件

 

     bcdedit /set {id} path /grldr.mbr

 

6. 将该启动项激活

 

    bcdedit /displayorder {id} /addlast[3]

 

通过以上设置,在Vista/Win7的启动界面上将出现Grub4Dos的启动项,选择后就可以进入Grub了。

 

 

[1]  注意,这里是通过grldr.mbr文件(即grldr的前几个字节)启动Grub4Dos的,所以要application要指定为bootsector。 直接通过grldr文件,指定application为osloader的时候,无法启动Grub4Dos。这点我还没有弄明白。

[2]  直接指定boot做为device也是可以的。

[3]  创建出来的启动项并不直接处于激活状态,必须通过/displayorder选项或者/bootsequence选项添加到激活的启动项列表中。

      通过bcedit /enum命令只能看到激活的启动项。

原创粉丝点击