无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: pseudo
打印 上一主题 下一主题

【原创】★新型全外置结构:《零体积全能可扩展PE》ZIP版

  [复制链接]
1#
发表于 2009-3-29 01:02:01 | 显示全部楼层
原帖由 chenall 于 2009-3-28 17:53 发表
新版的不点可能有调整了rehook 让硬盘分区在最前面,否则以目前0pe的情况应该是会蓝屏的.


没有改动。

在 map --rehook 之后,所有的非内存盘都排到最前面,而所有的内存盘都按照内存盘在扩展内存中占有的位置进行排列,也就是说,原来位于扩展内存最高端的将优先排列,依次按照占据的扩展内存位置的高低对其余的内存盘进行排列。最低的,排在最后。

因为 map --rehook 会重新排列仿真盘的位置,所以,在 map --rehook 之前执行 map --hook=0x80 是没有意思的。必须在 map --rehook 之后执行 map --hook=0x80 才行。

如果一开始就没有非内存的仿真盘,并且最早执行的内存仿真盘就是 (hd0),那么,map --rehook 之后,(hd0) 就是第一项了,不用再执行 map --hook=0x80 了。但是,执行 map --hook=0x80 是安全的,因为在你的程序之前,别人的程序或许也有过其他仿真,而执行 map --hook=0x80 之后就可以确保 (hd0) 位于第一项。

map --rehook 会填补内存空洞(通过移动内存盘的位置)。如果你确信没有造成内存空洞,你就可以直接用 map --hook=0x80 了。

不管是否有内存空洞,map --rehook 都会调整仿真盘的先后顺序。也就是说,非内存盘首先排列,然后,排列位于最高端的内存盘,然后再在其余的内存盘中寻找最高的内存盘,直到所有的仿真盘都排列妥当。
回复

使用道具 举报

2#
发表于 2009-11-9 18:45:04 | 显示全部楼层
map --mem (hd0,0)/myiso.iso (0xff)
这个命令失败,说要增加 --heads 0 什么的.....


很可能你在以某种方式使用老版本的 grub4dos,而且很老了。老版本不支持 iso 仿真功能。

还有一种可能,你的 ISO 文件的开头的扇区含有通常的 MBR 或者分区引导扇区,这导致 map 把它当作普通的 img 文件来对待。加上 --heads=0 --sectors-per-track=0 可以解决这个问题。不过,你一定首先把旧版的 grub4dos 删去,替换成新版的,否则根本就没有 iso 仿真功能。估计当你启动 ISO 之后,你又启动了 ISO 内的(或者硬盘内的)某个老版本的 grub4dos,并用这个老版本的 grub4dos 来进行后续的操作,导致问题的出现。
回复

使用道具 举报

3#
发表于 2010-1-7 08:00:16 | 显示全部楼层
grub4dos 的磁盘缓冲仅仅存在于 grub4dos 的内核中。离开了 grub4dos 进入操作系统之后,缓冲就不存在了。

grub4dos 的 int13 磁盘仿真代码中没有缓冲机制。这是因为,仿真代码的体积有限,不能开辟磁盘缓冲区。
回复

使用道具 举报

4#
发表于 2010-1-7 13:40:28 | 显示全部楼层
@pseudo

根据 changelog,你说的 “12月15日以后”,已经是把grub代码挪到3M了。

估计还有一个潜藏的 bug 未解决。
回复

使用道具 举报

5#
发表于 2010-1-7 19:33:38 | 显示全部楼层
能否定位准确的出错地点?究竟是 grub4dos 的 bug 呢,还是 DOS、Windows 相关软件的 bug?这肯定是首先要确定的。

如果是 grub4dos 的 bug,还得进一步确定是哪个环节出现的。

-----------

pseudo,你看这里:

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=158572&extra=page%3D1&page=3

证明了 WinImage 和 UltraISO 等制作工具有毛病。

因此,这个问题的根源恐怕就在这里了。

[ 本帖最后由 不点 于 2010-1-7 23:21 编辑 ]
回复

使用道具 举报

6#
发表于 2010-1-8 07:29:55 | 显示全部楼层
> 只能理解为windows启动过程可能要写盘,由于碎片存在并且不善于利用非连续空间,导致仿真盘损坏。
> 但这是grub4dos+firadisk/wdsys控制的仿真盘,其读写跟grub4dos有无关系?

如果这样理解,那么,这个问题已经与 grub4dos 无关了。grub4dos 的仿真只是在实模式下起作用,进入保护模式后,完全与 grub4dos 脱离了关系,grub4dos 的仿真已经不存在了,取而代之的是 firadisk 等保护模式的磁盘仿真。

如果实模式下找不出 grub4dos 仿真代码的毛病,那么 grub4dos 就没有毛病了。

你必须证明,在实模式下,grub4dos 的仿真盘上的某个部分无法访问了。否则,问题就不在 grub4dos 方面。

补充:

我感觉 grub4dos 出错的可能性很小。firadisk/wdsys 出错的可能性也不大。

首要的,看看 imdisk 等工具是否有错。

它们写的 image 文件在 Linux 下能否正常挂载和访问?

有时候,能读取并不表明没问题。读取的文件内容与原始文件进行对比,完全相同,才算能够正常访问。

[ 本帖最后由 不点 于 2010-1-8 08:01 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-14 08:03

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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