故障存储:36T,LaCie雷孜,MS Exfat文件系统。
故障现象:
此设备就是客户为了某乐队的视频专辑而购买,每天拍的素材全部保存到存储,准备在拍摄完成之后再进入后期制作环节。结果拍完后发现大多数文件全部变成了0字节,无非正常打开。
图1:索尼fx6摄像机的MXF文件变成了0字节
故障分析:
和之前那个案例不同,经过分析这个LaCie雷孜36T存储至少经历了两波“蹂躏”:
1、exfat文件系统出错导致文件全部0字节。
关于exfat之前说过很多次,但是近期使用此文件系统出问题的机率如此频繁,所以我再赘述下。exfat 全称是Extended File Allocation Table File System,扩展FAT文件系统,FAT就是之前FAT32中的“FAT”即文件分配表,这个表研究数据结构的人不算陌生,从字面意思就能看出,exfat并非全新的文件系统。微软开发此文件系统的目的是为了应对FAT32无法管理单个超过4G的文件,也是为了弥补NTFS日志型文件系统在闪存等小型存储设备中的不足(一个是默认的簇大小过小,一个是不断的读写日志对闪存是一种损耗)。
exfat在存储时使用两种方式,对文件进行分类:
1、无碎片文件,即连续存放的,通过在exfat目录项中记录首簇指针和长度来获取文件的链表。减少文件系统额外的IO时间,这个算是针对FAT32的升级。
2、存在碎片的文件,即不连续存放的。因为1是一种理想状态,需要各种条件满足才能达到,但是更多情况下是文件不得不以碎片的形式存在(比如经常删除或者使用空间快要达到上限),这种情况下仍然使用FAT32的FAT表进行文件的表链记录。目录项中只记录首簇指针和文件大小,通过首簇指针进行FAT表跳转,很熟悉的味道,和FAT32一毛一样。
这里不讨论exfat的优劣和传输速度,仅仅一点微软开发exfat初衷是为了解决闪存类的文件系统存储问题,为了弥补NTFS的不足,当然不能说exfat就不能用在非闪存上而是其适用最优对象是闪存类小型存储身设备(如SD卡),
很显然LaCie雷孜36T存储不在这个最优对象之内。
另外技术分析当文件长度变为0后,首簇指针也清0,通过文件头获取首簇指针跳转FAT表发现其FAT表链也清0了。也就是目录项->FAT表所有环节通通出错,目前尚不清楚这是个例还是仅在大型存储上存在,因为目前以我的经验至少没有发现在闪存类存在此问题,所以不好下结论,只能以“exfat的文件系统结构不适合管理大型存储“来做总结,在这里我们强烈建议如果您是视频从业者,在存储文件要用到微软文件系统时强烈建议”非闪存类的存储设备慎用exfat文件系统“避免因此导致数据出问题。
通过分析现存的正常的MXF文件可以得出结论,原始文件本身就存在片段化,有很多碎片存在。片段化的文件依靠的目录项中的首簇指针+FAT表中的表链,两者如果全部出问题,那么表链打破,此时通用类恢复软件是无能为力的(因为目录项中文件长度也变成0字节了,所以通过文件系统去恢复是没有任何希望的)。
图3:正常的MXF文件碎片数量不少
2、意外使用了chkdsk进行了修复,先来简单介绍下微软的chkdsk命令:
“Chkdsk.exe 是 CHKDSK 程序的命令行界面,该程序用于验证文件系统的逻辑完整性。如果 CHKDSK 在文件系统数据中发现存在逻辑不一致性,CHKDSK 将执行可修复该文件系统数据的操作(前提是这些数据未处于只读模式)。”
可以看到chkdsk是具备文件系统级别修复能力的,而且从实际使用也可以感觉出来,其会对文件进行分割、移动,以达到最优化的目的(这也是为什么CHKDSK时会看到硬盘灯狂闪、速度超慢的原因)。但是一定要注意此命令使用是有一堆先觉条件的,因为数据在实际的存储中是灵活多变的,所以很难保证chkdsk后能达到原来的状态。实际使用中发现chkdsk对ntfs文件系统比较友好,对于fat类的处理完后肯定会分割文件会生成一大堆chk文件,可以说FAT类文件系统越修复越糟糕。所以在使用chkdsk前,无论是那种文件系统,建议你先镜像原始盘,防止数据丢失!
图3:chkdsk对FAT类文件系统极不友好生成一大堆分割后的CHK文件
故障处理:
由于变成0的文件为索尼FX6摄像机生成的MXF文件,所以直接使用CHS零壹视频恢复程序专业版进行扫描,由于容量比较大,所以扫描时间会略长。
STEP1:选择36T存储,点击右键选择“扫描“,扫描大类->高清视频,扫描小类->索尼_MXF,点击确定开始扫描。正常情况下高级设置全部采用默认即可!
STEP2:等待扫描完成,由于存储空间较大,这个就需要较长的时间,扫描完成后需要等待重组完成才能查看数据。
STEP3:查看数据,经过扫描发现了大约1T多的有效数据,经过客户对比正是变为0字节的素材,至此数据恢复工作完成。
这就是LaCie雷孜36T存储设备索尼FX6 MXF文件变0字节的恢复方法,大家在遇到此类问题时,可以和我们联系!