■ 甘肅 權建軍
編者按: ExFAT文件系統是一種適合于閃存的文件系統,但有時會造成磁盤文件不能打開的故障。本文講解了一種快速恢復ExFAT文件系統數據的方法。
作為FAT文件系統家族中FAT32的繼任者,ExFAT文件系統允許無縫連接桌面計算機和便攜媒體設備。其DBR及保留扇區位于0-11扇區,由于DBR及其備份很靠近,一旦都遭到損壞,會造成磁盤文件不能打開。
經典的數據恢復方法是手工恢復,需要計算出DBR的BPB參數,再編程計算校驗碼,難度很大。本文提出一種快速的數據恢復方法。

圖1 ExFAT文件系統的結構

圖2 故障現象1

圖3 故障現象2
ExFAT(Extended File Allocation Table File System,擴展文件分配表)是微軟在Windows Embeded 6.0(包括Windows CE 6.0、Windows Mobile)中引入的一種適合于閃存的文件系統。ExFAT是為閃存介質而開發的,如U盤、數碼卡等。現在閃存介質的容量越來越大,FAT文件系統能夠管理的空間有限,而NTFS文件系統是日志型文件系統,需要記錄詳細的讀寫操作,對介質磨損較大,不適合使用在閃存介質上,出于這些考慮,微軟推出了ExFAT文件系統。ExFAT理論上最大支持可達64ZB,系統建議支持的最大分區為512TB。
ExFAT文件系統的結構如圖1所示。
其 中,0-11號扇區為主引導區域,共12個扇區,可分為5個區域:主要扇區、主擴展引導扇區、OEM參數區、保留扇區和校驗扇區。主引導區域的11號扇區記錄的是前0-10號扇區的校驗值,12-23號扇區為主引導區域的備份,12號扇區為0號DBR的備份。
打開磁盤,故障現象如圖2所示,使用WinHex提示如圖3所示。使用R-STUDIO提示如圖4所示。
用WinHex打開磁盤,觀察其0-11扇區,全為0;再觀察 DBR備份 12~23扇區,也全為0。因此,磁盤的DBR及備份都遭到了破壞,必須恢復其DBR及校驗碼。
DBR被破壞后,傳統的數據恢復方法,是復制一個ExFAT文件系統DBR,然后計算其BPB參數。包括隱藏扇區數、扇區總數、FAT起始扇區號、FAT扇區數、根目錄起始扇區、總簇數、首簇起始扇區號與根目錄首簇號、每簇扇區數。但這樣計算量大,容易出錯,更為關鍵的是還要計算11號扇區的CHECKSUM數值。

圖4 故障現象3

圖5 ExFAT格式化
有關經典方法的論述,相關文獻較多,這里不再細說。值得一提的是,這種方法即便BPB參數計算完全正確,也未必能打開磁盤,因為還需要計算11號扇區的CHECKSUM數值,即校驗碼,需要編程才能計算。

圖6 用R-STUDIO打開分配單元合適的磁盤
下面我們嘗試用新的試湊法恢復磁盤文件。
第一步,根據磁盤的總扇區數,建立一個虛擬磁盤,大小應比該磁盤略大,簡單卷大小嚴格等于該磁盤的總字節數,分配單元選默認值,并格式化為ExFAT文件系統,如圖5所示。
這樣,就建立了一個ExFAT文件系統的虛擬磁盤。
第二步,將此虛擬磁盤的0-11扇區復制到待恢復的磁盤的0-11扇區,替換了原磁盤的0-11扇區。
第三步,刷新后,用R-STUDIO打開該磁盤。如果0-11扇區數據正確,可以看到該磁盤的所有文件。
第四步,如果仍打不開磁盤文件,表明0-11扇區數據不正確。刪除該簡單卷,再選擇不同的分配單元大小,依照如圖5中的512、1024、2048、4096、8192、16K、32K、64K 分別進行嘗試。直到用R-STUDIO打開磁盤后,可以看到該磁盤的所有文件。
圖6是用R-STUDIO恢復分配單元合適的磁盤。這些文件夾雙擊即可打開。
經過以上四個步驟,通過試湊磁盤分配單元的大小,就可以打開磁盤,并讀取文件數據了。
本文巧妙利用虛擬磁盤,產生與實際磁盤相匹配的DBR及其校驗碼,避免了繁雜的計算和編程,極大地簡化了ExFAT文件系統的數據恢復,教學及實際使用都取得了很好的效果。