愛伊米

MBR(MS-DOS)與GPT磁碟分割槽表

但是磁碟總不能真的拿鋸子來切割吧?那硬碟還真的是會壞掉。那怎麼辦?在前一節的圖中,我們有看到“開始與結束磁軌”吧?而通常磁碟可能有多個碟片,所以碟片的同一個磁軌我們稱之為柱面,通常那是檔案系統的最小單位,也就是分割槽的最小單位。為什麼說“通常”?因為近來有GPT這個可達到64位記錄功能的分割槽表,現在我們甚至可以使用扇區號碼來作為分割槽單位。所以說,我們就是利用參考對照柱面或扇區號碼的方式來處理。

MBR(MS-DOS)與GPT磁碟分割槽表

扇區

也就是說,分割槽表其實有兩種方式,我們就依據來談一談這兩種分割槽表格式。

MBR分割槽表格式與限制

早期的Linux系統為了相容Windows的磁碟,因此使用的是支援Windows的MBR的方式來處理啟動載入程式與分割槽表。而啟動載入程式記錄區與分割槽表通通放在磁碟的第一個扇區,這個扇區通常是512位元組的大小,

主引導記錄:可以安裝啟動載入程式的地方,有446位元組;

分割槽表:記錄整塊硬碟分割槽的狀態,有64位元組;

由於分割槽表所在區塊僅有64位元組容量,因此最多僅能有四組記錄區,每組記錄區記錄了該區段的起始與結束的柱面號碼。若將硬碟以長條形來看,然後將柱面以柱形圖來看,那麼那64位元組的記錄區段有點像下面的圖:

假設上面的硬碟裝置檔名為/dev/sda時,那麼這四個分割槽在Linux系統中的裝置如下圖所示,重點在於檔名後面再接一個數字,這個數字與該分割槽所在的位置有關。

P1:/dev/sda1

P2:/dev/sda2

P3:/dev/sda3

P4:/dev/sda4

MBR(MS-DOS)與GPT磁碟分割槽表

磁碟分割槽表的作業示意圖

上圖中我們假設硬碟只有400個柱面,共劃分成為四個分割槽,第四個分割槽所在為第301-400號柱面的範圍。當你的作業系統為Windows時,那第一到第四個分割槽的代號應該就是C、D、E、F。當你有資料要寫入F分割槽時,你的資料會被寫入這塊硬碟的301-400號柱面之間的意思。

由於分割槽表就只只有64個位元組而已,最多隻能容納四組分割槽記錄,這四個分割槽的記錄被稱為主要或擴充套件分割槽。根據上面的圖與說明,我們 可以得到幾個重點資訊。

*其實所謂的分割槽只是針對那個64位元組的分割槽表進行設定而已。

*硬碟預設的分割槽表僅能寫入四組分割槽資訊。

*這四組劃分資訊我們稱為主要或擴充套件分割槽。

*分割槽的最小單位通常稱為柱面。

當系統要寫入磁碟時,一定會參考磁碟分割槽表,才能針對一個分割槽進行資料的處理。

你會不會突然想到,為啥要分割槽?基本上你可以這樣思考分割槽的角度。

1.資料的完全性

因為每個分割槽的資料是分開的。所以當你需要將一個分割槽的資料重新整理時,例如你要將計算機中Windows的C盤重新安裝一次系統時,可以將其他重要資料移動到其他分割槽,例如將郵件、桌面資料移動到D盤,那麼C盤重新安裝系統不會影響到D盤,所以善用分割槽,可以讓你的資料更安全。

2.系統的效能考慮

由於分割槽將資料集中到一個柱面區段中,例如圖中第一個分割槽位於柱面號碼1-100號,如此一來當有資料要讀取自該分割槽時,磁碟只會查詢前面1-100的柱面範圍,由於資料集中,將有助於資料讀取的速度與效能,所以說,分割槽很重要。

既然分割槽表只有記錄四組資料的空間,那麼是否代表一塊硬碟最多隻能分出四個分割槽呢?當然不是,有經驗的朋友都知道,你可以將一塊硬碟劃分成十個以上的分割槽。那又是如何達到的呢?在Windows與Linux系統中,我們是透過剛剛談到的擴充套件分割槽的方式來處理。擴充套件分割槽的意思是:既然第一個扇區所在的分割槽表只能記錄四組資料,那我可否利用額外的扇區來記錄更多的分割槽資訊?實際上示意圖有點像下面這樣:

MBR(MS-DOS)與GPT磁碟分割槽表

磁碟分割槽表的作用示意圖

在上圖中,我們知道硬碟的四個分割槽記錄區僅用到兩個,P1為主要分割槽,而P2為擴充套件分割槽。請注意。擴充套件分割槽的目的是使用額外的扇區來記錄分割槽資訊,擴充套件分割槽本身並不能拿來格式化。然後我們可以透過擴充套件分割槽所指向的那個區塊來繼續做分割槽的記錄。

如圖右下方那個區塊繼續劃分出五個分割槽,這五個由擴充套件分割槽繼續切出來的分割槽,就被稱為邏輯分割槽。同時注意一下,由於邏輯分割槽是由擴充套件分割槽繼續劃分出來的,所以它可以使用的柱面範圍就是擴充套件分割槽所設定的範圍,也就是圖中的101-400。

同樣,上述的分割槽在Linux系統中的檔名分別如下:

P1;/dev/sda1

P2:/dev/sda2

L1:/dev/sda5

L2:/dev/sda6

L3:/dev/sda7

L4:/dev/sda8

L5:/dev/sda9

仔細看看,怎麼沒有裝置檔名/dev/sda3與/dev/sda4?因為前面四個號碼都是保留給主要分割槽或擴充套件分割槽用的餓,所以邏輯分割槽的裝置名稱號碼就由5號開始。這種在MBR方式的分割槽表中是個很重要的特性,不能忘記。

MBR主要分割槽、擴充套件分割槽與邏輯分割槽的特性我們做個簡單的定義。

主要分割槽與擴充套件分割槽最多可以有4個(硬碟的限制);

擴充套件分割槽最多隻能有一個(作業系統的限制);

邏輯分割槽是由擴充套件分割槽持續分出來的分割槽;

能夠被格式化後作為資料存取的分割槽與邏輯分割槽,擴充套件分割槽無法格式化;

邏輯分割槽的數量依據作業系統而不同,在Linux系統中SATA硬碟已經可以突破63個以上的分割槽限制。

事實上,分割槽是個很麻煩的東西,因為它是以柱面為單位的連續磁碟空間,且擴充套件分割槽又是個類似獨立的磁碟空間,所以在分割槽的時候要特別注意。我們舉例來解釋一下就好了。

例題:在Windows作業系統中,如果你想要將D與E整合成為一個新的分割槽,而如果有兩種分割槽的情況如圖所示:圖中的特殊顏色區塊為D與E的示意,請問這兩種方式是否可將D與E整合成一個新的分割槽?

MBR(MS-DOS)與GPT磁碟分割槽表

分割槽示意圖

答:上圖可以看出,因為上圖的D與E同屬於擴充套件分割槽內的邏輯分割槽,因此只要將兩個分割槽刪除,然後再建立一個新的分割槽,就能夠 在不影響其他分割槽的情況下,將兩個分割槽的容量整合成為一個。

下圖不可整合:因為D與E分屬主要分割槽與邏輯分割槽,兩者不能夠整合在一起,除非將擴充套件分割槽破壞掉後再重新劃分。但如此一來會影響到所有的邏輯分割槽,要注意的是:如果擴充套件分割槽被破壞,所有邏輯分割槽將會被刪除,因為邏輯分割槽的資訊都記錄在擴充套件分割槽裡面。

由於這一節比較難講,所以我要分兩次講,下一節繼續。