■ 甘肅 權(quán)建軍
編者按: ExFAT文件系統(tǒng)是一種適合于閃存的文件系統(tǒng),但有時(shí)會(huì)造成磁盤文件不能打開的故障。本文講解了一種快速恢復(fù)ExFAT文件系統(tǒng)數(shù)據(jù)的方法。
作為FAT文件系統(tǒng)家族中FAT32的繼任者,ExFAT文件系統(tǒng)允許無縫連接桌面計(jì)算機(jī)和便攜媒體設(shè)備。其DBR及保留扇區(qū)位于0-11扇區(qū),由于DBR及其備份很靠近,一旦都遭到損壞,會(huì)造成磁盤文件不能打開。
經(jīng)典的數(shù)據(jù)恢復(fù)方法是手工恢復(fù),需要計(jì)算出DBR的BPB參數(shù),再編程計(jì)算校驗(yàn)碼,難度很大。本文提出一種快速的數(shù)據(jù)恢復(fù)方法。
圖1 ExFAT文件系統(tǒng)的結(jié)構(gòu)
圖2 故障現(xiàn)象1
圖3 故障現(xiàn)象2
ExFAT(Extended File Allocation Table File System,擴(kuò)展文件分配表)是微軟在Windows Embeded 6.0(包括Windows CE 6.0、Windows Mobile)中引入的一種適合于閃存的文件系統(tǒng)。ExFAT是為閃存介質(zhì)而開發(fā)的,如U盤、數(shù)碼卡等?,F(xiàn)在閃存介質(zhì)的容量越來越大,F(xiàn)AT文件系統(tǒng)能夠管理的空間有限,而NTFS文件系統(tǒng)是日志型文件系統(tǒng),需要記錄詳細(xì)的讀寫操作,對(duì)介質(zhì)磨損較大,不適合使用在閃存介質(zhì)上,出于這些考慮,微軟推出了ExFAT文件系統(tǒng)。ExFAT理論上最大支持可達(dá)64ZB,系統(tǒng)建議支持的最大分區(qū)為512TB。
ExFAT文件系統(tǒng)的結(jié)構(gòu)如圖1所示。
其 中,0-11號(hào)扇區(qū)為主引導(dǎo)區(qū)域,共12個(gè)扇區(qū),可分為5個(gè)區(qū)域:主要扇區(qū)、主擴(kuò)展引導(dǎo)扇區(qū)、OEM參數(shù)區(qū)、保留扇區(qū)和校驗(yàn)扇區(qū)。主引導(dǎo)區(qū)域的11號(hào)扇區(qū)記錄的是前0-10號(hào)扇區(qū)的校驗(yàn)值,12-23號(hào)扇區(qū)為主引導(dǎo)區(qū)域的備份,12號(hào)扇區(qū)為0號(hào)DBR的備份。
打開磁盤,故障現(xiàn)象如圖2所示,使用WinHex提示如圖3所示。使用R-STUDIO提示如圖4所示。
用WinHex打開磁盤,觀察其0-11扇區(qū),全為0;再觀察 DBR備份 12~23扇區(qū),也全為0。因此,磁盤的DBR及備份都遭到了破壞,必須恢復(fù)其DBR及校驗(yàn)碼。
DBR被破壞后,傳統(tǒng)的數(shù)據(jù)恢復(fù)方法,是復(fù)制一個(gè)ExFAT文件系統(tǒng)DBR,然后計(jì)算其BPB參數(shù)。包括隱藏扇區(qū)數(shù)、扇區(qū)總數(shù)、FAT起始扇區(qū)號(hào)、FAT扇區(qū)數(shù)、根目錄起始扇區(qū)、總簇?cái)?shù)、首簇起始扇區(qū)號(hào)與根目錄首簇號(hào)、每簇扇區(qū)數(shù)。但這樣計(jì)算量大,容易出錯(cuò),更為關(guān)鍵的是還要計(jì)算11號(hào)扇區(qū)的CHECKSUM數(shù)值。
圖4 故障現(xiàn)象3
圖5 ExFAT格式化
有關(guān)經(jīng)典方法的論述,相關(guān)文獻(xiàn)較多,這里不再細(xì)說。值得一提的是,這種方法即便BPB參數(shù)計(jì)算完全正確,也未必能打開磁盤,因?yàn)檫€需要計(jì)算11號(hào)扇區(qū)的CHECKSUM數(shù)值,即校驗(yàn)碼,需要編程才能計(jì)算。
圖6 用R-STUDIO打開分配單元合適的磁盤
下面我們嘗試用新的試湊法恢復(fù)磁盤文件。
第一步,根據(jù)磁盤的總扇區(qū)數(shù),建立一個(gè)虛擬磁盤,大小應(yīng)比該磁盤略大,簡單卷大小嚴(yán)格等于該磁盤的總字節(jié)數(shù),分配單元選默認(rèn)值,并格式化為ExFAT文件系統(tǒng),如圖5所示。
這樣,就建立了一個(gè)ExFAT文件系統(tǒng)的虛擬磁盤。
第二步,將此虛擬磁盤的0-11扇區(qū)復(fù)制到待恢復(fù)的磁盤的0-11扇區(qū),替換了原磁盤的0-11扇區(qū)。
第三步,刷新后,用R-STUDIO打開該磁盤。如果0-11扇區(qū)數(shù)據(jù)正確,可以看到該磁盤的所有文件。
第四步,如果仍打不開磁盤文件,表明0-11扇區(qū)數(shù)據(jù)不正確。刪除該簡單卷,再選擇不同的分配單元大小,依照如圖5中的512、1024、2048、4096、8192、16K、32K、64K 分別進(jìn)行嘗試。直到用R-STUDIO打開磁盤后,可以看到該磁盤的所有文件。
圖6是用R-STUDIO恢復(fù)分配單元合適的磁盤。這些文件夾雙擊即可打開。
經(jīng)過以上四個(gè)步驟,通過試湊磁盤分配單元的大小,就可以打開磁盤,并讀取文件數(shù)據(jù)了。
本文巧妙利用虛擬磁盤,產(chǎn)生與實(shí)際磁盤相匹配的DBR及其校驗(yàn)碼,避免了繁雜的計(jì)算和編程,極大地簡化了ExFAT文件系統(tǒng)的數(shù)據(jù)恢復(fù),教學(xué)及實(shí)際使用都取得了很好的效果。