朱玛12345678 发表于 2018-12-29 10:44:12

【全网首发】详解如何查看在Windows中受支持的所有文件系统的版本号教程


注:此文章的内容均为个人原创纯手打,总结的所有方案亲测均顺利通过。如需转贴请注明出处,谢谢大家的支持!

前言
以前曾有人问我一个问题:为什么有些情况下在高版本的系统中格式化的分区放到低版本的系统中就不能被识别,而反过来做则没有问题?
我对这个问题的回答就是:显然是版本不一致所导致的,其中一个版本高一个版本低,高版本的格式自然不兼容低版本的系统,这和很多软件用高版本保存的文件在低版本中就打不开的道理是一样的。
至于刚才所提到的版本具体要怎样才能知道,这就是我要撰写这篇文章的目的了。
由于文章中所讲解的操作方法较为专业,因此建议先了解一定基础知识后再去操作。

目录
1、ReFS
2、NTFS
3、UDF
4、exFAT
5、FAT32
6、FAT16
7、FAT12

准备工具
Windows操作系统、CMD命令提示符、WinHex十六进制编辑器。

以下进入正文:

——分割线——

ReFS

作为一个新晋的64位磁盘文件系统,它提供了更为安全先进的自动修复数据特性以及海量数据存储,但其兼容性一直以来都是一个亟需解决的问题,在很多时候都需要知道它的版本号来确定当前系统是否兼容。
ReFS所有版本在Windows中受支持的情况如图所示:

其中不支持代表在系统中无法识别和读写,默认代表在系统中通过格式化产生的版本,支持代表在系统中能够识别和读写。

查看版本号
方案一:
以管理员身份运行CMD,在命令行中输入运行一条fsutil命令可用于查看ReFS版本号。
其命令格式为:“fsutil fsinfo refsinfo x:”(不含引号),其中的“X”改为要查看的ReFS分区盘符。

请注意此命令目前仅在Windows 10与同版本Server系统中才受支持,且该ReFS卷必须处于能够被系统所读取的正常状态下才可用。

方案二:
对于使用Win10以下系统或在资源管理器中无法正常读取该卷时,可通过使用WinHex等十六进制编辑器查看逻辑扇区数据得到其版本号信息。
目前在DBR扇区中可用于快速判断是否为ReFS文件系统的方法为:其0x03H~0x06H偏移处的OEM代号为 52 65 46 53 对应明文ANSI ASCII字符 ReFS ,对于其0x00H~0x02H偏移处由于没有跳转指令因此不能用于判断。
其中ReFS版本号总是在其起始扇区(DBR)的0x28H~0x29H偏移处,版本号的字长为两个字节。如下图十六进制表中的紫色标记处数据为 03 04 ,即为3.4版本。


——分割线——

NTFS

作为一个主流的32位磁盘文件系统,它提供了更多的扩展属性和可靠的利用率,对于现在大部分在使用的设备来说通常都是3.1最新版本,但是在一些运行老旧系统的设备中仍需注意它的版本号以确认其兼容性。
NTFS所有版本在Windows中受支持的情况如图所示:

其中不支持代表在系统中无法识别和读写,默认代表在系统中通过格式化产生的版本,支持代表在系统中能够识别和读写。

查看版本号
方案一:
以管理员身份运行CMD,在命令行中输入运行一条fsutil命令可用于查看NTFS版本号。
其命令格式为:“fsutil fsinfo ntfsinfo x:”(不含引号),其中的“X”改为要查看的NTFS分区盘符。

请注意此命令需要在Windows XP和同版本Server及更高版本的系统中才受支持,且该NTFS卷必须处于能够被系统所读取的正常状态下才可用。

方案二:
补充:因为NTFS文件系统比较特殊需要通过查找分析位置并不固定元文件数据的方式来判断版本号,所以相对于其他文件系统可以通过直接查看启动扇区(DBR)判断版本号来说步骤较为复杂。
对于使用XP以下系统或在资源管理器中无法正常读取该卷时,可通过使用WinHex等十六进制编辑器查看逻辑扇区数据得到其版本号信息。
目前在DBR扇区中可用于快速判断是否为NTFS文件系统的方法为:其0x00~0x02偏移处的跳转指令为 EB 52 90 ,其0x03H~0x06H偏移处的OEM代号为 4E 54 46 53 对应明文ANSI ASCII字符 NTFS 。
在这里要注意了,NTFS文件系统的版本号并不存在于DBR扇区中,而是在其$MFT里面的$Volume元文件中(或在$MFTMirr里也可以看到),且在扇区中位置并不固定。
这时可以通过WinHex选择双击打开要查看的NTFS分区找到$Volume单击后确定扇区位置,或尝试通过搜索十六进制数“46494C45”找元文件记录头确定其扇区位置。
当搜到扇区后可以通过在右侧ANSI ASCII字符表中看到该扇区头部显示为 FILE 字符且在中间位置也有 V o l u m e 字符和卷标名时即可判断为包含了卷属性的扇区位置,已知目前在Win10系统中格式化的NTFS分区有一处卷属性的位置为:总是从DBR扇区向下再跳转22个扇区(相对扇区)即可找到。
如下图所示该NTFS分区的DBR起始扇区号为8,那么这个卷属性的位置就在8+22=30扇区(绝对扇区)中,跳转到30扇区确认找到其位置后,接下来也要注意NTFS版本号在卷属性扇区中的偏移位置也是不固定的。

NTFS版本号在扇区中的偏移位置是由它的卷标字节长度决定的,其范围是:起始偏移位置0x138H~0x139H到终止偏移位置0x178H~0x179H(相对偏移)之间,规律为:卷标最少0个字符从起始位置开始到最多32个字符在终止位置结束,其中每增加4个字符其位置就向后偏移8个字节。
如卷标无字符开始为0x138H~0x139H偏移处,卷标有1-4个字符为0x140H~0x141H偏移处,卷标有5-8个字符为0x148H~0x149H偏移处,以此类推直到卷标有29-32个字符为0x178H~0x179H偏移处达到上限。
如上图所示该NTFS分区的卷标显示为“NTFSTest”总共是8个字符,根据规则需要从起始位置开始向后偏移16个字节。十进制16D换算十六进制为10H,那么其版本号的位置就在0x138H+0x10H~0x139H+0x10H=0x148H~0x149H偏移处,版本号的字长为两个字节。如上图十六进制表中的紫色标记处数据为 03 01 ,即为3.1版本。

——分割线——

UDF

作为一个通用的64位光盘文件系统,它支持超大单文件存储在跨平台中有着很大优势,其硬盘也可以通过Format命令格式化为UDF文件系统,在所有发行版本号中则需要留意对各版本系统的兼容性。
UDF所有版本在Windows中受支持的情况如图所示:

其中不支持代表在系统中无法识别和读写,只读代表在系统中只能读取不能写入,默认代表在系统中通过格式化产生的版本,支持代表在系统中能够识别和读写。
另外UDF文件系统还支持选择指定任意一个版本号进行格式化,如不指定则默认以2.01版本进行格式化。

查看版本号
方案一:
以管理员身份运行CMD,在命令行中输入运行一条chkdsk命令可用于查看UDF版本号。
其命令格式为:“chkdsk x:”(不含引号),其中的“X”改为要查看的UDF分区盘符。
另外该命令为仅检查卷,在用于查看版本号时不需要指定“/F”修复卷参数。

请注意此命令需要在Windows Vista和同版本Server及更高版本的系统中才受支持,且该UDF卷的元文件数据必须能够被系统所识别才可用。

方案二:
对于使用Vista以下系统或在磁盘检查中无法正常识别该卷信息时,可通过使用WinHex等十六进制编辑器查看逻辑扇区数据得到其版本号信息。
目前可用于快速判断是否为UDF文件系统的方法为:由于UDF文件系统没有DBR启动扇区,因此无法通过常规的方法查看第一扇区数据来判断文件系统类型,但可以通过找到元文件(或备份)扇区位置后查看其数据来判断。
已知目前所有版本的UDF分区有一处元文件的位置为:总是从起始扇区向下再跳转96个扇区(相对扇区)即可找到,如起始扇区号为8,那么这个元文件的位置就在8+96=104扇区(绝对扇区)中,其0x19H~0x1BH和0x52H~0x54H偏移处数据都为 55 44 46 对应明文ANSI ASCII字符 UDF 。
而UDF版本号则总是在其起始扇区向下再跳转128个扇区位置处,如下图所示该UDF分区的起始扇区号为8,那么其版本号的位置就在8+128=136扇区(绝对扇区)中。
其中UDF1.02至2.01的版本号总是在0x81H~0x82H和0x83H~0x84H偏移处,UDF2.50和2.60的版本号总是在0x89H~0x8AH和0x8BH~0x8CH偏移处,版本号的字长为四个字节(两个相同字节×2)。如下图十六进制表中的蓝色和紫色标记处数据为 02 01 02 01 ,即为2.01版本。


——分割线——

关于FAT系列文件系统的版本说明:
由于FAT系列文件系统实际都只有一个版本号即v1.0,因此它在各版本的系统中都拥有着很好的兼容性。
对于FAT32/16/12文件系统在扇区中所显示的版本属于OEM代号而非传统意义上的版本号,它指的是该卷在哪个版本的系统中格式化创建的。
其中已知Windows 95为MSWIN4.0,Windows 98为MSWIN4.1,Windows 2000及更高版本均为MSDOS5.0,不同OEM代号完全不会影响兼容性以及在其他系统中的正常使用。
对于exFAT(FAT64)文件系统在受支持的各Windows版本中通过格式化创建的OEM代号均为EXFAT。

微软操作系统对FAT系列文件系统的兼容情况:
FAT12支持所有系统
FAT16支持DOS3.0及之后的所有系统
FAT32支持Windows 95 OSR2及之后的所有系统
exFAT支持Windows Vista SP1及之后的所有系统
补充:Windows NT的5.0之前版本不支持FAT32。
Windows XP默认不支持exFAT,但可以通过打补丁的方式获得支持。

——分割线——

exFAT

查看版本号方案:
在系统命令行中没有可用于查看exFAT版本号的命令,但可通过使用WinHex等十六进制编辑器查看逻辑扇区数据得到其版本号信息。
目前在DBR扇区中可用于快速判断是否为exFAT文件系统的方法为:其0x00H~0x02H偏移处的跳转指令为 EB 76 90 ,其0x03H~0x07H偏移处的OEM代号为 45 58 46 41 54 对应明文ANSI ASCII字符 EXFAT 。
其中exFAT版本号总是在其起始扇区(DBR)的0x68H~0x69H偏移处且该值固定为 00 01 ,版本号的字长为两个字节。如下图十六进制表中的紫色标记处数据为 00 01 ,即为1.0版本。


——分割线——

FAT32

查看版本号方案:
在系统命令行中没有可用于查看FAT32版本号的命令,但可通过使用WinHex等十六进制编辑器查看逻辑扇区数据得到其版本号信息。
目前在DBR扇区中可用于快速判断是否为FAT32文件系统的方法为:其0x00H~0x02H偏移处的跳转指令为 EB 58 90 ,其0x52H~0x56H偏移处的BPB参数为 46 41 54 33 32 对应明文ANSI ASCII字符 FAT32 。
其中FAT32版本号总是在其起始扇区(DBR)的0x03H~0x0AH偏移处,OEM版本代号的字长为八个字节。如下图十六进制表中的紫色标记处数据为 4D 53 44 4F 53 35 2E 30 ,即为MSDOS5.0版本。


——分割线——

FAT16

查看版本号方案:
在系统命令行中没有可用于查看FAT16版本号的命令,但可通过使用WinHex等十六进制编辑器查看逻辑扇区数据得到其版本号信息。
目前在DBR扇区中可用于快速判断是否为FAT16文件系统的方法为:其0x00H~0x02H偏移处的跳转指令为 EB 3C 90 ,其0x36H~0x3AH偏移处的BPB参数为 46 41 54 31 36 对应明文ANSI ASCII字符 FAT16 。
其中FAT16版本号总是在其起始扇区(DBR)的0x03H~0x0AH偏移处,OEM版本代号的字长为八个字节。如下图十六进制表中的紫色标记处数据为 4D 53 44 4F 53 35 2E 30 ,即为MSDOS5.0版本。


——分割线——

FAT12

查看版本号方案:
在系统命令行中没有可用于查看FAT12版本号的命令,但可通过使用WinHex等十六进制编辑器查看逻辑扇区数据得到其版本号信息。
目前在DBR扇区中可用于快速判断是否为FAT12文件系统的方法为:其0x00H~0x02H偏移处的跳转指令为 EB 3C 90 ,其0x36H~0x3AH偏移处的BPB参数为 46 41 54 31 32 对应明文ANSI ASCII字符 FAT12 。
其中FAT12版本号总是在其起始扇区(DBR)的0x03H~0x0AH偏移处,OEM版本代号的字长为八个字节。如下图十六进制表中的紫色标记处数据为 4D 53 44 4F 53 35 2E 30 ,即为MSDOS5.0版本。


——分割线——

后记
本文通过学习了解如何查看以上文件系统的版本号以判断在各版本系统中的通用性与兼容性等问题,对于每种文件系统都采用了较为详细的图文说明和比较专业的解析方案突出了教程的专业性。
本文在一定程度上对学习数据恢复技术的积极性起到了推进作用,激励读者在研究与探索数据存储的道路上向前迈出新的一步。
作者:朱玛
2018年12月29日

全篇完

朱玛12345678 发表于 2018-12-29 10:44:46

作者码字不易,还请点赞支持!{:1_189:}
另外版主可以给个加精不?{:1_186:}

朱玛12345678 发表于 2018-12-31 13:22:15

eastmz 发表于 2018-12-30 19:46
UDF 有2.60版本了?

OSTA光学存储技术协会早在2005年就发行了UDF2.60版本,该版本加入了对“虚拟可重写分区”的支持。

另外顺便说一下关于Windows支持UDF2.60版本的奇葩问题:
以前有人说过NT6及以上系统都能支持v2.60的读写,但这个最新版本的UDF文件系统在Windows中的表现却很奇怪:

如图Format命令参数并没有写明有2.60版本,但我测试在指定2.60版本时却可以完成格式化,运行磁盘检查也能识别到UDF2.60,但完成格式化后在资源管理器中打开却提示卷损坏无法使用,手动chkdsk指定参数尝试修复卷也没作用一样打不开。


也就是说虽然可以完整地创建卷,但是在系统中不受支持并不能用,此问题像是属于BUG类。
如图试了WIN10和WIN7都是一样的情况,所以我当时在写那个兼容性表格的时候只能将其归为不支持了。


QQ:1715263712 发表于 2018-12-29 10:51:30

前排支持,感谢楼主分享宝贵经验!

zlq_hysy 发表于 2018-12-29 11:07:23

好资料。。。。研究的太深了

2010sya 发表于 2018-12-29 11:09:10

真正的技术贴,辛苦了!!!!!!!!!!!!!

新空气 发表于 2018-12-29 11:40:20

书到用时方恨少

xq8751 发表于 2018-12-29 11:43:15

感谢楼主分享宝贵资料,辛苦了!!!

faly 发表于 2018-12-29 12:11:35

好贴。。。。   

2012andyle113 发表于 2018-12-29 13:20:09

学习下,研究这些东西还码字这么多不容易

youhe 发表于 2018-12-29 13:50:18

学习一下
页: [1] 2 3
查看完整版本: 【全网首发】详解如何查看在Windows中受支持的所有文件系统的版本号教程