无忧启动论坛

标题: 大家帮忙看看这段代码菜鸟求助 [打印本页]

作者: 2011flybat008    时间: 2011-4-20 09:55
标题: 大家帮忙看看这段代码菜鸟求助
title Boot First Partition on Second Disk
map (hd0) (hd1)
map (hd1) (hd0)
chainloader (hd1,0)+1
boot
有两点疑问:
1、在上面这段代码里,map命令使用了两次,是否等于未执行map命令?map (hd0) (hd1)是把第二硬盘当做第一硬盘,这样理解对吧?
2、chainloader (hd1,0)+1这句代码制定从第二硬盘的第一主分区读取第一扇区,那前面的map命令有什么用呢?
刚开始学,不懂,请老鸟指教。

[ 本帖最后由 2011flybat008 于 2011-4-20 13:17 编辑 ]
作者: 2011flybat008    时间: 2011-4-20 10:08
关于上面map命令连续使用两次的问题搞清楚了,实际上是对两块物理硬盘进行了交换。
现在不明白的地方是chainloader (hd1,0)+1这个命令。如果在chainloader (hd1,0)+1前面加上一句map --hook,那么chainloader (hd1,0)+1这句命令是读第一硬盘hd1,还是读第二硬盘hd0?
作者: sratlf    时间: 2011-4-20 10:08
这段命令有点问题吧  

title Boot First Partition on Second Disk
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
rootnoverify (hd0)
chainloader ()+1
boot

逐行解释:
1,将第一磁盘仿真为第二磁盘

2,将第二磁盘仿真为第一磁盘

3,以上两次仿真仅仅是"打算",还没有真正仿真磁盘,通过map --hook使仿真生效,交换了两块磁盘的顺序

4,将第一磁盘设置为root设备(此时的第一磁盘是交换磁盘前的第二磁盘)

5,链式加载启动第一磁盘第一扇区

6,确定进行启动(在菜单里这句可以不写)
作者: 2011flybat008    时间: 2011-4-20 12:44
又是你啊夜天版主,感谢感谢!
你写的代码我看的很清楚了。
如果把你写的rootnoverify(hd0)和chainloader()+1这两句去掉。换成chainloader (hd1,0)+1这句的话,那是不是就去读原本的第一硬盘第一扇区去了?
作者: sratlf    时间: 2011-4-20 12:51
标题: 回复 #4 2011flybat008 的帖子
是的。。。
作者: 2011flybat008    时间: 2011-4-20 13:09
多谢,学到不少东西啊。哈哈




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3