當(dāng)前位置:首頁 > 公眾號精選 > strongerHuang
[導(dǎo)讀]關(guān)注星標(biāo)公眾號,不錯過精彩內(nèi)容作者|?魚鷹Osprey轉(zhuǎn)自?|?魚鷹談單片機FAT文件系統(tǒng)是什么,當(dāng)你格式化U盤之后U盤發(fā)生了什么,為什么刪除的文件還可以再恢復(fù)?買的U盤明明寫著16G,實際卻只有15G,這里隱藏了什么事實?FAT文件系統(tǒng)隨著發(fā)展,經(jīng)歷了多個版本,從FAT12到F...


作者 | 魚鷹Osprey


轉(zhuǎn)自 | 魚鷹談單片機



FAT 文件系統(tǒng)是什么,當(dāng)你格式化 U 盤之后 U 盤發(fā)生了什么,為什么刪除的文件還可以再恢復(fù)?買的 U 盤明明寫著 16 G,實際卻只有15 G,這里隱藏了什么事實?
FAT 文件系統(tǒng)隨著發(fā)展,經(jīng)歷了多個版本,從 FAT12 到 FAT16 再到 FAT32,exFAT,每一個版本的迭代都是容量的巨大提升……

文件系統(tǒng)整體結(jié)構(gòu)

我們看看當(dāng)你的 U 盤(16 G,作者親自試驗并圖解)格式化FAT32 格式后,U盤發(fā)生了什么:這里將 U盤分成了三個分區(qū),類似你將電腦的硬盤分成C盤、D盤、E盤,這里的新加卷分區(qū)2、分區(qū)3 就是目前 U盤上建立的三個分區(qū),但事實上,我們一般不會將 U 盤分成三個分區(qū),一個就夠用了,只是作者想告訴你,這在 U 盤也可以做到。

MBR

在 FAT 文件系統(tǒng)中, 0 扇區(qū)必定是 MBR,這個扇區(qū)包含了磁盤(U 盤)很多信息,比如整個 U 盤的大?。ㄈ萘浚?,即扇區(qū)總數(shù),各個分區(qū)的起始扇區(qū)、分區(qū)大小,引導(dǎo)代碼等。
前面 446 個字節(jié)和主引導(dǎo)代碼有關(guān),因為在單片機系統(tǒng)中一般不會使用這種引導(dǎo)方式引導(dǎo)操作系統(tǒng),所以按下不表。我們主要關(guān)注后面的分區(qū)信息和一些標(biāo)志:分區(qū)表項具體含義可看該圖:這里有一個標(biāo)志,即扇區(qū)最后的兩個字節(jié),一般是 55 AA(0xAA55),如果說你的扇區(qū)里面沒有這個標(biāo)志,那么系統(tǒng)就不認為這是一個 FAT 文件系統(tǒng),更不用說進行接下來的其他驗證操作了。我們從上圖可以看到,一個 MBR 可以記錄四個分區(qū)信息,但是你會發(fā)現(xiàn)你的 U盤可以分成超過四個分區(qū),那么這又是怎么回事?原因在于,可以使用邏輯分區(qū)。即可設(shè)置三個主分區(qū),另一個分區(qū)設(shè)置為邏輯分區(qū),這個邏輯分區(qū)里面可以分成很多很多分區(qū),這就是它為什么能創(chuàng)建超過四個分區(qū)的原因。當(dāng)然,我們目前也沒必要深入了解邏輯分區(qū)是怎么一回事,先把基本分區(qū)搞定再說。

MBR

說完 MBR,我們再說一個和 MBR 很像的一個扇區(qū),DBR。從上圖我們可以看到,每一個分區(qū)的第一個扇區(qū)必定是 DBR,這是做什么用的?我們知道 MBR 記錄的分區(qū)信息十分有限,只有分區(qū)的開始扇區(qū)、分區(qū)的大小、分區(qū)類型、引導(dǎo)標(biāo)志(表示該分區(qū)是否可被引導(dǎo),通俗的話說,就是這個分區(qū)是否存在操作系統(tǒng))等有限信息,我們不知道這個分區(qū)叫什么名字,文件系統(tǒng)的版本號是多少等。所以我們需要一個扇區(qū)保存這些信息。這就是 DBR的作用。如果說MBR保存的是整個磁盤的基本信息,那么 DBR 保存的就是當(dāng)前分區(qū)的基本信息。我們可以看到 DBR 的扇區(qū)結(jié)尾也是一樣的結(jié)束標(biāo)志,所以它們是比較相似的,在有些資料中,如果不區(qū)分它們的話,很容易讓人迷惑。

隱藏扇區(qū)

細看這張圖,你會發(fā)現(xiàn)其中存在隱藏扇區(qū)。隱藏扇區(qū)指的是扇區(qū)0到DBR扇區(qū)之間的空間。換句話說,從整個磁盤開始到分區(qū)部分的扇區(qū)稱之為隱藏扇區(qū)(每一個分區(qū)都有自己的隱藏扇區(qū)),因為這些扇區(qū)對于分區(qū)而言是不可見的,也不可以被分區(qū)內(nèi)的文件系統(tǒng)所管理。這部分扇區(qū)數(shù)保存在 DBR 中。當(dāng)然,除了這部分扇區(qū)不被當(dāng)前分區(qū)管理外,其他分區(qū)也不可以被當(dāng)前分區(qū)管理,也可說其他分區(qū)也對當(dāng)前分區(qū)隱藏了,但不被 DBR 所記錄。從這個角度說,每一個分區(qū)都是一個獨立的文件系統(tǒng),比如一個 U 盤可以同時創(chuàng)建一個 FAT32 文件系統(tǒng)分區(qū),同時還可以創(chuàng)建一個 FAT16 文件系統(tǒng)分區(qū),他們之間并不會相互影響。同時,格式化某個分區(qū)不會影響其他分區(qū)的正常使用,比如 C盤格式化或重裝系統(tǒng)并不會影響D盤的數(shù)據(jù),這就是為什么說要分區(qū)的原因了,否則一個硬盤只分一個區(qū),想重裝系統(tǒng)的話,很多數(shù)據(jù)都會丟失,包括桌面文件。這就是為什么最好把數(shù)據(jù)放在除 C 盤外的區(qū)域了,當(dāng)然為了方便,你也可以使用快捷方式,將文件指向其他盤,而將快捷方式放桌面。

保留扇區(qū)

在每個分區(qū)之內(nèi),我們可以看到有部分扇區(qū)被文件系統(tǒng)認為是保留扇區(qū),而這些所謂的保留扇區(qū)才是實現(xiàn)FAT文件系統(tǒng)的關(guān)鍵。(這里為了圖解清晰,并沒有按照比例圖解,實際上,數(shù)據(jù)區(qū)比保留區(qū)空間大的多)這里有 DBR、FSINFO、FAT,還有為了安全考慮,存有他們的備份信息(如果文件系統(tǒng)損壞,可以嘗試使用備份恢復(fù)他們)。但我們還可以從上面知道,除了這些,還有一部分是真正的保留扇區(qū),即上面的空白部分,這些保留扇區(qū)大小不是固定的,但確實占用了空間,而你卻無法使用它們。文章開頭,有個疑問,為什么明明買的是 16 G U盤,格式化后,系統(tǒng)卻提示我們只有 15 G,這少了 1 G 空間去哪了?最大頭,我相信大家都知道了,就是 1024 和 1000 進制的區(qū)別了,商家說的 16 G 是按照1000 為單位的,而系統(tǒng)按照 1024 計算,當(dāng)然不一致了。還有就是一般 MBR 之后會有一些保留分區(qū)存在(如果磁盤空間有限,可以不需要)。另外就是文件系統(tǒng)本身占用的空間了(即上面的保留扇區(qū)),如果有多個分區(qū),那么顯示的只有當(dāng)前分區(qū)的大小,其他分區(qū)大小是無法查看的。而如果是單個分區(qū),那么顯示的大小只是數(shù)據(jù)區(qū)大小而已,保留區(qū)并不在顯示空間內(nèi),你也不能直接通過文件的方式操作它。還有就是數(shù)據(jù)區(qū)的空間使用來進行管理的,不滿一簇大小的扇區(qū)空間,將直接丟棄不被文件系統(tǒng)所使用,這也會損失一點空間。而有些分區(qū)為了效率,會將分區(qū)進行對齊處理,未對齊部分也不能使用。種種原因,導(dǎo)致顯示的空間比實際要小,不過對于大容量的存儲介質(zhì)來說,這點損失根本不算什么,而且在后面你會發(fā)現(xiàn),為了高效管理空間,還有其他損失。
------------ END ------------



本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。

strongerHuang

692 篇文章

關(guān)注

發(fā)布文章

編輯精選

技術(shù)子站

關(guān)閉