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

DOS下读写exFAT分区

[复制链接]
发表于 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 赞一个!

查看全部评分

发表于 2012-4-7 11:10:32 | 显示全部楼层
多谢分享这么好的东西!!!哈哈哈!!《》!
回复

使用道具 举报

发表于 2012-4-7 11:57:05 | 显示全部楼层
先收藏了,谢谢楼主的分享
回复

使用道具 举报

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

使用道具 举报

发表于 2012-5-7 17:45:52 | 显示全部楼层
这是从bbs.znpc.net 转载的吧
回复

使用道具 举报

发表于 2012-5-7 19:07:48 | 显示全部楼层

回复 #7 jianliulin 的帖子

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

使用道具 举报

发表于 2012-5-28 15:30:36 | 显示全部楼层
这个问题比较严重。
那建议527104427 你的那个dos工具先去掉这个。分区丢失是比较严重的。
回复

使用道具 举报

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

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

使用道具 举报

 楼主| 发表于 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 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2012-5-29 13:25:48 | 显示全部楼层
感谢527104427提供测试。待我研究一下
回复

使用道具 举报

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

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

使用道具 举报

 楼主| 发表于 2012-5-29 17:43:09 | 显示全部楼层
问题找到并解决


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


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

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

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

使用道具 举报

发表于 2012-5-29 19:01:16 | 显示全部楼层

回复 #22 527104427 的帖子

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

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

使用道具 举报

发表于 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會出現空檔案:
exfat-nullrecord.PNG

4m.part01.rar

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

4m.part02.rar

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

回复

使用道具 举报

 楼主| 发表于 2012-5-30 12:17:26 | 显示全部楼层
回复 21# 527104427

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

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

使用道具 举报

 楼主| 发表于 2012-5-30 13:18:42 | 显示全部楼层
回复 23# Roy

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

使用道具 举报

 楼主| 发表于 2012-5-30 13:19:35 | 显示全部楼层
debug
d c9:26
回复

使用道具 举报

 楼主| 发表于 2012-5-30 13:33:14 | 显示全部楼层
简单的方法是给内存盘分配一个靠前的盘符。
回复

使用道具 举报

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

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

使用道具 举报

 楼主| 发表于 2012-5-30 13:46:58 | 显示全部楼层
将内存盘盘符分配为O的JexChan.iso映像发过来,最好将debug换为debug32

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

使用道具 举报

 楼主| 发表于 2012-5-30 13:52:23 | 显示全部楼层
好的.....................
回复

使用道具 举报

 楼主| 发表于 2012-5-30 14:33:50 | 显示全部楼层
从命令行输入 hdexfat 一切正常。从"exfat....驱动"菜单启动死机。
从"ifsdrv....驱动"菜单,选()[+]exfat ,也可正常加载。

你需要查一下这几者有何不同,找到问题所在。

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

使用道具 举报

发表于 2012-5-30 15:01:13 | 显示全部楼层
原帖由 2011yaya2007777 于 2012-5-30 13:18 发表
回复 23# Roy

exfat文件目录转换为fat32目录,1扇区可存放的目录数不同。一般情况转换为fat32目录,还有空白行,必须填充1个目录补齐,否则 DOS 会认为目录结束,不往下继续查。如果有写入操作的话,还可能插 ...

問題是空白的不只有一個,但只給第一個 +H:
hdexfat-xattrib.PNG
回复

使用道具 举报

 楼主| 发表于 2012-5-30 15:10:37 | 显示全部楼层
我这里不死机。
r:
dir
debug
均正常
回复

使用道具 举报

 楼主| 发表于 2012-5-30 15:14:39 | 显示全部楼层
插入的目录是一个长文件名目录,前面每项(20h字节)属性是 0f,最好一项属性是 02.
回复

使用道具 举报

 楼主| 发表于 2012-5-30 15:29:30 | 显示全部楼层
从"ifsdrv....驱动"菜单,选( )[+]exfat ,也可正常加载。
(*)[ ]exfat ,则死机。
这2者有何区别?
回复

使用道具 举报

发表于 2012-5-30 16:16:14 | 显示全部楼层
原帖由 2011yaya2007777 于 2012-5-30 15:14 发表
插入的目录是一个长文件名目录,前面每项(20h字节)属性是 0f,最好一项属性是 02.

加載doslfn也無法把它消除:
doslfn-hdexfat.PNG
回复

使用道具 举报

 楼主| 发表于 2012-5-30 17:00:57 | 显示全部楼层
回复 47#

是你的根目录有一个空目录
0002AFE0   85 02 DB 43 20 00 00 00  00 00 00 00 16 43 3B 3F
0002AFF0   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
0002B000   C0 03 00 05 00 00 00 00  44 E9 03 00 00 00 00 00
0002B010   00 00 00 00 80 01 00 00  44 E9 03 00 00 00 00 00
0002B020   C1 00 67 00 72 00 6C 00  64 00 72 00 00 00 00 00 ?g.r.l.d.r.....
0002B030   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
0002B040   85 02 4E 07 00 00 00 00  00 00 00 00 00 00 00 00
0002B050   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
0002B060   C0 01 00 00 00 00 00 00  00 00 00 00 00 00 00 00
0002B070   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
0002B080   C1 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
0002B090   00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00

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

使用道具 举报

 楼主| 发表于 2012-5-30 17:22:28 | 显示全部楼层
使用MS的HEMEM.SYS,可以调整内部参数试一试
回复

使用道具 举报

 楼主| 发表于 2012-5-30 19:15:19 | 显示全部楼层
看来是扩展内存使用中产生了冲突。总算吧问题解决了!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-9-12 10:02

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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