无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3019|回复: 3
打印 上一主题 下一主题

关于 map 命令和 find 用法的问题

[复制链接]
跳转到指定楼层
1#
发表于 2013-3-21 19:33:17 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
在很多地方看到这样的写法:

title [1] 搜索并启动硬盘上的 NT6 系统\n(Windows 8/7/Vista/2012/2008)
find --set-root --devices=h /bootmgr
map () (hd0)
map (hd0) ()

map --rehook
find --set-root --devices=h /bootmgr
chainloader /bootmgr


红颜色部分的3行不是很理解。

1.
第一个地方的第一行,
map () (hd0)
是将找到 /bootmgr 文件的分区映射成了整个硬盘 hd0,为什么要这样做?为什么不在 find --set-root 之后直接 chainloader /bootmgr?我在命令行下试过了是可以的,bootmgr放在深一点的目录里面也没有问题,比如放到 /boot/bootmgr,然后在 find --set-root 之后直接 chainloader /boot/bootmgr 也是可以启动系统的。那么为什么还需要下面一直到 chainloader 中间的命令?它们有什么作用?

2.
第一个地方的第二行,
map (hd0) ()
前面一行已经将当前 root 映射成了 hd0,这时候 () 和 (hd0) 应该是一样的,为什么还要加这一句?有什么作用?

3.
第二个地方,第二次 find --set-root,这个也不明白,前面第一次 find --set-root 已经把 root 设置到目标分区了,为什么还要设置一次?难道中间的 3 个 map 调用会更改当前 root?

[ 本帖最后由 2010qaqz111 于 2013-3-21 19:38 编辑 ]
4#
 楼主| 发表于 2013-3-23 23:07:15 | 只看该作者
谢谢,明白了,在 rehook 之前的两个 map 指定的操作实际上都还没有执行。
回复

使用道具 举报

3#
发表于 2013-3-22 14:56:59 | 只看该作者
楼上高手,受教了。留个爪子印。
回复

使用道具 举报

2#
发表于 2013-3-22 13:31:09 | 只看该作者
第一行表示:当前盘符交换为Hd0
第二行表示:然来的HD0交换到你find的盘符
这是为了保证操作盘符为第一硬盘第一分区
第三行就更好理解了,盘符都交换了当然要重新操作
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-16 04:20

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表