|
checkrange 0x80 read 0x8280 && map (hd1) (hd0)
#读取内存0x8280位置的值(GRUB4DOS内置变量,启动磁盘号,具体请看GRUB4DOS说明).如果是0x80(也就是hd0)就执行后面的语句.
另外我前面说的"U盘刚好的引导扇区"是因为你之前使用的菜单.
title 启动 默认Microsoft Windows
checkrange 0x80 read 0x8280 && map (hd1) (hd0)
因为这时上面的映射还没有生效,执行chainloader实际上是加载了U盘上的mbr的内容.
chainloader (hd0)+1
到后面默认map --hook生效后U盘原来的位置被硬盘取代了,所以就启动成功了.
你可以尝试使用GRUBINST之类的工具把GRUB4DOS引导写到U盘上再试试使用这样的菜单,或许就会发现这其中的问题了.(我自己没有试过.^_^,只是理论)
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=139062&extra=page%3D2
这里就有一个这样的工具.
你可以测试下具体的结果.
另外一点.
chainloader (hd0,0)/ntldr
建议还是使用chainloader (hd0)+1
因为系统不一定是装在(hd0,0)上的,也有可能是(hd0,1).
总之只要chainloader (hd0)+1让它自己去找就OK了.
[ 本帖最后由 chenall 于 2009-4-29 18:58 编辑 ] |
|