FAT32檔案系統詳解
硬碟是用來儲存資料的,為了使用和管理方便,這些資料以檔案的形式儲存在硬碟上。任何作業系統都有自己的檔案管理系統,不同的檔案系統又有各自不同的邏輯組織方式。例如:常見的檔案系統有FAT,NTFS,EXT,UFS,HFS+等等。作者後面的文章會一一講到,下面就來學習一下基於Windows的FAT32檔案系統。
FAT32檔案系統由DBR及其保留扇區,FAT1,FAT2和DATA四個部分組成,其機構如下圖:
這些結構是在分割槽被格式化時創建出來的,含義解釋如下:
DBR及其保留扇區:DBR的含義是DOS引導記錄,也稱為作業系統引導記錄,在DBR之後往往會有一些保留扇區。
FAT1:FAT的含義是檔案分配表,FAT32一般有兩份FAT,FAT1是第一份,也是主FAT。
FAT2:FAT2是FAT32的第二份檔案分配表,也是FAT1的備份。
DATA:DATA也就是資料區,是FAT32檔案系統的主要區域,其中包含目錄區域。
一、分析FAT32檔案系統的DBR
FAT32檔案系統的DBR有5部分組成,分別為跳轉指令,OEM代號,BPB,載入程式和結束標誌。如下圖是一個完整的FAT32檔案系統的DBR。
跳轉指令:本身佔2位元組它將程式執行流程跳轉到載入程式處。
OEM代號:這部分佔8位元組,其內容由建立該檔案系統的OEM廠商具體安排。
BPB:FAT32的BPB從DBR的第12個位元組開始,佔用79位元組,記錄了有關該檔案系統的重要資訊,各引數解釋如下表:
FAT32檔案系統在DBR的保留扇區中安排了一個檔案系統資訊扇區,用以記錄資料區中空閒簇的數量及下一個空閒簇的簇號,該扇區一般在分割槽的1號扇區,也就是緊跟著DBR後的一個扇區,其內如下:
各引數解釋如下:
載入程式程式碼:FAT32的DBR載入程式佔用420位元組,對於沒有安裝作業系統的分割槽來說這段程式是沒有用處的。
結束標誌:DBR的結束標誌與MBR,EBR的結束標誌相同,為“55 AA”。
二、分析FAT32檔案系統的FAT表
FAT1的內容如下:
由於分割槽格式化之後沒有寫入太多的資料,所以FAT項很少。
FAT表結構及作用
1、FAT32檔案一般有兩份FAT,他們由格式化程式在對分割槽進行格式化時建立,FAT1是主,FAT2是備份。
2、FAT1跟在DBR之後,其具體地址由DBR的BPB引數中指定,FAT2跟在FAT1的後面。
3、FAT表由FAT表項構成,我們把FAT表項簡稱FAT項,每個FAT項佔用4位元組。
4、每個FAT項都有一個固定的編號,這個編號從0開始。
5、FAT表項的前兩個FAT項為檔案系統保留使用,0號FAT為介質型別,1號FAT為檔案系統錯誤標誌。
6、分割槽的資料區中每個簇都會對映到FAT表中的唯一一個FAT項,因為0號FAT和1號FAT被系統佔用,使用者的資料從2號FAT開始記錄。
7、如果某個檔案佔用很多個簇,則第一個FAT項記錄下一個FAT項的編號(既簇號),如果這個檔案結束了,則用“0F FF FF FF”表示。
8、分割槽格式化後,使用者檔案以簇為單位存放在資料區中,一個檔案至少佔用一個簇。
9、FAT的主要作用是標明分割槽儲存的介質以及簇的使用情況。
定位FAT絕對位置的方法如下:
1、首先從MBR的分割槽表中得知分割槽的起始扇區,偏移到此扇區。
2、從DBR的BPB中得知DBR的保留扇區數,FAT表的個數,FAT表的大小。
3、因此FAT1=分割槽起始扇區+DBR保留扇區,FAT2=分割槽起始扇區+DBR保留扇區+FAT1。
三、分析FAT32檔案系統的資料區
資料區的位置在FAT2的後面,具體定位方式如下;
1、通過MBR中的分割槽表資訊得知分割槽的起始位置。
2、通過分割槽中DBR得知DBR的保留扇區數以及FAT表的大小,FAT表的個數。
3、通過上面的資訊就可以找到資料區的起始位置,根目錄=資料區的起始扇區+(簇大小*2)。
資料區的類容主要由三部分組成:根目錄,子目錄和檔案內容。在資料區中是以“簇”為單位進行儲存的,2號簇被分配給根目錄使用。
根目錄的定位方式為:根目錄=分割槽起始扇區+DBR保留扇區+(FAT表*2)+(簇大小*2)
FAT32檔案系統中,分割槽根目錄下的檔案和目錄都放在根目錄區中,子目錄中的檔案和目錄都放在子目錄區中,並且沒每32個位元組為一個目錄項,每個目錄項紀錄著一個目錄或檔案(也可能是多個目錄項記錄一個檔案或目錄),如上圖所示就是一個目錄項。
在FAT32檔案系統中,目錄項可以分為四類:卷標目錄項、“.”和“..”目錄項、短檔名目錄項、長檔名目錄項。
卷標目錄項:卷標就是分割槽的名字,可以在格式化分割槽時建立,也可以隨意修改,長度為11位元組。
“.”和“..”目錄項:“.”表示當前目錄,“..”表示上一層目錄。這兩個目錄項多存在子目錄中。
短檔名目錄項:所謂短檔名既檔名的“8.3”格式,此格式支援主檔名不能超過8位元組,副檔名不能超過3位元組。短檔名目錄始終存放在一個目錄項中。
短檔名的各引數解釋如下:
其中關於時間的表達方式如下:
關於日期的表達方式如下:
長檔名目錄項:由於短檔名“8.3”的格式遠遠不能滿足現實中的需求,所以就出現了長檔名,長檔名其實就是將檔名進行分段,分成若干個短檔名進行儲存。
長檔名在進行分段儲存的時候,遵循一下三個處理原則:
1、系統取長檔名的前6個字元加上“~1”形成短檔名,其副檔名不變;
2、如果已存在這個名字的檔案,則符號“~”後的數字自動增加;
3、如果檔名記憶體在windows非法的字元,則以下劃線“_”代替;
4、長檔名目錄項採用倒敘的方式進行記錄,如上圖。
如下:是長檔名目錄的各引數的解釋
FAT32檔案系統總結
上述的內容已經簡單的介紹了FAT32檔案系統,下面根據定位某個檔案來詳細的瞭解FAT32檔案系統是如何儲存資料的。
1、根據磁碟0號扇區MBR的分割槽表得知分割槽的起始位置,既DBR;
2、根據DBR中BPB記錄的資訊,得知DBR保留扇區數,FAT的大小,FAT的個數;
3、根據上述資訊可以算出資料的起始位置,資料區=分割槽起始扇區+DBR保留扇區+(FAT表*2);
4、計算根目錄所在的絕對位置,根目錄=資料區的起始扇區+(簇大小*2);
5、根據根目錄中的目錄項資訊得知,根目錄下的檔案以及子目錄等所對應的簇;
6、根據檔案的簇號就可以找到檔案內容的絕對扇區;
7、如果一個檔案佔用多個簇,則需要根據FAT表項得知下一個資料簇的簇號。
7、如果根目錄下的目錄項是子目錄的話,則根據子目錄中的檔案目錄項得知檔案內容的簇號;
8、如果子目錄中還有子目錄的話,則根據這種方法一直找下去即可。
至此FAT32檔案系統就簡紹完畢了,希望對那些喜歡資料底層的朋友們有所幫助。
作者:鄧奇
TEL:18911808630
相關推薦
FAT32檔案系統詳解
硬碟是用來儲存資料的,為了使用和管理方便,這些資料以檔案的形式儲存在硬碟上。任何作業系統都有自己的檔案管理系統,不同的檔案系統又有各自不同的邏輯組織方式。例如:常見的檔案系統有FAT,NTFS,EXT,UFS,HFS+等等。作者後面的文章會一一講到,下面就來學習一下基
btrfs檔案系統詳解及使用
btrfs檔案系統的核心特性: 多物理卷支援:btrfs可由多個底層物理卷組成;支援RAID,以聯機“新增”、移除,修改; 寫時複製更新機制(CoW):複製、更新及替換指標,而非就地更新; &
linux檔案系統詳解
什麼是檔案系統 檔案系統是作業系統用於明確磁碟或分割槽上的檔案的方法和資料結構,即在儲存裝置(磁碟)上組織檔案的方法。作業系統中負責管理和儲存檔案資訊的軟體結構稱為檔案管理系統,簡稱檔案系統。 從系統角度來看,檔案系統是對檔案儲存裝置的空間進行組織和分配,負責檔案儲存並對存入的檔案進行保護和檢索的系統
linux目錄結構和根檔案系統詳解
FHS: /bin:所有使用者可用的基本命令程式檔案; /sbin: 供系統管理使用的工具程式; /boot: 引導載入器必須用到的各靜態檔案:kernel,inintramfs(initrd),
NTFS檔案系統詳解(一)之硬碟基本資訊
本文參考自部落格 一般硬碟正面貼有產品標籤,主要包括廠家資訊和產品資訊,如商標、型號、序列號、生產日期、容量、引數和主從設定方法等。這些資訊是正確使用硬碟的基本依據,下面將逐步介紹它們的含義。 硬碟主要由盤體、控制電路板和介面部件等組成,如圖1-1所示。
NTFS檔案系統詳解(三)之NTFS元檔案解析
在NTFS中,所有儲存在捲上的資料都包含在檔案中,包括用來定位和獲取檔案的資料結構,載入程式和記錄這個卷的記錄(NTFS元資料)的點陣圖,這體現了NTFS的原則:磁碟上的任何事物都為檔案。在檔案中儲存一切使得檔案系統很容易定位和維護資料,而在NTFS中,卷中所有存放的資料均在一個叫做MFT的檔案記錄陣列中,
Linux之nfs檔案系統詳解
NFS 概念 網路檔案系統 (NFS) 是 Unix 系統和網路附加儲存檔案管理器常用的網路檔案系統 , 允許多個客戶端通過網路共享檔案訪問。它可用於提供對共享二進位制目錄的訪問 , 也可用於允許使用者在同一工作組中從不同客戶端訪問其檔案。 一、nfs
FatFS檔案系統詳解-附移植建議
在這裡http://elm-chan.org/fsw/ff/00index_e.html下載原始碼,只有800多K,小的可憐,還可以下載示例程式,有AVR、Win32、lpc等多平臺已實現的方案。開啟看src資料夾,一個option資料夾、00readme.txt、disk
Android檔案系統詳解
前言 檔案系統一直是Android開發過程中經常接觸的東西。而關於內部儲存、外部儲存、外接儲存、私有儲存、公共儲存,以及訪問哪些檔案需要申請執行時許可權等問題,一直是許多開發者頭疼的問題。本文就將詳細地講解這些重要而模糊的知識點。 內部儲存 內部儲存主
[轉]Ceph:OpenStack標配&Linux PB級分散式檔案系統詳解
Ceph:一個 Linux PB 級分散式檔案系統作為一名儲存行業的架構師,我對檔案系統情有獨鍾。這些系統用來儲存系統的使用者介面,雖然它們傾向於提供一系列類似的功能,但它們還能夠提供差異顯著的功能。Ceph 也不例外,它還提供一些您能在檔案系統中找到的最有趣的功能。Ceph
(十三)linux檔案系統詳解(基於ext2檔案系統)
我們知道,一個磁碟可以劃分成多個分割槽,每個分割槽必須先用格式化工具(例如某種mkfs命令)格式化成某種格式的檔案系統,然後才能儲存檔案,格式化的過程會在磁碟上寫一些管理儲存佈局的資訊。下圖是一個磁碟分割槽格式化成ext2檔案系統後的儲存佈局:
EX2檔案系統詳解
對於EXT2檔案系統,重點關注索引節點和資料塊。 檔案是以簇為單位存放在硬碟中的,簇是由多個扇區組成的。 任何ext2分割槽的第一個塊從不受ext2檔案系統的管理,這一塊分割槽的啟動扇區所保留。ext2其餘的分割槽為快組,詳細組成如下: 分割槽=引導塊+塊組(N個) 塊組=
FastDFS 分散式檔案系統詳解
## 什麼是檔案系統 ![](https://mrhelloworld.com/resources/articles/fastdfs/20180810094347_11565.jpg " ") 檔案系統是作業系統用於在磁碟或分割槽上組織檔案的方法和資料結構。磁碟空間是什麼樣的我們並不清楚,但檔案系統可
【史上最全】Hadoop 核心 - HDFS 分散式檔案系統詳解(上萬字建議收藏)
## 1. HDFS概述 Hadoop 分散式系統框架中,首要的基礎功能就是檔案系統,在 Hadoop 中使用 FileSystem 這個抽象類來表示我們的檔案系統,這個抽象類下面有很多子實現類,究竟使用哪一種,需要看我們具體的實現類,在我們實際工作中,用到的最多的就是HDFS(分散式檔案系統)以及Loca
ZCU106開發詳解之PS側SD卡FAT32檔案系統(高階外設,大神之路)
感謝大家的等待!! 本週將四連發,我們團隊也將盡自己能力為大家答疑解惑!!! 如果有朋友想了解更多相關資訊請加QQ群836535064。我們會將相關資料釋出於QQ群中。 歡迎有需求的朋友深度合作。本團隊專注於高速視訊編解碼,高速訊號採集處理,高速異構平臺,高速儲存方案提
FAT32檔案系統格式詳解
FAT32 檔案系統 在FAT16中,採用了16bit寬的簇地址, 32bit寬扇區地址, 但由於規定每簇最大的容量不超過1024 * 32. 所以FAT16檔案系統的容量也就限制到了2^16 * 1024 * 32,大約2.1GB的空量,並且實際還達不到這個值。 FAT32檔案系統使用了3
分散式系統詳解--框架(Hadoop--JAVA操作HDFS檔案)
分散式系統詳解--框架(Hadoop--JAVA操作HDFS檔案) 前面的文章介紹了怎麼將整個集群系統搭建起來,並進行了有效的測試。為了解決登入一臺伺服器登入其他伺服器需要多次輸入密碼的
萌店系統開發模式系統詳解
app 上海 好的 供應鏈 實現 即時通訊 消費者 粉絲 統計數據 萌店系統開發(李想.185.6504.8478)O2O的優勢在於把網上和網下的優勢完美結合。通過網購導購機,把互聯網與地面店完美對接,實現互聯網落地。讓消費者在享受線上優惠價格的同時,又可享受線下貼身的服務
Tomcat日誌系統詳解
mat core catalina res 最大的 tor dumps 異常 startup 綜合:Tomcat下相關的日誌文件 catalina引擎的日誌文件,文件名:catalina.日期.log Tomcat下內部代碼丟出的日誌,文件名localhost.日期.lo
U-Mail郵件系統詳解郵件收發延遲原因及解決方案
郵件系統 郵件是現代社會辦公最常見、最頻繁的通聯工具,但使用郵件系統時,用戶普遍最關心兩個安全,一個是安全性,郵件會不會被竊密?自己的郵箱賬號會不會被盜取被攻占呢?保存的數據會不會丟失呢?關於這個問題,國內知名通聯解決方案提供商U-Mail資深專家馬工已反復闡述過很多次。 另一個問題是關於郵件傳輸的,郵