window7 装配grldr
利用NT的启动管理器引导GRLDR.MBR
在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的问题