无忧启动论坛

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

[求助] 问:三张软盘映象,怎样实现USB启动?合盘不管用,换盘遇困难……

[复制链接]
跳转到指定楼层
1#
发表于 2012-6-15 13:42:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问:三张软盘映象,怎样实现USB启动中换盘呢?

合盘不管用,换盘遇困难……

原标准环境:
古老的专用电脑+1.44M3.5寸软盘+USB-Floppy存驱动器

原标准步骤:
1. 用USB-Floppy驱动器,放入第一张软盘,启动。
2. 启动后按照提示,依次放入第2、第3张。
三张盘都输入后,软件开工,按提示进行后续工作就行了,不赘述。

现在的目标:
这个使用真软盘的方法太受局限,软盘也很难找,用起来不可靠。
现在想用U盘启动,解决问题。

已经试过的方法:

方法一:

U启加载disk-1.ima映像,提示如下:



这下难住我了。我不知道怎么在U启映像的情况下换第二张、第三张映像。


于是实验方法二:


方法二:

因为我找不到U启中依次换软盘映像的方法,所以我以第一张软盘为母盘,将三张软盘所有内容扩容成一张约5M的软盘映像。

在U盘上用GRUB4DOS加载此映象文件,可以看到启动过程。因为加入了三张软盘,所以看不到提示换盘提示了。
但进度条到100%后死机,黑屏。只剩光标闪烁。

附使用真软盘正常启动时,过了100%读取进度条后的界面:


这个界面在U启合盘后的5M软盘映像时看不到。直接死机。

我该如何做呢?

[ 本帖最后由 cycyc 于 2012-6-15 15:37 编辑 ]
2#
发表于 2012-6-15 15:33:55 | 只看该作者
你镜像太大了,标准软盘镜像最多2.88M,5M的后面读取会出错的。

但估计2.88M是放不下你三张盘的。碰这种问题的最好方法就是升级你的软件,或者直接在虚拟机里面使用这个软件
回复

使用道具 举报

3#
 楼主| 发表于 2012-6-15 15:40:09 | 只看该作者
原帖由 fujianabc 于 2012-6-15 15:33 发表
你镜像太大了,标准软盘镜像最多2.88M,5M的后面读取会出错的。

但估计2.88M是放不下你三张盘的。碰这种问题的最好方法就是升级你的软件,或者直接在虚拟机里面使用这个软件


谢谢回复。

升级软件是没门了。这类专用系统升级软件的周期起码10年。

虚拟机的思路我没明白,能否介绍得详细些?
回复

使用道具 举报

4#
发表于 2012-6-15 19:17:01 | 只看该作者
原帖由 cycyc 于 2012-6-15 15:40 发表


谢谢回复。

升级软件是没门了。这类专用系统升级软件的周期起码10年。

虚拟机的思路我没明白,能否介绍得详细些?

直接用虚拟机运行软件,这样就不用物理软驱了,只需要三个软盘镜像
回复

使用道具 举报

5#
发表于 2012-6-15 20:51:45 | 只看该作者

回复 #1 cycyc 的帖子

方法二仍然有希望成功。

你的 5M 软盘映像的几何参数是怎样的?

如果不是 H=2,S=18,你就试试用这两个参数。C 值加大,使得与总容量不发生矛盾。

以上想法是基于如下的怀疑而产生的,即,有可能你的软件对于 CHS 的值很挑剔,它可能只能与 H=2,S=18 一起工作。
回复

使用道具 举报

6#
 楼主| 发表于 2012-6-16 20:29:34 | 只看该作者
原帖由 fujianabc 于 2012-6-15 19:17 发表

直接用虚拟机运行软件,这样就不用物理软驱了,只需要三个软盘镜像


谢谢fujianabc回复。

虚拟机方法要解决如下问题:
1. 需要一个在PE下可以运行的虚拟机。因为目标硬盘必须是干净的,不能为了跑虚拟机就安装一个windows。这款虚拟机能够运行在PE/DOS上,并且这个虚拟机要程序提示换盘时,能支持换盘(换映像文件)。不知道fujianabc可有满足这个条件的虚拟机推荐一下?
2. 这个install程序要通过网络加载大量的数据到硬盘,平均耗费时间为40分钟。所以虚拟机中操作的目标资源必须是实机,例如install的目标盘必须是真实安装的物理硬盘;必须能通过真机网卡读写网络资源。
3. 虚拟机要包含真机的特征(也许是BIOS里的某个信息?),让install程序认为虚拟机就是真机,否则程序就挂住了。比如普通PC用真软驱安装,进入到这个界面后就会死机:

本来在测试环境下,如果用U启方式见到这个界面,就算完全成功。交付到现场真机上运行肯定能成功。
但用虚拟机,见到这个界面还不行。因为虚拟机到底不是真机,install程序判断不像真机,会死机。
回复

使用道具 举报

7#
 楼主| 发表于 2012-6-16 20:51:18 | 只看该作者
原帖由 不点 于 2012-6-15 20:51 发表
方法二仍然有希望成功。

你的 5M 软盘映像的几何参数是怎样的?

如果不是 H=2,S=18,你就试试用这两个参数。C 值加大,使得与总容量不发生矛盾。

以上想法是基于如下的怀疑而产生的,即,有可能你的 ...


谢谢不点回复。
我扩容后的软盘引导扇区S、H参数如下:


按不点的意见,修改后的S、H参数如下:


实测结果还是不行,结果相同。

进一步测试,扩容盘中的部分文件列表如下:

观察可看出,列表中的ADXNRK00.001,…….002,…….003,应该就是磁盘号标记。分别标记是第几张盘。
如果我删掉ADXNRK00.002,则加载扩容后映像文件时,会出现提示要插入2号盘。这说明猜测正确,ADXNRK00.*** 这三个文件确实就是磁盘号标记。
但如果只删除ADXNRK00.003,但期望中的提示插入3号盘的提示却没出现。
这说明,扩容软盘映像在装入2号盘阶段中间出问题了,以至于根本没有进入装入3号盘的阶段。

更仔细的观察发现,在U启加载扩容映像文件测试中,删除3号盘标记,结果在没见到插入3号盘提示的情况下,软盘驱动器出现了读写声。这说明,在装载2号到3号盘之间,程序发生了int13(?)以外的读软盘动作,这才绕过了G4D的软盘仿真。

我猜也许是程序中用了直接IO指令了?

[ 本帖最后由 cycyc 于 2012-6-16 21:27 编辑 ]
回复

使用道具 举报

8#
发表于 2012-6-16 20:55:32 | 只看该作者
如果碰到这种要缴验机器硬件的,并且只能在指定机器上运行的软件,那肯定是不能用虚拟机了。

所以还是强烈建议想办法升级软件,否则以后你这台电脑坏了,都无法在其它电脑上运行这个软件。或者你自己先想办法解决怎么让这个软件在其它电脑上运行的问题。
回复

使用道具 举报

9#
发表于 2012-6-16 21:05:26 | 只看该作者
还有一种方法,就是依靠199x年的dos下的虚拟软驱软件了,可以在dos下用img文件仿真软驱,并且是可以通过热键更换img内容的,比如这个
http://www.cn-dos.net/forum/view ... F%E8%BD%AF%E9%A9%B1
具体我也没用过,而且是15-20年前的东西了,现在不太好找

http://www.cn-dos.net/forum/viewthread.php?tid=529&fpage=1&highlight=%E8%99%9A%E6%8B%9F%E8%BD%AF%E9%A9%B1

[ 本帖最后由 fujianabc 于 2012-6-16 21:09 编辑 ]
回复

使用道具 举报

10#
 楼主| 发表于 2012-6-16 21:08:33 | 只看该作者
原帖由 fujianabc 于 2012-6-16 20:55 发表
如果碰到这种要缴验机器硬件的,并且只能在指定机器上运行的软件,那肯定是不能用虚拟机了。

所以还是强烈建议想办法升级软件,否则以后你这台电脑坏了,都无法在其它电脑上运行这个软件。或者你自己先想办法 ...


谢谢 ujianabc 回复。
升级软件是不可能了,这个信息系统所有的软件都老掉牙,比如服务器还是WIN2000的……。看不到会升级的迹象。
这系统里硬件倒是新机,而且源源不断。
回复

使用道具 举报

11#
发表于 2012-6-16 21:14:03 | 只看该作者
原帖由 cycyc 于 2012-6-16 21:08 发表


谢谢 ujianabc 回复。
升级软件是不可能了,这个信息系统所有的软件都老掉牙,比如服务器还是WIN2000的……。看不到会升级的迹象。
这系统里硬件倒是新机,而且源源不断。

那你还是去找那个时代的dos下虚拟软驱软件吧
回复

使用道具 举报

12#
 楼主| 发表于 2012-6-16 21:25:29 | 只看该作者
原帖由 fujianabc 于 2012-6-16 21:05 发表
还有一种方法,就是依靠199x年的dos下的虚拟软驱软件了,可以在dos下用img文件仿真软驱,并且是可以通过热键更换img内容的,比如这个
http://www.cn-dos.net/forum/view ... F%E8%BD%AF%E9%A9%B1
具体我也没用 ...


谢谢 fujianabc……
回复

使用道具 举报

13#
发表于 2012-6-17 16:22:19 | 只看该作者

回复 #7 cycyc 的帖子

一个加密的软件,往往会使用直接IO来读盘,绕过BIOS。

但是令人感到疑惑的是,为何第一张软盘却能够使用 int13 来读?难道第二张盘正是加密的秘密所在?程序为了保护自己不被非法使用,就用直接访问软驱硬件的手段。或许在软盘的某个隐蔽的地方保存了加密的信息,这些信息不在通常的扇区数据中,而是以其他某种底层信息的形式而存在于软盘上。

这样的软件,是无法用仿真来做的,因为设计者本来就是要防止你用仿真软件来破解它。破解的难度很高。
回复

使用道具 举报

14#
 楼主| 发表于 2012-6-18 22:15:52 | 只看该作者
原帖由 不点 于 2012-6-17 16:22 发表
一个加密的软件,往往会使用直接IO来读盘,绕过BIOS。

但是令人感到疑惑的是,为何第一张软盘却能够使用 int13 来读?难道第二张盘正是加密的秘密所在?程序为了保护自己不被非法使用,就用直接访问软驱硬件 ...



谢谢不点。

从软盘可以任意复制来看,看起来程序不像是加过防拷贝的密。不知道它为啥要直接IO读软盘。
今天又做了细致测试,可以肯定是在第2张软盘阶段卡住的了。

现在存一线希望的是,也许只有在普通PC上才这样,到了现场真机上,因为硬件环境真实了,可能会好了?

打算把做好的U启拿到现场去试试。

现场在外地,好远,等机会了。

[ 本帖最后由 cycyc 于 2012-6-18 22:17 编辑 ]
回复

使用道具 举报

15#
发表于 2012-6-18 22:47:30 | 只看该作者
至今你没说你所用的 map 命令是怎样的。有这样的可能性,即,你这个软件太老,不支持 int15/EAX=E820 内存规范,那么,使用 --mem 就可能引起内存冲突(由于你的软件不认识 E820 内存约定,所以可能破坏被 E820 保护了的内存盘)。你可以去掉 --mem 再试试。

另外,你可考虑修改 BPB 使得 H=2,S=36。这是 2.88M 标准软盘的情形,或许你这个软件就认它了。甚至也可以考虑 H=2,S=63,死马当活马医。当然也可以试试 H=255,S=63,等等很多组合。

还有一种方法你没有试验,即,用三个 U 盘,分别充当三个软盘,不需要 map 命令。当提示换盘时,你就换 U 盘。

[ 本帖最后由 不点 于 2012-6-18 23:05 编辑 ]
回复

使用道具 举报

16#
 楼主| 发表于 2012-6-21 16:03:36 | 只看该作者
原帖由 不点 于 2012-6-18 22:47 发表
至今你没说你所用的 map 命令是怎样的。有这样的可能性,即,你这个软件太老,不支持 int15/EAX=E820 内存规范,那么,使用 --mem 就可能引起内存冲突(由于你的软件不认识 E820 内存约定,所以可能破坏被  ...



原语句如下:
map --mem ()/imgs/posccdd1.ima (fd0) || find --set-root /imgs/posccdd1.ima && map --mem /imgs/posccdd1.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

工具扩容盘,提示磁头数和每磁道扇区数不对,无法运行。

手工修改2/18的磁头/扇区数后,可运行,但到99%后自动重启。


去掉 --mem后:
map ()/imgs/posccdd1.ima (fd0) || find --set-root /imgs/posccdd1.ima && map /imgs/posccdd1.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

posccdd1.ima结果和使用--mem时相同,而posccdd2.ima到99%后不再重启,后面出现W501等乱码后,死机。
可见如不点预料,不用--mem后结果确实有改进。


为了方便测试一堆不同的软盘格式,后来放到原U盘启动工具的UDDIY目录里,相关语句是:
()/auto/run --automenu /uddiy/
configfile (md)0x3000+0x10

在UDDIY目录里放了5个软盘映像,分别是posccdd1.ima、posccdd2.ima(此盘用2/18的磁头/扇区数)……,posccdd5.ima
其H/S参数分别为不点所说的:
扩容默认、2/18、2/36、2/63、255/63等。
放入这些映像后,启动可以自动列出菜单,选择相应序号后可执行。


实验结果,有的可加载,有的则干脆不能加载。



加载成功的软盘映像中,仍然是posccdd2.ima最好,和去掉--mem的结果相同:



小结:
1. 似乎()/auto/run --automenu 的效果和去掉--mem相同。
2. 看来H/S数2/18是这组软盘读扇区时的最佳参数(这组软盘中没有熟知的msdos/pcdos系统文件)。


这里请问不点,不知道这个
()/auto/run --automenu /uddiy/
configfile (md)0x3000+0x10
如果调整configfile的数值会不会有改进?向哪个方向调呢?

附加说明:
到目前为止,本贴中所有实验,都没在现场真机上做过,都是找身边的笔记本和台式机进行的。
我曾使用USB软驱放入三张真软盘(这是现场用标准流程工作时使用标准装备)在笔记本上测试的结果,也是到99%后死机。
既然实验室使用软驱和软盘的实验结果,和U盘加载映像文件的结果相同,那么存在一线这样的可能:
如果在现场真机上进行U盘加载映像文件(posccd2.ima)的实验,有可能加载进度可以达到100%,并且会通过后续所有动作,实验也许可成功。

但这个猜想由于路途遥远,以及客户不允许无故障状态下进行停机测试,所以真机测试一直无法进行。
祈祷真机再坏一次,呵呵。

[ 本帖最后由 cycyc 于 2012-6-21 16:15 编辑 ]
回复

使用道具 举报

17#
发表于 2012-6-21 17:06:32 | 只看该作者
发现了一个问题,或许是有关的……

你的 BPB 表中,sectors per FAT 的值是 9,sectors per cluster 是 4。

我们算算这个FAT结构最大有多大的容量。

9 x 512 = 4608 字节。对于 FAT12 来说,每个 cluster 占据 1.5 个字节,所以,cluster 的总数为

9 x 512 / 1.5 = 3072

如果每个 cluster 只包含 1 个扇区,则这个软盘的最大容量是 1.5M。
如果每个 cluster 包含有 4 个扇区,则这个软盘的最大容量是 6M。

你的扩容软件增大了 sectors per cluster 的值。但你的软件很可能对此不适应。

所以,可以考虑保持软盘的 sectors per cluster 依旧是 1,但增大 sectors per FAT,从 9 增加到 36,那么总容量仍然可以达到 6M。

你自己找找,看看有没有软件可以帮你生成 sectors per cluster = 1, 同时 sectors per FAT = 36 的软件。

如果找不到的话,你只好手动创建这个 FAT 文件系统。
回复

使用道具 举报

18#
发表于 2012-6-21 17:27:41 | 只看该作者
楼主可以找个dos下的文件读写监控软件,看看程序都干了什么。程序未必是调用的低层io,有可能只是调用了文件读写中断中不常用的子功能,虚拟环境不可能重新编写所有的中断内容的,某些不常用的子功能只是简单地一个跳转,跳到原中断地址而已。
纯属猜测,仅供参考。
个人觉得此类问题还得从合盘入手。

[ 本帖最后由 tiansw1 于 2012-6-21 17:30 编辑 ]
回复

使用道具 举报

19#
 楼主| 发表于 2012-6-22 14:04:59 | 只看该作者
原帖由 不点 于 2012-6-21 17:06 发表
发现了一个问题,或许是有关的……

你的 BPB 表中,sectors per FAT 的值是 9,sectors per cluster 是 4。

我们算算这个FAT结构最大有多大的容量。

9 x 512 = 4608 字节。对于 FAT12 来说,每个 clus ...


这是一个重要提示,谢谢不点提示。
我会仔细试验。
回复

使用道具 举报

20#
 楼主| 发表于 2012-6-22 14:07:04 | 只看该作者
原帖由 tiansw1 于 2012-6-21 17:27 发表
楼主可以找个dos下的文件读写监控软件,看看程序都干了什么。程序未必是调用的低层io,有可能只是调用了文件读写中断中不常用的子功能,虚拟环境不可能重新编写所有的中断内容的,某些不常用的子功能只是简单地 ...


谢谢 tiansw1
这个系统让人感到困难就是它启动时没有借助DOS,软盘中也不存在MSDOS/PCDOS系统文件。启动时时封闭进行的。
这就让我运行监控软件带来了困难。
回复

使用道具 举报

21#
发表于 2012-6-27 16:33:12 | 只看该作者
但从楼主的图上来看,启动流程是将3张软盘上的系统解压到T盘,然后应该是再从T盘启动运行软件,T盘看来是内存虚拟盘? 软件能退出列下T盘的内容吗? 或者楼主直接把3张盘的IMG传到115网盘上让大家研究下
回复

使用道具 举报

22#
发表于 2012-6-27 16:51:03 | 只看该作者
觉得系统应该就是DOS,像A:\adxrdisk.dat 这样描述文件不是unix或linux风格,以前的系统除了这两种也就只有DOS系的MSDOS、PCDOS、FreeDOS这些,厂家不会再另外自创一个的

6楼图片上选项5就是进入命令行,能否 dir t:  ?

[ 本帖最后由 zzzzzz 于 2012-6-27 16:56 编辑 ]
回复

使用道具 举报

23#
发表于 2012-6-27 17:32:14 | 只看该作者
我上网搜了搜,这应该是ibm收款机系统,针对专用设备开发的,不好弄。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-4-26 13:59

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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