无忧启动论坛

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

[讨论] map 交换软驱(fd1)丢失

[复制链接]
跳转到指定楼层
1#
发表于 2011-10-21 21:41:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在用一台旧联想机器(DDR时代的机器)测试时大致情况如下
fbinst制作的USB-ZIP启动:
U盘的UD区识别为(fd0),可见分区识别为(fd0,0)
map --mem (fd0,0)/dos.ima (fd1)
map --hook
find 并ls 各个盘,(fd0)为UD区,(fd0,0)为U盘可见分区,(fd1)为DOS映像文件内容,(fd0,1),(fd0,2),(fd0,3)不可读。
map (fd0) (fd1)
map (fd1) (fd0)
map --hook
find 发现少了(fd1),ls (fd0)为DOS映像文件内容,(fd0,0),(fd0,1),(fd0,2),(fd0,3)不可读。

目前只在此机器上出现此现象。

[ 本帖最后由 mygamexxx 于 2011-10-21 21:55 编辑 ]
2#
发表于 2011-10-21 22:34:02 | 只看该作者

回复 #1 mygamexxx 的帖子

read 0x82b8是什么值?
回复

使用道具 举报

3#
 楼主| 发表于 2011-10-22 08:04:25 | 只看该作者

回复 #2 zxw 的帖子

0x82b8的值应该是0x0, 我的U盘启动时针对USB-ZIP或USB-HDD启动方式使用了不同的菜单,菜单上有提示是USB-ZIP或USB-HDD启动方式
回复

使用道具 举报

4#
发表于 2011-10-22 08:40:23 | 只看该作者

回复 #3 mygamexxx 的帖子

不能“应该”,而应实机测试的值。
回复

使用道具 举报

5#
发表于 2011-10-22 08:59:00 | 只看该作者
回复

使用道具 举报

6#
发表于 2011-10-22 12:26:07 | 只看该作者

回复 #1 mygamexxx 的帖子

我今天和ZXW做了测试
您的U盘被识别为ZIP,UD和可见区是连在一起的。
您这么做丢失了UD信息。应该在0x80和0x82b8处重写识别信息。
回复

使用道具 举报

7#
 楼主| 发表于 2011-10-22 13:13:43 | 只看该作者
我说过只在此机器上出现,因为我在其他的机器上也有识别为ZIP的,但同样代码没有此现象。
这台机器是别人家里的机器,我自己的笔记本也是识别为ZIP的,测试却没有出现此现象。在我的机器上,交换(fd0)和(fd1)后,UD区会同时从(fd0,0)交换到(fd1,0)上

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

使用道具 举报

8#
发表于 2011-10-22 13:40:25 | 只看该作者

回复 #7 mygamexxx 的帖子

您可能没理解我的意思:
您制作的USB-ZIP只是FBINST的选项。这个功能仅仅是附加功能,不保证100%成功的。
ZNPC哪边最后对U盘识别为ZIP功能,也仅仅做到这个地方,添加ZIP识别码兼容部分机器而已。

您这个机器是真正的识别U盘为USB-ZIP,不信您可以把U盘做成USB-HDD,您可以发现机器一样识别为USB-ZIP

这也就是这个机器的特别之处。您map交换之后,并没有zip和ud的信息。所以少了一个分区。
回复

使用道具 举报

9#
发表于 2011-10-22 13:41:11 | 只看该作者
原帖由 mygamexxx 于 2011-10-22 13:13 发表
我说过只在此机器上出现,因为我在其他的机器上也有识别为ZIP的,但同样代码没有此现象。
这台机器是别人家里的机器,我自己的笔记本也是识别为ZIP的,测试却没有出现此现象。在我的机器上,交换(fd0)和(fd1)后 ...

实际上您的笔记本识别为ZIP是FB故意设置的。
但是您read 0x8280   的值应该是0x80
回复

使用道具 举报

10#
发表于 2011-10-22 16:11:42 | 只看该作者

回复 #9 hotdll 的帖子

我的是0x0,为啥?
回复

使用道具 举报

11#
发表于 2011-10-22 16:44:44 | 只看该作者
原帖由 rockrock99 于 2011-10-22 16:11 发表
我的是0x0,为啥?

您的是BIOS识别为ZIP,而不是FB做的哪个标记。

您可以用winhex读您u盘0x24处的值。这个是fb做标志的地方。默认是80,格式化为zip的时候为00

但是并不是所有的BIOS都是检测这个地方的值。我的笔记本就不会检测这个地方的值。

我家的台式机则不管这个地方的值为多少都是识别为ZIP。
回复

使用道具 举报

12#
 楼主| 发表于 2011-10-22 20:16:29 | 只看该作者
我的U盘启动时会先根据0x82b8处的值判断,如果是0x80启动USB-HDD的菜单,如果不是0X80启动USB-ZIP的菜单。
而程序运行时会先根据是否U盘(设定值)启动,再根据0x8280处的值为0x23确认是FBINST制作的启动盘,然后根据0x82b8的值,如果是0x0,才会进行先map --mem仿真(fd1),然后交换软驱(fd0)和(fd1)的操作。

如此自动操作出错后,才U盘启动直接进入命令行后,输入1楼的命令进行跟踪,发现此机器在交换软驱时出现(fd1)丢失现象。

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

使用道具 举报

13#
发表于 2011-10-22 22:00:47 | 只看该作者

回复 #12 mygamexxx 的帖子

是丢了,还是不可访问?如果是丢了那问题可能就比较严重了。

随时使用map --status查看状态,如果有(fd1)则一般都是小问题。
回复

使用道具 举报

14#
 楼主| 发表于 2011-10-22 22:33:47 | 只看该作者
我是用find检查的,有fd0没有fd1
回复

使用道具 举报

15#
发表于 2011-10-22 22:38:25 | 只看该作者

回复 #14 mygamexxx 的帖子

find不一定可靠,map --status或者ls (fd1)/要查看一下。
回复

使用道具 举报

16#
发表于 2011-10-23 09:58:45 | 只看该作者

回复 #15 zxw 的帖子

同zxw大大观点
find确实不可靠,比如如果没有fd0,您生成了fd1以后的软驱是不显示的。
但是map --status
能显示。
回复

使用道具 举报

17#
 楼主| 发表于 2011-10-28 20:56:32 | 只看该作者
map --mem (fd0,0)/dos.ima (fd1)
map --hook
map --status


map (fd0) (fd1)
map (fd1) (fd0)
map --hook
map --status


find
root (fd1)
回复

使用道具 举报

18#
发表于 2011-10-28 21:07:24 | 只看该作者
看图并没有丢失,只是访问异常了。

用的是什么版本的,可以先试试今天的测试版

cat --hex (fd1)+1应该可以看到第一个扇区内容的。

初步怀疑是C/H/S的值不对。

你可以映射之前
geometry (fd0)看一下它的值。
另外还可以试试先不覆盖(fd0),
map (fd0) (fd2)看看(fd2)是否可以正常访问。

总之,信息提供的越多就越清楚原因。

像cat --hex (fdx)+1
geometry (fdx)
map --status
等这些命令经常使用对比一下数据。
回复

使用道具 举报

19#
 楼主| 发表于 2011-10-28 21:57:30 | 只看该作者

回复 #18 chenall 的帖子

用的就是今天的测试版,以前用10月9日的,还用过8月9日的。

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

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-4 14:51

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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