• 正文
    • 文件系統(tǒng)整體結(jié)構(gòu)
    • MBR
    •  
    • MBR
    •  
    • 隱藏扇區(qū)
    •  
    • 保留扇區(qū)
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

圖解 FAT 文件系統(tǒng)之基礎(chǔ)知識(一)

2020/12/15
255
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

FAT 文件系統(tǒng)是什么,當(dāng)你格式化 U 盤之后 U 盤發(fā)生了什么,為什么刪除的文件還可以再恢復(fù)?買的 U 盤明明寫著 16 G,實(shí)際卻只有 15 G,這里隱藏了什么事實(shí)?這些問題,將由魚鷹一一為你解答(佛系更新,喜歡的話就關(guān)注魚鷹吧)。

FAT 文件系統(tǒng)隨著發(fā)展,經(jīng)歷了多個(gè)版本,從 FAT12 到 FAT16 再到 FAT32,exFAT,每一個(gè)版本的迭代都是容量的巨大提升……你以為魚鷹會像書本一樣長篇大論歷史?那你錯了,關(guān)于這些歷史感興趣的話可以自行查閱資料,魚鷹就不多談了。本篇主要介紹 FAT 文件系統(tǒng)的通用知識點(diǎn)。

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

我們看看當(dāng)你的 U 盤(16 G,魚鷹親自試驗(yàn)并圖解)格式化為 FAT32 格式后,U 盤發(fā)生了什么:

這里將 U 盤分成了三個(gè)分區(qū),類似你將電腦的硬盤分成 C 盤、D 盤、E 盤,這里的新加卷、分區(qū) 2、分區(qū) 3 就是目前 U 盤上建立的三個(gè)分區(qū),但事實(shí)上,我們一般不會將 U 盤分成三個(gè)分區(qū),一個(gè)就夠用了,只是魚鷹想告訴你,這在 U 盤也可以做到。

MBR

在 FAT 文件系統(tǒng)中, 0 扇區(qū)必定是 MBR,這個(gè)扇區(qū)包含了磁盤(U 盤)很多信息,比如整個(gè) U 盤的大?。ㄈ萘浚?,即扇區(qū)總數(shù),各個(gè)分區(qū)的起始扇區(qū)、分區(qū)大小,引導(dǎo)代碼等。

前面 446 個(gè)字節(jié)和主引導(dǎo)代碼有關(guān),因?yàn)樵?a class="article-link" target="_blank" href="/tag/%E5%8D%95%E7%89%87%E6%9C%BA/">單片機(jī)系統(tǒng)中一般不會使用這種引導(dǎo)方式引導(dǎo)操作系統(tǒng),所以按下不表。我們主要關(guān)注后面的分區(qū)信息和一些標(biāo)志:

分區(qū)表項(xiàng)具體含義可看該圖:

這里有一個(gè)標(biāo)志,即扇區(qū)最后的兩個(gè)字節(jié),一般是 55 AA(0xAA55),如果說你的扇區(qū)里面沒有這個(gè)標(biāo)志,那么系統(tǒng)就不認(rèn)為這是一個(gè) FAT 文件系統(tǒng),更不用說進(jìn)行接下來的其他驗(yàn)證操作了。我們從上圖可以看到,一個(gè) MBR 可以記錄四個(gè)分區(qū)信息,但是你會發(fā)現(xiàn)你的 U 盤可以分成超過四個(gè)分區(qū),那么這又是怎么回事?原因在于,可以使用邏輯分區(qū)。即可設(shè)置三個(gè)主分區(qū),另一個(gè)分區(qū)設(shè)置為邏輯分區(qū),這個(gè)邏輯分區(qū)里面可以分成很多很多分區(qū),這就是它為什么能創(chuàng)建超過四個(gè)分區(qū)的原因。當(dāng)然,我們目前也沒必要深入了解邏輯分區(qū)是怎么一回事,先把基本分區(qū)搞定再說。

?

MBR

說完 MBR,我們再說一個(gè)和 MBR 很像的一個(gè)扇區(qū),DBR。

從上圖我們可以看到,每一個(gè)分區(qū)的第一個(gè)扇區(qū)必定是 DBR,這是做什么用的?我們知道 MBR 記錄的分區(qū)信息十分有限,只有分區(qū)的開始扇區(qū)、分區(qū)的大小、分區(qū)類型、引導(dǎo)標(biāo)志(表示該分區(qū)是否可被引導(dǎo),通俗的話說,就是這個(gè)分區(qū)是否存在操作系統(tǒng))等有限信息,我們不知道這個(gè)分區(qū)叫什么名字,文件系統(tǒng)的版本號是多少等。所以我們需要一個(gè)扇區(qū)保存這些信息。這就是 DBR 的作用。如果說 MBR 保存的是整個(gè)磁盤的基本信息,那么 DBR 保存的就是當(dāng)前分區(qū)的基本信息。

我們可以看到 DBR 的扇區(qū)結(jié)尾也是一樣的結(jié)束標(biāo)志,所以它們是比較相似的,在有些資料中,如果不區(qū)分它們的話,很容易讓人迷惑。

?

隱藏扇區(qū)

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

?

保留扇區(qū)

在每個(gè)分區(qū)之內(nèi),我們可以看到有部分扇區(qū)被文件系統(tǒng)認(rèn)為是保留扇區(qū),而這些所謂的保留扇區(qū)才是實(shí)現(xiàn) FAT 文件系統(tǒng)的關(guān)鍵。

(這里為了圖解清晰,并沒有按照比例圖解,實(shí)際上,數(shù)據(jù)區(qū)比保留區(qū)空間大的多)這里有 DBR、FSINFO、FAT,還有為了安全考慮,存有他們的備份信息(如果文件系統(tǒng)損壞,可以嘗試使用備份恢復(fù)他們)。但我們還可以從上面知道,除了這些,還有一部分是真正的保留扇區(qū),即上面的空白部分,這些保留扇區(qū)大小不是固定的,但確實(shí)占用了空間,而你卻無法使用它們。文章開頭,有個(gè)疑問,為什么明明買的是 16 G U 盤,格式化后,系統(tǒng)卻提示我們只有 15 G,這少了 1 G 空間去哪了?最大頭,我相信大家都知道了,就是 1024 和 1000 進(jìn)制的區(qū)別了,商家說的 16 G 是按照 1000 為單位的,而系統(tǒng)按照 1024 計(jì)算,當(dāng)然不一致了。還有就是一般 MBR 之后會有一些保留分區(qū)存在(如果磁盤空間有限,可以不需要)。另外就是文件系統(tǒng)本身占用的空間了(即上面的保留扇區(qū)),如果有多個(gè)分區(qū),那么顯示的只有當(dāng)前分區(qū)的大小,其他分區(qū)大小是無法查看的。而如果是單個(gè)分區(qū),那么顯示的大小只是數(shù)據(jù)區(qū)大小而已,保留區(qū)并不在顯示空間內(nèi),你也不能直接通過文件的方式操作它。

?

還有就是數(shù)據(jù)區(qū)的空間使用簇來進(jìn)行管理的,不滿一簇大小的扇區(qū)空間,將直接丟棄不被文件系統(tǒng)所使用,這也會損失一點(diǎn)空間。而有些分區(qū)為了效率,會將分區(qū)進(jìn)行對齊處理,未對齊部分也不能使用。種種原因,導(dǎo)致顯示的空間比實(shí)際要小,不過對于大容量的存儲介質(zhì)來說,這點(diǎn)損失根本不算什么,而且在后面你會發(fā)現(xiàn),為了高效管理空間,還有其他損失。

本篇筆記本打算介紹分區(qū)的簇、FAT 等相關(guān)知識的,但目前文章太長了,只能下期再見了。

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計(jì)資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄