熱線電話:13121318867

登錄
首頁精彩閱讀一張圖了解磁盤里的數據結構_數據分析師
一張圖了解磁盤里的數據結構_數據分析師
2015-01-26
收藏

一張圖了解磁盤里的數據結構_數據分析師


有了文件系統,使我們對文件的訪問變得很容易,不用考慮文件到底存在哪里,怎么存的,不過適當了解一下底層文件存儲還是有幫助的。我們知道文件不僅僅能夠存儲在磁盤上,還可以存儲在光盤等設備上,對于存儲在硬盤上的,對于不同的硬盤內部存儲介質,如磁性盤面、閃存(SSD固態硬盤存儲介質)存儲結構也是不同的;對于同樣的存儲介質的磁盤,不同的文件系統,如NTFS、FAT、ext等,底層存儲也是有所區別的,下面僅僅對整體邏輯上的結構做一簡單介紹。

先來看下圖,我花了一下午時間畫的,后面就要圍繞這張圖來展開的。

數據結構

點擊可放大

 

不要被上面的圖嚇到,我來一點點的解釋。

先來整體上看一下,上面圖是我電腦的磁盤,按照LBA尋址,把所有的扇區按照從左到右,依次排開,最左邊為第一塊扇區,最右邊是最后一塊扇區,所有數據信息就存儲在里面。從左到右分為了幾部分:Start Sections–>Partition1(系統保留分區)–>Partition2(C盤)—>Partition3(D盤)–>Partition4(E盤)–>Partition5(F盤),其中Partition1~3是主分區,Partion4~5是擴展分區上的兩個邏輯分區,里面綠色的部分是分區與分區之間的Partition gap,大小為1MB,最后黃色的表示Unpartitional space,沒有利用的,也是1MB。下面開始分開逐個來解釋一下。

一、Start Sections:

這個開始扇區部分有1MB大小,其中第一個扇區,也是整個磁盤的第一個扇區,位于0柱面0磁頭1扇區,也叫做主引導扇區,一共512個字節,分為了三部分:

(1)MBR(446字節):Main Boot Record,主引導記錄

如果直接說MBR可能不知道它從何而來,我們從開機來看看,它到底在什么時候起作用的。我們按下電腦的開機按鍵,就給主板通上了電,上面的bios程序開始運行,對電腦硬件進行檢測,然后就需要我們去選擇First boot device,我們可以從U盤啟動、從光盤啟動,當然也可以從硬盤啟動,而且很多時候默認的是從硬盤啟動。如果我們選擇了從硬盤啟動,那么bios程序就會讀取該設備的第一個扇區的數據,也就是前面512個字節,如果最后兩個字節不是以0x55AA結束,那么表示這個設備不可以用來啟動;如果是0x55AA,那么表示該設備可以用來啟動,bios程序就會有一個jump的操作,跳轉到硬盤這一個扇區的代碼,把操作交給硬盤,那么跳轉的是哪兒呢?就是我們要說的MBR,主引導記錄。

MBR中包含了整個硬盤的一些參數和一段引導程序,引導程序就會去DPT磁盤分區表里面去找到底從硬盤的哪個分區去啟動(具有激活標志的分區),找到后就把控制權交出去,不過這之前會先檢查DPT磁盤分區表是否正確。

(2)DPT(64字節):Disk Partition Table,磁盤分區表

DPT用來記錄磁盤到底分了幾個分區以及分區的一些信息,磁盤分區有許多好處,比如不同的分區放不同的數據,又或者可以安裝多操作系統等等。DPT只有64個字節,分成了四項,分別為第一~四分區表項,圖中紅色虛線箭頭指向的。每個分區表項占16個字節,因此一個磁盤只能分為四個分區,即四個主分區。當然如果想增加更多的分區,其中一個主分區可以當成擴展分區,在擴展分區里面新建邏輯分區。

磁盤分區表的四個分區表項內容格式一致,我們拿出一個分區表項(16字節)看看都包含了什么。

第1個字節:如果為0x80,表示是激活分區,那么前面的MBR引導程序就把控制權給這個分區。四個分區只能有一個是激活的。0x00表示非激活的分區。

第2-4個字節:主分區的第一個扇區的CHS地址,里面有程序代碼的。

第5個字節:主分區的類型。例如01表示FAT32,05表示extended(如果一個分區的主分區id號為05,那么它就是一個擴展分區了)等,具體可參看分區類型標志。

第6-8個字節:主分區的最后一個扇區的CHS地址,所以我們改改分區表,也可以修改磁盤分區的大小。

第9-12個字節:該主分區的第一個扇區的邏輯地址LBA。

第13-16個字節:主分區的扇區總數。

我們看到我們上圖中,四個分區表項分別對應了三個主分區和一個擴展分區。

(3)其他幾個扇區:除了第一個扇區外,1MB空間里面的其他幾個扇區就空著了,可能沒用,也可能與后面要講的partition gap功能一致。

二、主分區

我的磁盤分了三個主分區,分別為系統保留、C盤、D盤,我們以C盤為例,看看主分區所占用的扇區,可以分為幾部分。

(1)引導扇區:OS Boot Record,主分區的引導記錄,有時也叫卷引導記錄(Volume boot record)含有一段操作系統的引導程序,如果該分區是激活的,可以通過它來啟動本主分區的操作系統。

(2)DATA數據區:存儲數據,不同的文件系統,如fat、ntfs還會細分。

三、Partition gap

用Winhex查看磁盤情況,往往會看到分區和分區之間會有Partition gap,so上面的一個解釋,可以參看一下,Windows disk partion gap。

四、擴展分區

我的最后一個主分區當做擴展分區,里面有兩個邏輯分區E盤和F盤,每一個邏輯分區由幾部分組成。

(1)擴展分區表

擴展分區的第一個邏輯分區的第一個扇區,叫做EBR,extended boot record,擴展分區記錄,類似于整個磁盤的第一個扇區,但是它沒有引導程序,只有一個擴展分區表和0x55AA結束標志,其中擴展分區表由四部分組成。里面的第二項可以找到下一個邏輯分區的位置。

(2)引導扇區:同前。

(3)數據區:同前。

五、Unpartitional space

只有1MB空間,我也不想知道它是干什么了。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢