无忧启动论坛

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

[求助] 进行磁盘交换后直接map时会在chainloader 时出现读磁盘错误,求解。

[复制链接]
跳转到指定楼层
1#
发表于 2011-10-26 11:31:57 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
进行磁盘交换后,map --memUD区的ISO无问题,但直接map时会在chainloader (0xff)时出现读磁盘错误,求解。
问题源于fbinst 启动后U盘被识别为fd0的问题!
G4D版本2011-10-19
刚刚重新整理测试几十次的数据,发现我晕了。
u盘被识别为hd0的时候,交换后没有问题。
u盘被识别为fd0的时候,交换后会出现该问题。
重新修改可以重现问题的代码!
文件如下:
tangope.iso 未压缩100%文件无碎片。位于(ud)/boot/下
wvblock.gz   压缩的标准1.44M软盘镜像文件,位于U盘可见区根目录
U盘在VM中启动会被识别为hd0
  1. map (fd0) (hd0)
  2. map --mem (fd0,0)/wvblock.gz (fd0)
  3. map --hook
  4. write 0x8280 0x80 && calc *0x82b9=*0x82b9&0xffffff00|0x80
  5. map --mem (ud)/boot/tangope.iso (0xff)
  6. map --hook
  7. chainloader (0xff)
  8. 成功!
  9. map (ud)/boot/tangope.iso (0xfa)
  10. map --hook
  11. chainloader (0xfa)
  12. error 25: Disk read error!
复制代码
map --mem除了不要求文件连续,允许压缩,读取到内存外和直接map有什么不同?为什么map不可读电脑上map --mem可读?

--------------------------------------------------------------------------------------------------------------------------------------------
没有write 0x8280 0x81 && calc *0x82b9=*0x82b9&0xffffff00|0x81 这句的结果:

-------------------------------------------------------------------------------------------------------------------------------------
有write 0x8280 0x80 && calc *0x82b9=*0x82b9&0xffffff00|0x80 这句的结果:




[ 本帖最后由 hotdll 于 2011-10-26 14:24 编辑 ]
116#
 楼主| 发表于 2011-10-31 10:04:12 | 只看该作者

回复 #115 chenall 的帖子

sorry, 晕,知道原因了。。。
我用grldr调用buldr,burg并不理睬grub4dos的map
回复

使用道具 举报

115#
发表于 2011-10-31 09:52:52 | 只看该作者
我试了是正常的啊??具体情况如何?
回复

使用道具 举报

114#
 楼主| 发表于 2011-10-30 21:54:20 | 只看该作者
c大,您更新的1030版本没有修复1028版本修复的bug
回复

使用道具 举报

113#
发表于 2011-10-29 23:46:54 | 只看该作者

回复 #110 mygamexxx 的帖子

我的情况与FBINST无关,因为我U盘没做UD区,只有一个区(BootICE写入MBR为NT6,PBR为G4D)
回复

使用道具 举报

112#
发表于 2011-10-29 21:57:40 | 只看该作者

回复 #111 不点 的帖子

freedos和DOS6.22均能正常启动,只是由于想加载DOS下的USB驱动和UIDE光盘驱动,使用freedos和DOS6.22感觉均有问题,只有DOS7.1好像没有太大问题,所以还是用它了。

只是碰到一台电脑map交换(fd0)(fd1)后,(fd1)无法访问,所以希望能不使用(fd1)中转,才想要提出问题。反正能用就行了。

[ 本帖最后由 mygamexxx 于 2011-10-29 22:08 编辑 ]
回复

使用道具 举报

111#
发表于 2011-10-29 21:47:13 | 只看该作者

回复 #110 mygamexxx 的帖子

你这个分析也很有道理。微软的代码,它不只是 “多年未更新” 的问题,而是 “本来就有 N 多陷阱” 的问题。

碰上诸如 fbinst 这类新生事物以及新型硬盘、新型分区结构等问题,它能保持 “不死” 已经很不容易了。

用开源的 FreeDOS 吧,虽然它比不上 MS-DOS 通用,但 FreeDOS 里面没有秘密,这倒是一个非常大的优点。
回复

使用道具 举报

110#
发表于 2011-10-29 19:25:52 | 只看该作者

回复 #108 不点 的帖子

chainloader (fd0)+1结果一样。

不过我认为不一定是G4D的原因,可能是FBINST的原因,(fd0,0)与(fd0)有关联,即使map (fd0) (hd0),实际上是(fd0,0)仿真到了(hd0,0),还是与(fd0)有关联,再map --mem到(fd0),受(hd0,0)影响导致仿真的(fd0)有轻微变化,而DOS7.1可能又比较敏感,造成不能启动。

我用下面代码同样有map到(hd),却可以启动。
map --mem (fd0,0)/onekey/onekey.ima (fd1)
map --hook
map (fd0) (fd1)
map (fd1) (fd0)
map --hook
calc *0x82b9=*0x82b9&0xffffff00|0x01
map (fd1) (hd)
map --hook
root (fd0)
chainloader /io.sys

[ 本帖最后由 mygamexxx 于 2011-10-29 21:35 编辑 ]
回复

使用道具 举报

109#
发表于 2011-10-29 15:25:54 | 只看该作者

回复 #108 不点 的帖子

我的菜单是+1,而不是/io.sys
两者我都测试了,都会失败,今晚下个原版的MS-DOS 6.22和MS-DOS 7.1的安装盘看看
回复

使用道具 举报

108#
发表于 2011-10-29 15:13:41 | 只看该作者
当 chainloader /io.sys 失败时,试试 chainloader +1 看能否启动?

微软的秘密太多,chainloader 直接加载 io.sys 的方式,或许本来就有失败的可能。
回复

使用道具 举报

107#
 楼主| 发表于 2011-10-29 13:58:54 | 只看该作者

回复 #100 chenall 的帖子

znpc那边我记得石头版主说过msdos7.1和grub4dos的兼容问题。
现在去GRUB4DOS开发区应该还能看到。
回复

使用道具 举报

106#
发表于 2011-10-29 12:31:47 | 只看该作者

回复 #104 mygamexxx 的帖子

不是所有主板都有这问题,我只在技嘉H67MA-D2H-B3主板上碰到而已
回复

使用道具 举报

105#
发表于 2011-10-29 11:37:24 | 只看该作者
试了一下,可能是MSDOS 7.X对环境比较敏感吧.,

问题确实存在,但没找到原因,对这一块不熟,我是无解了.
回复

使用道具 举报

104#
发表于 2011-10-29 11:30:02 | 只看该作者

回复 #103 rockrock99 的帖子

我在使用中AHCI模式,IDE模式都可以启动啊
回复

使用道具 举报

103#
发表于 2011-10-29 10:50:51 | 只看该作者

回复 #102 mygamexxx 的帖子

不是G4D的操作引起的,是硬盘接口的模式更改引起的,AHCI模式不行,IDE模式可以
回复

使用道具 举报

102#
发表于 2011-10-29 10:20:15 | 只看该作者

回复 #98 rockrock99 的帖子

我不这么认为,同一个IMA映像文件,同一台电脑,同一个启动U盘,只是因为G4D的操作不同,有的能启动,有的不能启动,说明G4D的操作引起了环境的变化导致的。

能说的可能是DOS7.1有点对环境敏感。

[ 本帖最后由 mygamexxx 于 2011-10-29 10:22 编辑 ]
回复

使用道具 举报

101#
发表于 2011-10-29 10:14:53 | 只看该作者
title   测试0
map --mem (fd0,0)/onekey/onekey.ima (fd1)
map --hook
commandline
map --status
geometry (fd0)

5月9日版


10月28日测试版


IMG映像:
115网盘下载:http://115.com/file/e6g89a7z#
我的一键恢复.zip
回复

使用道具 举报

100#
发表于 2011-10-29 09:59:09 | 只看该作者

回复 #98 rockrock99 的帖子

那看来就是属于MSDOS 7.1的问题了.
回复

使用道具 举报

99#
发表于 2011-10-29 09:58:26 | 只看该作者

回复 #94 mygamexxx 的帖子

把你的IMG传给我测试下,看看能不能重现.
回复

使用道具 举报

98#
发表于 2011-10-29 09:55:32 | 只看该作者

回复 #96 chenall 的帖子

之前根据P大的指导测试过,确定是MS-DOS 7.1的问题(这个问题会导致0PE v1.3.x的PE启动不了),freeDOS是可以正常启动的(DiskGen镜像)
回复

使用道具 举报

97#
发表于 2011-10-29 09:50:20 | 只看该作者
测试8月9日和5月9日的grldr,每种测试分别相同。

测试1
Fr To Hm Sm  To_C _H _S

00 FF 03  24   8840 FE 7F


测试2
Fr To Hm Sm  To_C _H _S

00 FF 03  24   8040 FE 7F
回复

使用道具 举报

96#
发表于 2011-10-29 09:30:46 | 只看该作者

回复 #91 rockrock99 的帖子

你可以先简单映射一个IMG启动试试,不要交换磁盘等操作.排除影响.
回复

使用道具 举报

95#
发表于 2011-10-29 09:29:28 | 只看该作者

回复 #94 mygamexxx 的帖子

使用--mem参数的时候都是使用LBA的C/H/S的值没有用处.
回复

使用道具 举报

94#
发表于 2011-10-29 09:19:57 | 只看该作者
title   测试1 (启动DOS6.22正常)
map (fd0) (hd1)
map --hook
map --mem (hd1,0)/onekey/onekey.ima (fd0)
map --hook
commandline
map --status
geometry (fd0)

Fr To Hm Sm  To_C _H _S

00 FF 03  12   88F1 FE 7F

title   测试2 (启动DOS6.22正常)
map --mem (fd0,0)/onekey/onekey.ima (fd1)
map --hook
map (fd0) (fd1)
map (fd1) (fd0)
map --hook
commandline
map --status
geometry (fd0)

Fr To Hm Sm  To_C _H _S

00 FF 03  12   809F 03 52

To_C _H _S两次测试也不一样,DOS6.22却都能正常启动,搞不懂。

[ 本帖最后由 mygamexxx 于 2011-10-29 09:22 编辑 ]
回复

使用道具 举报

93#
发表于 2011-10-29 09:19:42 | 只看该作者

回复 #92 mygamexxx 的帖子

有没有试过以前的版本?以前的版本的情况是怎么样的.一样的吗?
回复

使用道具 举报

92#
发表于 2011-10-29 08:36:12 | 只看该作者
title   测试1 (启动DOS7.1后死机)
map (fd0) (hd1)
map --hook
map --mem (hd1,0)/onekey/onekey.ima (fd0)
map --hook
commandline
map --status
geometry (fd0)


title   测试2 (启动DOS7.1正常)
map --mem (fd0,0)/onekey/onekey.ima (fd1)
map --hook
map (fd0) (fd1)
map (fd1) (fd0)
map --hook
commandline
map --status
geometry (fd0)


可以看出(fd0)的To_C _H _S几何参数不一样,DOS映像是同一个文件。
使用的是10月28日的测试版grldr。

[ 本帖最后由 mygamexxx 于 2011-10-29 08:44 编辑 ]
回复

使用道具 举报

91#
发表于 2011-10-28 21:07:05 | 只看该作者
也顺便贴下我的不能启动Bug:

对比两张图显示的数值一致,图1是AHCI模式,图2是IDE模式,MS-DOS只能在IDE模式里面启动,不知道为啥?

[ 本帖最后由 rockrock99 于 2011-10-28 21:08 编辑 ]

IMG_1452.JPG (52.92 KB, 下载次数: 140)

IMG_1452.JPG

IMG_1453.JPG (53.93 KB, 下载次数: 154)

IMG_1453.JPG
回复

使用道具 举报

90#
发表于 2011-10-28 16:23:21 | 只看该作者

回复 #88 mygamexxx 的帖子

把能启动和不能启动的map --status信息和geometry (fd0)的信息贴上来看一下.
回复

使用道具 举报

89#
 楼主| 发表于 2011-10-28 16:17:19 | 只看该作者

回复 #88 mygamexxx 的帖子

再加一个 试试



再试:
geometry --tune (fd0)
geometry --sync (fd0)
回复

使用道具 举报

88#
发表于 2011-10-28 16:04:50 | 只看该作者
奇了怪了,dos6.22的能启动,dos7.1的不能启动,加了geometry --sync (fd0)也没用。

如果不进行map (fd0) (hd0)
dos7.1的都能启动啊,用同一个映像测试的。

title   测试
map (fd0) (hd1)
map --hook
map --mem (hd1,0)/onekey/onekey.ima (fd0)
map --hook
write --offset=46 (fd0)/autoexec.bat todos
geometry --sync (fd0)
root (fd0)
chainloader /io.sys

[ 本帖最后由 mygamexxx 于 2011-10-28 16:14 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-17 06:24

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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