无忧启动论坛

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

DOS下读写exFAT分区

[复制链接]
跳转到指定楼层
1#
发表于 2012-4-5 17:50:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
USBexFAT.com v1.0b版本。
配合 usbaspi.sys ,在 DOS 下读写u盘的 FAT16,FAT32,exFAT 分区。

HDexFAT.com v1.00版本。
在 DOS 下读写硬盘的 exFAT 分区。
http://yaya20077777.ys168.com/

评分

参与人数 1无忧币 +5 收起 理由
zhczf + 5 赞一个!

查看全部评分

2#
发表于 2012-4-6 09:39:05 | 只看该作者
嘿嘿`````收下了
回复

使用道具 举报

3#
发表于 2012-4-7 11:10:32 | 只看该作者
多谢分享这么好的东西!!!哈哈哈!!《》!
回复

使用道具 举报

4#
发表于 2012-4-7 11:57:05 | 只看该作者
先收藏了,谢谢楼主的分享
回复

使用道具 举报

5#
发表于 2012-5-7 12:04:23 | 只看该作者
v1.0c  修改于2012/5/5
预先计算并设置 exFAT 分区的磁盘空闲簇数,缩短了 DOS 首次探测磁盘空闲字节的时间。
回复

使用道具 举报

6#
发表于 2012-5-7 17:45:52 | 只看该作者
这是从bbs.znpc.net 转载的吧
回复

使用道具 举报

7#
发表于 2012-5-7 19:07:48 | 只看该作者

回复 #7 jianliulin 的帖子

楼主就是原作者。。。。
回复

使用道具 举报

8#
发表于 2012-5-28 14:34:53 | 只看该作者

回复 #1 2011yaya2007777 的帖子

报告一个问题:硬盘分三个区,一个主分区,两个逻辑分区,全部格式化成exfat分区

运行HDexFAT.com后,只分配了前面两个的盘符,分别为Y、Z

重启后,所有分区丢失!!!!!
回复

使用道具 举报

9#
发表于 2012-5-28 15:30:36 | 只看该作者
这个问题比较严重。
那建议527104427 你的那个dos工具先去掉这个。分区丢失是比较严重的。
回复

使用道具 举报

10#
发表于 2012-5-28 16:19:28 | 只看该作者

回复 #10 freesoft00 的帖子

这个还需要进一步证实,望大家能协助
回复

使用道具 举报

11#
 楼主| 发表于 2012-5-29 10:52:52 | 只看该作者
Re:527104427
你的硬盘容量有多大?是否 DOS 识别不了最后分区。
不知 DOS 为何会填充 mbr 。有可能的话把错误修改后的 LBA 0 - LBA 7 以文件上传。
看来需要增加一项判断,禁止写 LBA 0。
在虚拟硬盘测试没有发现类似情况。在真实u盘使用也没有出现这奇怪现象。

[ 本帖最后由 2011yaya2007777 于 2012-5-29 11:06 编辑 ]
回复

使用道具 举报

12#
发表于 2012-5-29 11:03:23 | 只看该作者

回复 #12 2011yaya2007777 的帖子

老大来啦?我在这反映的问题,你看到了吗?
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=209010&page=1#pid2451213

不知道是个例,还是BUG?
回复

使用道具 举报

13#
 楼主| 发表于 2012-5-29 11:13:29 | 只看该作者
在中国DOS联盟论坛上,Roy反映过,我查了程序代码,程序自己没有写 mbr,没有找到原因。
如果是 DOS 通过 HDexFAT 回写的,DOS 传入相对逻辑扇区号,HDexFAT 加分区起始扇区数得出绝对逻辑扇区号,然后回写进硬盘。
如果是 DOS 通过 HDexFAT 回写的,那传入的相对逻辑扇区号=FFFF FFC1,加3F才能等于0。是不是写入大扇区引起的?
看来程序应禁止写大扇区!虽然 HDexFAT 内部可以读写 64 位地址,但 DOS 只能操作 32 位地址,因此使用局限与 32 位。

Roy反映:只跑HDexFAT後 dir c: 顯示,然後就關機﹐但下一次開機又發現被填充了。这跟上面说的好像还不是一回事。

[ 本帖最后由 2011yaya2007777 于 2012-5-29 17:53 编辑 ]
回复

使用道具 举报

14#
发表于 2012-5-29 12:47:03 | 只看该作者

回复 #14 2011yaya2007777 的帖子

问题依旧,等下我传个包上来,给老大测试一下!!
回复

使用道具 举报

15#
发表于 2012-5-29 13:15:08 | 只看该作者
原帖由 2011yaya2007777 于 2012-5-29 11:13 发表
在中国DOS联盟论坛上,Roy反映过,我查了程序代码,程序自己没有写 mbr,没有找到原因。
如果是 DOS 通过 HDexFAT 回写的,DOS 传入相对逻辑扇区号,HDexFAT 加分区起始扇区数得出绝对逻辑扇区号,然后回写进硬 ...

下面是可以重现问题的最小测试包,老大有空看看吧:
http://pan.baidu.com/netdisk/singlepublic?fid=280035_4092988990





用附件里的VPC2007测试,aa.vhd是我创建的3个exfat分区,JexChan.iso是测试用的ISO。

第一次加载hdexfat,只分配了两个盘符,指不指定开始分配的盘符都一样

重启后,所有分区都丢失

[ 本帖最后由 527104427 于 2012-5-29 13:16 编辑 ]
回复

使用道具 举报

16#
 楼主| 发表于 2012-5-29 13:25:48 | 只看该作者
感谢527104427提供测试。待我研究一下
回复

使用道具 举报

17#
发表于 2012-5-29 14:08:38 | 只看该作者
原帖由 2011yaya2007777 于 2012-5-29 11:13 发表
在中国DOS联盟论坛上,Roy反映过,我查了程序代码,程序自己没有写 mbr,没有找到原因。
如果是 DOS 通过 HDexFAT 回写的,DOS 传入相对逻辑扇区号,HDexFAT 加分区起始扇区数得出绝对逻辑扇区号,然后回写进硬 ...

應該是同一回事。
加載HDexFAT後不做任何動作直接重啟LBA 0-7就已經被填充了
回复

使用道具 举报

18#
 楼主| 发表于 2012-5-29 17:43:09 | 只看该作者
问题找到并解决


v1.0d  修改于2012/5/29


对于USBexFAT
修正了根目录无目录时,把无序数据填充到逻辑0扇区的严重缺陷

对于HDexFAT
修正了根目录无目录时,把无序数据填充到逻辑0扇区的严重缺陷
修正了扩展分区探测的问题
修正了分区号计数错误

[ 本帖最后由 2011yaya2007777 于 2012-5-29 18:06 编辑 ]
回复

使用道具 举报

19#
发表于 2012-5-29 18:17:09 | 只看该作者

回复 #20 2011yaya2007777 的帖子

可喜可贺呀,马上下载测试!!
回复

使用道具 举报

20#
发表于 2012-5-29 18:31:48 | 只看该作者

回复 #20 2011yaya2007777 的帖子

分区丢失的问题是解决了,又有一个新的问题:

如果不指定开始分配的驱动器号,最后一个盘符还是没法分配

如果指定开始分配的驱动器号(使用命令:hdexfat.com /DH),三个盘符加载正常,加载完后,返回主菜单,会死机

老大可以用我上传的测试包,加载的批处理在a:\soft\drivers\hdm.bat
回复

使用道具 举报

21#
发表于 2012-5-29 19:01:16 | 只看该作者

回复 #22 527104427 的帖子

哈哈 看来问题解决了一半了。。。

楼主的maxdos工具箱估计又快要更新了
回复

使用道具 举报

22#
发表于 2012-5-29 21:20:29 | 只看该作者
原帖由 2011yaya2007777 于 2012-5-29 17:43 发表
问题找到并解决


v1.0d  修改于2012/5/29


对于USBexFAT
修正了根目录无目录时,把无序数据填充到逻辑0扇区的严重缺陷

对于HDexFAT
修正了根目录无目录时,把无序数据填充到逻辑0扇区的严重缺陷
修 ...

太好了,LBA0-7被寫入的問題總算修正了。
這個EXFAT鏡像用hdexfat會出現空檔案:

4m.part01.rar

399.95 KB, 下载次数: 38, 下载积分: 无忧币 -2

4m.part02.rar

280.35 KB, 下载次数: 54, 下载积分: 无忧币 -2

回复

使用道具 举报

23#
 楼主| 发表于 2012-5-30 12:17:26 | 只看该作者
回复 21# 527104427

使用 debug 的 d 命令,查一下 c9:26 内存,偏移 20h 处安装的块设备数=18h(24),偏移 21h 处可用的驱动器最大字母数=1ah(26),就是说盘符已经分配到 x,最后可用盘符是 z,只能分配 y,z,再分配一个盘符就必死无疑。

你查一下是哪一个程序错误地把安装的块设备数设置到18h。
回复

使用道具 举报

24#
发表于 2012-5-30 13:04:24 | 只看该作者

回复 #24 2011yaya2007777 的帖子

X盘是内存盘,是XMSDSK.EXE虚拟出来的,用作DOS的可写空间


这个问题好解决,我可以指定开始分配的驱动器号,用命令:hdexfat.com /DH,这样就从H盘开始分配了吧?虽然盘符正确分配到H、I、J,但是分配之后就死机了


老大上面说的那些,我还真迷糊了,没有这方面的基础啊!!
回复

使用道具 举报

25#
发表于 2012-5-30 13:13:13 | 只看该作者
原帖由 2011yaya2007777 于 2012-5-30 12:17 发表
回复 21# 527104427

使用 debug 的 d 命令,查一下 c9:26 内存,偏移 20h 处安装的块设备数=18h(24),偏移 21h 处可用的驱动器最大字母数=1ah(26),就是说盘符已经分配到 x,最后可用盘符是 z,只能分配 ...

debug
d
然后该怎么操作?

1.png (19.84 KB, 下载次数: 138)

1.png
回复

使用道具 举报

26#
 楼主| 发表于 2012-5-30 13:18:42 | 只看该作者
回复 23# Roy

exfat文件目录转换为fat32目录,1扇区可存放的目录数不同。一般情况转换为fat32目录,还有空白行,必须填充1个目录补齐,否则 DOS 会认为目录结束,不往下继续查。如果有写入操作的话,还可能插入新目录,产生错误。填充的目录属性是隐藏,正常情况是看不到的,只有设置成显示隐藏目录,才能看到。
回复

使用道具 举报

27#
 楼主| 发表于 2012-5-30 13:19:35 | 只看该作者
debug
d c9:26
回复

使用道具 举报

28#
发表于 2012-5-30 13:30:48 | 只看该作者
原帖由 2011yaya2007777 于 2012-5-30 13:19 发表
debug
d c9:26

然后该怎么操作?

2.png (16.65 KB, 下载次数: 133)

2.png
回复

使用道具 举报

29#
 楼主| 发表于 2012-5-30 13:33:14 | 只看该作者
简单的方法是给内存盘分配一个靠前的盘符。
回复

使用道具 举报

30#
 楼主| 发表于 2012-5-30 13:38:07 | 只看该作者
c9:26 内存偏移 20h,即 c9:46处是18.只是让你观察,说明出错的位置,我试图修改18为05,加载 hdexfat 后还是死机,可能是内存盘的盘符出问题了。解决办法见楼上

[ 本帖最后由 2011yaya2007777 于 2012-5-30 13:39 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-1 12:08

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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