找回密码
 注册
查看: 38131|回复: 8

关于exFAT格式化的问题

[复制链接]
发表于 2021-1-1 21:55:30 | 显示全部楼层 |阅读模式
发现当前版本的DiskGenius格式化exFAT文件系统时,根据卷容量所对应可用的最小簇大小计算地不正确。
首先exFAT和NTFS都是使用四个字节即32位簇项来描述总簇数,在使用同等簇大小下这两个文件系统能支持的卷容量都是一样大的。
也就是说,单个exFAT卷最多可以有2^32个簇,即使使用最小的512B簇最大也能支持到512B×2^32B=2T的分区大小,使用4K簇的话最大则能支持到4096B×2^32B=16T的分区大小。
如图在DiskGenius中将一个16T容量的分区格式化为exFAT时最小却只能选择到16K簇大小,但如果用Windows自带Format命令行格式化为exFAT时最小就可以使用4K簇大小。
截图20201230000812.jpg
截图20201230001218.jpg
不过目前只有exFAT存在这个问题,而NTFS则没有问题可以选择4K簇大小格式化。
截图20201230000858.jpg
簇大小如果太大了存小文件会很浪费空间,希望官方在下一版本能够修复这个Bug。
 楼主| 发表于 2021-1-1 21:57:46 | 显示全部楼层
顺便再提交一个Bug,如图所示对于采用原生4K逻辑扇区(4Kn)的磁盘,不论卷容量有多小在系统里格式化最小也只能用4K簇,而用DiskGenius格式化最小却只能选择到8K簇,这个问题从5.2版本开始就有了,请修复这个Bug。
截图20201230003246.jpg
发表于 2021-1-8 17:34:25 | 显示全部楼层
朱玛 发表于 2021-1-1 21:57
顺便再提交一个Bug,如图所示对于采用原生4K逻辑扇区(4Kn)的磁盘,不论卷容量有多小在系统里格式化最小也只 ...

谢谢!这个问题可以纠正。
发表于 2021-1-8 17:39:42 | 显示全部楼层
本帖最后由 DGen 于 2021-1-8 17:41 编辑

第一个问题,虽然用Windows命令行格式化时可以指定4K的簇大小,但是CHKDSK命令检查分区会报错的。所以为了兼容考虑,软件做了限制。
4096.png
 楼主| 发表于 2021-1-10 17:18:58 | 显示全部楼层
DGen 发表于 2021-1-8 17:39
第一个问题,虽然用Windows命令行格式化时可以指定4K的簇大小,但是CHKDSK命令检查分区会报错的。所以为了 ...

那是因为系统的格式化程序有Bug,就算在系统里用16K簇格式化出来的exFAT分区也一样会Chkdsk报错。
截图20210110163701.jpg
而用DiskGenius同样以16K簇格式化再Chkdsk就一点问题都没有,所以你就没发现完全相同的盘分别用Format和DiskGenius格式化出来的分区元数据也是有差异的吗?
截图20210110163758.jpg
截图20210110163847.jpg
那么在分区格式化上谁家的做的最好岂不是一目了然?这可是自家的招牌一定要抓住机会好好宣传啊。
发表于 2021-1-11 16:57:15 | 显示全部楼层
本帖最后由 DGen 于 2021-1-11 16:58 编辑

1、楼主很细心!format命令格式化大容量的exFAT分区,指定最小的簇大小,确实会出问题。
2、另外一点,无论是用format命令还是DiskGenius格式化,只要最终的总的簇数目大于2的30次方(位图大于128MB),CHKDSK就会报错。这可能是Windows系统的限制,或者BUG。
3、DiskGenius可以考虑支持更小的簇大小,但是这样格式化之后CHKDSK有可能会报错,虽然这不是DiskGenius的问题。
 楼主| 发表于 2021-1-12 03:28:06 | 显示全部楼层
DGen 发表于 2021-1-11 16:57
1、楼主很细心!format命令格式化大容量的exFAT分区,指定最小的簇大小,确实会出问题。
2、另外一点,无 ...

是chkdsk的Bug,我用fsck检查总簇数>2^30的exFAT分区都可以正常进行没有问题。
截图20210112000000.jpg
这个加上吧,反正用fsck.exfat照样能修,毕竟又不是DiskGenius的锅没必要做限制,这锅要背也得让微软去背。
不过提到分区检查,我倒是建议DiskGenius把Linux里更强大的fsck功能也集成进来,这样不光能支持对FAT12/16/32、exFAT、NTFS文件系统的查错与修复,还能对Chkdsk不支持的EXT2/3/4文件系统查错与修复这不一举两得?
发表于 2021-1-14 10:41:50 | 显示全部楼层
朱玛 发表于 2021-1-12 03:28
是chkdsk的Bug,我用fsck检查总簇数>2^30的exFAT分区都可以正常进行没有问题。

这个加上吧,反正用fs ...

簇大小的问题关注后续版本吧。
错误检查与修复功能会考虑,但估计比较有难度。
感谢反馈。
 楼主| 发表于 2021-1-26 22:13:09 | 显示全部楼层
DGen 发表于 2021-1-14 10:41
簇大小的问题关注后续版本吧。
错误检查与修复功能会考虑,但估计比较有难度。
感谢反馈。

已测试今天刚更新的DiskGenius v5.4.1.1178已经可以用大于2^30个簇数目格式化exFAT分区了没有问题。
截图20210126213450.jpg
不过对于扩容exFAT分区大小你们是不是忘记做同步调整了?
截图20210126214340.jpg
另外fsck功能的话在GitHub里有很多现成的开源项目实现,代码移植难度应该不会太高。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|DiskGenius ( 冀ICP备05002509号-2 )

GMT+8, 2024-12-23 01:23 , Processed in 0.092087 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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