无忧启动论坛

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

[求助] UD分区怎样和硬盘交换磁盘

[复制链接]
跳转到指定楼层
1#
发表于 2016-6-3 11:16:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用FbinstTool制作的UD启动U盘,启动后,我想启动硬盘上的grldr,在命令行输入

map () (hd0)
map (hd0) ()
errorcheck off
map --hook
errorcheck on
find --set-root /grldr
chainloader /grldr

提示找不到grldr
2#
发表于 2016-6-3 11:32:30 | 只看该作者
find --set-root /grldr
chainloader /grldr
boot

点评

我输入了boot的,刚才忘了写  详情 回复 发表于 2016-6-3 11:52
回复

使用道具 举报

3#
 楼主| 发表于 2016-6-3 11:52:38 | 只看该作者
dxvyi 发表于 2016-6-3 11:32
find --set-root /grldr
chainloader /grldr
boot

我输入了boot的,刚才忘了写

点评

我的就是这样写的,没问题呀  详情 回复 发表于 2016-6-3 12:03
回复

使用道具 举报

4#
发表于 2016-6-3 12:03:43 | 只看该作者
yjqd 发表于 2016-6-3 11:52
我输入了boot的,刚才忘了写

我的就是这样写的,没问题呀

点评

你也是用的ud启动盘吗  详情 回复 发表于 2016-6-3 12:12
回复

使用道具 举报

5#
 楼主| 发表于 2016-6-3 12:12:49 | 只看该作者
dxvyi 发表于 2016-6-3 12:03
我的就是这样写的,没问题呀

你也是用的ud启动盘吗

点评

是呀。前面这样的: timeout 30 default 0 gfxmenu (ud)/main || find --set-root /main && gfxmenu /main  详情 回复 发表于 2016-6-3 12:14
回复

使用道具 举报

6#
发表于 2016-6-3 12:14:50 | 只看该作者
yjqd 发表于 2016-6-3 12:12
你也是用的ud启动盘吗

是呀。前面这样的:
timeout 30
default 0  
gfxmenu (ud)/main || find --set-root /main && gfxmenu /main
回复

使用道具 举报

7#
发表于 2016-6-3 12:39:30 | 只看该作者
设想一下,你UD启动后,如果启动U盘(宿主盘)本身就是被BIOS识别为 hd0 的情形会如何呢?

命令中的 () 和 (hd0) 不就是同一个东东吗?

所以,应该先判断一下。

点评

UD启动后,我输入root,发现(ud)是当前盘,输入find,出现 (ud) (hd0) (hd1) 输入root (hd0),再输入ls,发现和(UD)中的内容一样 不知该怎样交换磁盘了  详情 回复 发表于 2016-6-3 13:37
回复

使用道具 举报

8#
 楼主| 发表于 2016-6-3 13:37:16 | 只看该作者
captain_g 发表于 2016-6-3 12:39
设想一下,你UD启动后,如果启动U盘(宿主盘)本身就是被BIOS识别为 hd0 的情形会如何呢?

命令中的 ()  ...

UD启动后,我输入root,发现(ud)是当前盘,输入find,出现
(ud)
(hd0)
(hd1)
输入root (hd0),再输入ls,发现和(UD)中的内容一样

不知该怎样交换磁盘了
回复

使用道具 举报

9#
发表于 2016-6-3 14:24:40 | 只看该作者
我觉得是 “胡乱使用交换磁盘的命令”。

map () (hd0)
map (hd0) ()

相当于

map (ud) (hd0)
map (hd0) (ud)

这是胡乱使用。ud 不是 BIOS 盘号,它就像 pd 那样,是一个象征性的盘号,不能用于磁盘交换。

你把这个错误的用法删除掉(即,删除这两条交换命令,也删除 map --hook 命令),就好了。

点评

我原来看到启动UD可见分区的pe命令如下: find --set-root --ignore-floppies --ignore-cd /bootmgr map () (hd0) map (hd0) () map --rehook find --set-root --ignore-floppies --ignore-cd /bootmgr chainl  详情 回复 发表于 2016-6-3 14:41
回复

使用道具 举报

10#
 楼主| 发表于 2016-6-3 14:41:43 | 只看该作者
不点 发表于 2016-6-3 14:24
我觉得是 “胡乱使用交换磁盘的命令”。

map () (hd0)

我原来看到启动UD可见分区的pe命令如下:
find --set-root --ignore-floppies --ignore-cd /bootmgr
map () (hd0)
map (hd0) ()
map --rehook
find --set-root --ignore-floppies --ignore-cd /bootmgr
chainloader /bootmgr

我就以为ud能用于磁盘交换
回复

使用道具 举报

11#
发表于 2016-6-3 14:54:17 | 只看该作者
你看 find --set-root --ignore-floppies --ignore-cd /bootmgr 执行之后,当前分区已经变成 bootmgr 所在分区了。也就是说,root 命令返回的不是 ud,而是正常的分区 (hd0,0) 之类的了。这是根本性的差别。当 root 是 ud 的时候,你不可以使用上述交换命令,因为他们交换的是 ud 的盘号,这种交换是没有意义的。

点评

确实是你说的那样,当我把两行find --set-root --ignore-floppies --ignore-cd /bootmgr删除后,执行命令,发现磁盘交换根本没交换成功  详情 回复 发表于 2016-6-3 15:15
回复

使用道具 举报

12#
 楼主| 发表于 2016-6-3 15:15:26 | 只看该作者
不点 发表于 2016-6-3 14:54
你看 find --set-root --ignore-floppies --ignore-cd /bootmgr 执行之后,当前分区已经变成 bootmgr 所在 ...

确实是你说的那样,当我把两行find --set-root --ignore-floppies --ignore-cd /bootmgr删除后,执行命令,发现磁盘交换根本没交换成功

点评

再问一下 执行下面命令 find --set-root --ignore-floppies --ignore-cd /bootmgr chainloader /bootmgr 启动了可见分区的winpe.wim bootmgr是在UD分区(可见分区没有bootmgr),它为什么能找到可见分区的boo  详情 回复 发表于 2016-6-3 15:27
回复

使用道具 举报

13#
 楼主| 发表于 2016-6-3 15:27:53 | 只看该作者
yjqd 发表于 2016-6-3 15:15
确实是你说的那样,当我把两行find --set-root --ignore-floppies --ignore-cd /bootmgr删除后,执行命令 ...

再问一下
执行下面命令
find --set-root --ignore-floppies --ignore-cd /bootmgr
chainloader /bootmgr
启动了可见分区的winpe.wim

bootmgr是在UD分区(可见分区没有bootmgr),它为什么能找到可见分区的boot文件夹中的bcd
回复

使用道具 举报

14#
发表于 2016-6-5 13:36:39 | 只看该作者
关于bootmgr,你可以仔细观察一下U盘的分区表,mbr是不显示ud区的。
bootmgr只能识别ntfs和fat分区,无法识别UD分区,对他来说,ud区是一个“未分配空间”,所以,他启动了第一个自己觉得实际存在的分区

点评

谢谢以上所有朋友的回复,微软的文件不识别UD分区这我知道 当执行find /bootmgr 出现: (ud) (hd0) 可见分区用命令就能发现是(hd0,0),(hd0,0)和(hd0)是磁盘分区和磁盘的关系,这样的话bootmgr能找到可见分  详情 回复 发表于 2016-6-5 15:59
回复

使用道具 举报

15#
 楼主| 发表于 2016-6-5 15:59:21 | 只看该作者
lbw2007 发表于 2016-6-5 13:36
关于bootmgr,你可以仔细观察一下U盘的分区表,mbr是不显示ud区的。
bootmgr只能识别ntfs和fat分区,无法 ...

谢谢以上所有朋友的回复,微软的文件不识别UD分区这我知道

当执行find /bootmgr
出现:
(ud)
(hd0)

可见分区用命令就能发现是(hd0,0),(hd0,0)和(hd0)是磁盘分区和磁盘的关系,这样的话bootmgr能找到可见分区的boot文件夹中的bcd就是应该的
我是这样想的,不知对不对

另外:
当root时,出现(ud) filesystem type is fb
当root (hd0)时,也会出现filesystem type is fb,再root,出现
(hd0) filesystem type is fb

当root (ud)或是root (hd0)后再执行ls,会发现列出的文件和目录是一样的
回复

使用道具 举报

16#
发表于 2016-6-5 16:40:25 | 只看该作者
不用纠结,我来解释一下所发生的现象。

当一个盘上安装了 ud 时,这个 ud 区占用 MBR 的一段空间,最小有 8M,最大可以有几个 G。这部分空间是隐藏的。也就是说,普通的软件看不见这个区域。

你要是知道 MBR 通常保留了 63 个扇区(为隐藏的),你就能够理解这个现象了。这不过就是把 63 扇区扩大到 8M 或几个 G 罢了。

而通常的可见分区,是在分区表上定义的。

在 grub4dos 中,(hd0) 用来代表整个盘,也就是从 MBR 开始直到最后一个物理扇区的整个设备,就是 (hd0)。

当这个盘上安装了 ud 并从 ud 启动时,grub4dos 也认为整个盘 (hd0) 是 ud 系统。注意不要迷糊了,此时仅仅涉及所谓 “隐藏” 的内容(即 ud 区),不影响 (hd0,0) (hd0,1) 之类的通常分区。  

所以你会发现,(ud) 和 (hd0) 都是 ud 区的内容。

至于说 bootmgr 位于 ud 区而被启动,然后这个 ud 区的 bootmgr 又能找到(或不能找到)硬盘上可见分区里面的 boot.ini(或 bcd)文件,那是 bootmgr 自己的事,与 grub4dos 无关。

点评

谢谢回复,以前了解 ud 区占用 MBR 的一段空间和 MBR 通常保留了 63 个扇区(为隐藏的)的知识,但自己有时思考的时候又没想到联系起来分析  详情 回复 发表于 2016-6-5 17:09
回复

使用道具 举报

17#
 楼主| 发表于 2016-6-5 17:09:55 | 只看该作者
不点 发表于 2016-6-5 16:40
不用纠结,我来解释一下所发生的现象。

当一个盘上安装了 ud 时,这个 ud 区占用 MBR 的一段空间,最小 ...

谢谢回复,以前了解 ud 区占用 MBR 的一段空间和 MBR 通常保留了 63 个扇区(为隐藏的)的知识,但自己有时思考的时候又没想到联系起来分析
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-30 09:55

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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