|
多谢楼上几位的热心解答,我在两台电脑(都有两个硬盘)测试了一下,发现了一些有趣的东西,总结如下:
1、如果是从map的镜像生效的设备chainloader启动则不用事先或事后指定根设备的,例如:
totle 启动DOS(启动成功)
map --mem /dos.ima (fd0)
map --hook
chainloader (fd0)/io.sys 或者 chainloader (fd0)+1
totle 启动RamXP(启动成功)
map --mem /ramxp.img (hd0)
map --hook
chainloader (hd0,0)/ntldr
2、如果有某些需要要在chainloader命令之前使用root(或rootnoverify)命令指定其它的根设备(非map镜像的设备)时,则不论root(rootnoverify)什么设备都对启动没有影响,例如:
totle 启动DOS(启动成功)
map --mem /dos.ima (fd0)
map --hook
root (hd0,0)
chainloader (fd0)/io.sys 或者 chainloader (fd0)+1
totle 启动RamXP(启动成功)
map --mem /ramxp.img (hd0)
map --hook
root (hd1,1)
chainloader (hd0,0)/ntldr
(请注意,以上两个菜单root和chainloader的是两个不同的设备)
以上菜单都是可以启动成功的.但将root(rootnoverify)命令放在chainloader之后则根据启动的系统不同而对启动有着不同的影响,例如下面的启动菜单是可以启动成功的:
totle 启动RamXP(启动成功)
map --mem /ramxp.img (hd0)
map --hook
chainloader (hd0,0)/ntldr
root (hd1,1)
但下面这个菜单则不能启动成功:
totle 启动RamXP(启动不成功)
map --mem /ramxp.img (hd0)
map --mem /test.ima (fd0)
map --hook
chainloader (hd0,0)/ntldr
root (fd0)
而奇怪的是用上面的菜单RamWindows7却可以启动成功,
totle 启动RamWin7(启动成功)
map --mem /ramwin7.img (hd0)
map --mem /test.ima (fd0)
map --hook
chainloader (hd0,0)/bootmgr
root (fd0)
3、同时还发现对于RamOS来说,如果是NT5.X(XP/2003)的系统则必须将镜像map 为(hd0),否则不能启动成功,但对于windows7系统来说则无此限制,例如你如果愿意甚至可以这样启动RamWin7:
title 启动RamWindows7(启动成功)
map --mem /ramwin7.img (hd8)
map --hook
map --harddrives=9
chainloader (hd8,0)/bootmgr
因此,基于Windows7的以上特性,如果你想从第一个硬盘启动的Grub4Dos来启动放在第二个硬盘的Windows7,可以这样来直接启动,
title 启动第二个硬盘的windows7
chainloader (hd1)+1
#或者chainloader (hd1,0)/bootmgr (假设Win7装在第一个主分区)
而对于启动放在第二个硬盘的NT5.X(XP/2003)来说,则必须要交换硬盘后才能启动成功,
title 启动第二个硬盘的XP系统
map (hd1) (hd0)
map (hd0) (hd1)
map --hook
chainloader (hd0)+1
以上纯粹经验之谈,毫无技术含量,如有错误请不吝指正。
[ 本帖最后由 yjstone 于 2010-10-12 00:36 编辑 ] |
|