window7 安装grldr

利用NT的启动管理器引导GRLDR.MBR

经过适当的修改,GRLDR.MBR可以直接由NT的启动管理器来引导,

在2000/XP/2003下,在boot.ini的最后加上一行:
C:\GRLDR.MBR="Boot GRLDR.MBR"

在Vista下,可以使用bcdedit,方法在fujianabc的贴子里有介绍,摘录如下:

md a:\boot 创建a:\boot文件夹
bcdedit /createstore a:\boot\bcd  新建一个bcd文件
bcdedit /store a:\boot\bcd -create {bootmgr} /d "Boot Manager"  新建一个用bootmgr加载的启动项
bcdedit /store a:\boot\bcd /create /d "bootsect" /application bootsector 此项目用bootmgr加载一个bootsector项
执行上面命令后返回一个{ID},然后执行
bcdedit /store a:\boot\bcd /set {ID} device boot  设置启动设备
bcdedit /store a:\boot\bcd /set {ID} path \grldr.mbr  设置启动扇区路径和文件名
bcdedit /store a:\boot\bcd /displayorder {ID} /addlast  加入以上设置项目

当然,你还需要把附件中的grldr.mbr文件拷贝到C:\下。

如果引导正常,GRLDR.MBR运行,它会在硬盘上所有的FAT16/FAT32/NTFS/EXT2分区的根目录寻找并
装载GRLDR,其效果就和把GRLDR.MBR安装到MBR里一样。

原理:

我发现NTLDR引导启动文件的方式非常奇特:

如果文件大小<16扇区(8K),那么整个文件被装载到D00:0,不过只有第一个扇区的内容被拷贝
到0:7C00中,而且开始运行的地址是0:7C00。

如果文件大小=16扇区(8K), 那么整个文件被装载到D00:0,而且,开始运行的地址是D00:200

文件大小>16扇区(8K)的情况没有测试,不过应该和=的情况是类似的。

请大家在不同的系统上测试一下。

更新:根据不点的提示改动了一下grldr.mbr,现在该版本应该可以适用于XP系统下

更新:修改了NTFS的代码,现在应该能够解决Large structure的问题

你可能感兴趣的:(window7)