无忧启动论坛

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

[求助] map ()+1 (hd0) 时候出错,磁盘分区有什么要求吗?

[复制链接]
跳转到指定楼层
1#
发表于 2013-11-5 14:55:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
下图是虚拟机中的出错截屏,真机中也出现这样的问题,请问是磁盘分区的问题吗? 我试过用PM7和新版DG分区,包括对齐扇区,都会出现下面的错误。

Snap1.jpg (40.12 KB, 下载次数: 24)

Snap1.jpg
2#
发表于 2013-11-5 15:40:28 | 只看该作者
本帖最后由 不点 于 2013-11-5 16:22 编辑

没错,是磁盘分区的问题。

对于磁道长度是 63 个扇区的那些盘,扩展分区里面的每个逻辑分区都有一个 “扩展分区表”。这个分区表通常位于紧接分区 BPB 引导扇区之前的 63 个扇区处(距离为一个磁道的长度)。如果不是这样的,那么就不能用 map 来将分区映射为含有分区表的盘。

图片中的错误信息的意思是,在规定的位置没有发现合法的扩展分区表。

用微软的 fdisk 或者 win98 里面的工具来建立分区,是可以的。其它工具建立的分区格式,不被 grub4dos 支持。

对于主分区,也是一样的道理。紧接主分区 BPB 引导扇区之前的 63 扇区(一个磁道的长度)处,必须是主分区表。仿真主分区意义不大,只有一个主分区才能用这种方式来仿真,即物理位置最靠前的那个主分区,并且距离分区表恰好是 63 个扇区,即,一个磁道长度。但这样的主分区仿真还不如直接用整盘映射来做了。因此,仿真主分区是没有什么意义的。

把分区仿真为整盘,其仿真的原理是,首先确定紧接这个分区之前的那个磁道的开头是否含有分区表(或扩展分区表),如果有,就能仿真,如果没有,就拒绝仿真。微软的 fdisk 所建立的分区就是符合要求的。当有分区表(或扩展分区表)时,仿真程序把这个分区表(或扩展分区表)作为新的虚拟盘的分区表,并进行了必要的虚拟,比如,让扩展分区表看起来像是一个主分区表的样子。

如果把分区仿真为软盘,则没问题。因为此时不用为这个分区添加一个虚拟的 MBR 磁道。

还有一种仿真方式是 map --in-situ (hd0,4)+1 (hd0),即,把扩展分区中的某个逻辑分区仿真为主分区。这是通过添加一个主分区表项来实现的。因此,要求主分区表的四项当中至少有一项是空白。这种方式类似于用 partnew 命令建立一个分区表项。所不同的是,partnew 是真的建立分区表项,它会写入硬盘的 MBR 扇区;而 map --in-situ 是虚拟的,不会真的去修改硬盘的分区表,不会写入硬盘的 MBR 扇区。

我还发现了另外一个问题:你用的是 NTFS 格式。仿真程序对 FAT12、FAT16、FAT32 的支持是完美的。NTFS 的 BPB 表可能无法被虚拟。因为它与 FAT 的 BPB 的差别太大了。比如,它没有 reserved sectors 这个域。


回复

使用道具 举报

3#
 楼主| 发表于 2013-11-5 15:56:09 | 只看该作者
谢谢不点大师这么详细的解答。
回复

使用道具 举报

4#
 楼主| 发表于 2013-11-5 17:08:11 | 只看该作者
另外请教下 map --in-place 参数具体作用是什么? 论坛的帮助文件中没有说明过,但不少实例中有用到,如map --in-place ()+1 (hd0),我用过对主分区或逻辑分区都有效果,把两个分区交换了,而且我应该也不是用fdisk分区的,这个dos命令实在比较古老不方便了。
回复

使用道具 举报

5#
发表于 2013-11-6 14:34:24 | 只看该作者
是故意不公开的选项。作用与 --in-situ 相同。区别在于,--in-situ 比较安全,当主分区表没有空白项的时候,就无法使用 --in-situ 了,它拒绝进行仿真。但 --in-place 放宽了限制,在这样的情况下也允许执行 map。此时,有一个主分区表的项目要被虚拟代码废弃掉。这个废弃掉的项目用来存放虚拟盘的分区表项。

--in-place 并非特别不安全。只要用户在这个仿真生效以后不用 INT13 指令写入 MBR 扇区,那就没有危险。如果用户程序中有一个程序用 INT13 指令写入了 MBR 扇区,那就可能永久性地更改了 MBR 上的分区表,造成原来四个表项中的某一个项目丢失,这个丢失的表项被替换成虚拟盘所占据的表项了,这也就相当于用 partnew 命令永久性地破坏了原来的分区表项。

回复

使用道具 举报

6#
 楼主| 发表于 2013-11-6 16:28:21 | 只看该作者
噢,还有这样的禁忌,看来以后要特别注意了。。。之前有帖子“PE安装到任意分区/逻辑分区 的100%成功方案”中就用到--in-place,但没有特别说明需要注意的地方

多谢不点解答。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-30 11:59

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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