|  | 
| 本帖最后由 有阴也有阳 于 2015-10-2 12:52 编辑 
 
 以下2个也应该能成功:
 
 title 从硬盘启动计算机
 
 map (hd0) (hd1)
 
 map (hd1) (hd0)
 
 map --hook
 
 root (hd0,0)
 
 chainloader +1
 
 
 title 从硬盘上启动计算机
 
 root && map (hd0) (hd1)
 
 root && map (hd1) (hd0)
 
 root && map --hook
 
 root (hd0,0)
 
 chainloader +1
 
 
 “直接引导 hd1 也不成功”——这可能是有的主板只支持从第一块硬盘启动,要从第二块硬盘启动就必须把第二块硬盘映射成第一块硬盘才能启动:
 
 命令map:
 
 当你有两块硬盘,一个无法从第二块硬盘启动的操作系统,例如Windowsxp,就可以使用map命令,能够将hd0映射为hd1,将hd1映射为hd0。
 
 换句话说,可以虚拟的交换两个硬盘而启动所需要的操作系统 。命令形式如下:
 
 grub> map (hd0) (hd1)——将hd0映射为hd1
 grub> map (hd1) (hd0)——将hd1映射为hd0
 
 你的“if %@root%==(hd0,0) map (hd1) (hd0)”命令已经将hd1映射为hd0,下面再从hd0的第1扇区启动就实际上是从hd1的第1扇区启动,
 
 故而获得了成功——避开了hd0的启动U盘,从hd1的电脑的第1块硬盘的第1扇区启动了。
 
 原来不成功的指令:
 
 title 从第一硬盘启动
 rootnoverify (hd1)
 chainloader (hd1)+1
 
 改为:
 
 title 从第一硬盘启动
 map (hd0) (hd1)
 map (hd1) (hd0)
 rootnoverify (hd0)
 chainloader (hd0)+1
 
 就应该可以成功了。
 
 
 | 
 |