FAT硬碟及分割槽結構

2021-05-23 21:52:46 字數 2334 閱讀 1962

硬碟儲存資料是根據電磁轉換原理來實現的。硬碟工作時,碟片以設計速度高速旋轉,設定在碟片表面的磁頭則在電路控制下徑向移動到指定位置將資料儲存或讀取出來。只要將碟片表面設計得更平滑、磁頭設計得更精密以及盡量提高碟片旋轉速度,就能造出容量更大,儲存速度更快的硬碟。

硬碟首先分成很多個碟片platter,每個碟片有2面,每面對應乙個磁頭head;每個碟片被劃分若干個同心圓磁軌,這多個同心圓就形成了乙個柱面cylinder;每個盤面的每個磁軌又被分成幾十個扇區sector,通常容量是512bytes。故共有cylinderxheadsxsector個扇區。

磁碟的開始為整個磁碟的bootsector,往下有不超過4個的基本分割槽。如果某個基本分割槽的分割槽型別為extendx,則該分割槽被指定為擴充套件分割槽。擴充套件分割槽又被分為多個邏輯分割槽。

bootsector由mbr(master boot record)、dpt(disk partion table)和boot record id(結束符)組成。

mbr,主引導記錄,有時也稱主引導扇區,占用了整個硬碟的0柱面0磁頭1扇區的前面的446個位元組;bios在執行完自己的固有程式以後,便會跳轉到mbr的第一條語句。mbr負責從活動分割槽中裝載並執行系統引導程式。

dpt:dpt占用接下來的64個位元組,描述磁碟的基本分割槽資訊。共4個分割槽項,每項16個位元組。

boot record id:結束符55aa。

bootsector的整體結構如下圖所示:

其中,16位元組的分割槽資訊包含內容如下:

3.2 擴充套件分割槽

由於基本分割槽最多只能分4個分割槽,無法滿足需求,因此設計了一種擴充套件分割槽格式。如果dpt的某個表項,標記基本分割槽型別為0x05(extendx)時,該分割槽即為主擴充套件分割槽,其他所有的擴充套件分割槽,以主擴充套件分割槽為煉表頭,鏈式排列。擴充套件分割槽的第乙個扇區存放類似於dpt的分割槽資訊(ebr),該分割槽資訊僅有2項,一項指向自身的邏輯盤,另一項指向鍊錶中下乙個擴充套件分割槽。每個擴充套件分割槽含乙個邏輯盤(也稱邏輯分割槽)。具體結構如下圖:

3.3 如何找到乙個邏輯分割槽

綜上,找到乙個邏輯盤(邏輯分割槽)的步驟為:從磁碟第乙個扇區bootsector的dpt,獲取基本分割槽資訊;如果基本分割槽型別為extendx,該基本分割槽即為主擴充套件分割槽(第乙個擴充套件分割槽);從擴充套件分割槽的分割槽表ebr,可以得到當前擴充套件分割槽的邏輯盤位置,以及下乙個擴充套件分割槽的起始位置。如下圖(以乙個有4個基本分割槽的磁碟為例):

再對照一下弟3章開始的**:

第三章介紹了從「磁碟bootsector到邏輯分割槽」的結構。現在以fat16和fat32為例,對邏輯分割槽的結構進行說明。

fat16和fat32的分割槽組成機構類似,其基本如下:

下面以這個圖上顯示的順序,逐項說明。

4.1 邏輯分割槽的bootsector--dbr(dos boot record)

dbr區(dos boot record)即作業系統引導記錄區的意思,通常占用分割槽的第0扇區共512個位元組(特殊情況也要占用其它保留扇區,我們先說第0扇)。在這512個位元組中,其實又是由跳轉指令,廠商標誌和作業系統版本號,bpb(bios parameter block),擴充套件bpb,os引導程式,結束標誌幾部分組成。

4.2 保留扇區

在dbr的偏移0x0e處,用2個位元組制定了保留扇區的數目。保留扇區及系統保留區,使用者不可見。

4.3 fat表(詳細內容見

fat表(file allocation table 檔案分配表),是microsoft在fat檔案系統中用於磁碟資料(檔案)索引和定位引進的一種鏈式結構。假如把磁碟比作一本書,fat表可以認為相當於書中的目錄,而檔案就是各個章節的內容。在fat檔案系統中,檔案的儲存依照fat表制定的簇鏈式資料結構來進行。其中fat2是fat1的同步,內容是一樣的。

4.4 根目錄區

根目錄區就是跟目錄區(跳過^_^)。

硬碟結構介紹 mbr及分割槽

硬碟剛買來使用時需要經過分割槽然後格式化才能夠使用,硬碟經過分割槽後,分割槽軟體便會寫乙個主引導扇區,這個扇區位於硬碟的 0 磁軌 0 柱面第1扇區 即0區 注意 該扇區為隱含扇區,0道0面的全部扇區均為隱含扇區,普通的磁碟訪問命令無法直接訪問,同時該磁軌的其他62個扇區也是隱含的,因此有引多系統引...

centos 掛載 fat 分割槽

倒騰了ntfs之後,發現我的工程檔案是存在乙個fat32目錄下的,於是決心把他也弄進來。昨天刻了乙個 win7 sp1 x86 64 的盤,準備換乙個純潔的系統,你懂得。1.用這個命令 mount o iocharset utf8 dev sdb3 mnt windows l fat32 先建立乙個...

linux分割槽及掛載硬碟

列出硬碟 kirito kirito lsblk name maj min rm size ro type mountpoint loop0 7 0 0 89.1m 1 loop snap core 8268 nvme0n1 259 0 0 1.9t 0 disk nvme0n1p1 259 1 0...