Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
附錄 A. 磁碟分割區的介紹
注意
本附錄並不一定適用於非 AMD64 和 Intel 64 架構的系統,然而其中提到的一般概念,也許能一體適用。
這部分討論了基本的磁碟概念、磁碟分割策略、Linux 系統所使用的分割區命名方案和其它相關主題。
若您對於磁碟分割沒有甚麼疑問,您可直接跳到〈節 A.2, “磁碟重新分割的策略”〉,以取得更多有關於釋放磁碟空間,以準備安裝 Red Hat Enterprise Linux 的程序上的相關資訊。
A.1. 硬碟的基本概念
硬碟執行一種很簡單的功能 — 它們儲存資料並穩定的因執行的指令來擷取資料。
當討論類似磁碟分割之類的問題時,您必須對基礎硬體有一定程度的理解;然而,因為此理論非常複雜且範圍廣泛,在此只會解釋基本的概念。本附錄使用了一組簡化的磁碟圖形,來協助解釋分割區的程序和理論。
〈圖形 A.1, “一個未使用過的硬碟”〉顯示了一個全新、未使用的磁碟。

圖形 A.1. 一個未使用過的硬碟
A.1.1. 檔案系統
若要在硬碟上儲存資料,您必須先格式化磁碟。格式化(一般亦稱為「製作檔案系統")會將資訊寫入磁碟,在未格式化磁碟中的空白空間上建立順序。

圖形 A.2. 有檔案系統存在的硬碟
如〈圖形 A.2, “有檔案系統存在的硬碟”〉所示,檔案系統的順序有些限制:
- 一小部份的磁碟空間會用來儲存檔案系統相關的資料,這也能被視為是一種添加信號(overhead)。
- 系統檔案會將剩餘的空間分割至較小、大小一致的區塊。在 Linux 中,我們稱這些區塊為 blocks。[4]
有一點值得注意的就是單獨的通用檔案系統並不存在。如〈圖形 A.3, “有不同檔案系統的磁碟”〉所示,磁碟上可能會寫入許多檔案系統中的其中一種。不同的檔案系統之間一般來講無法互相相容;也就是說,一個支援某種檔案系統(或是其它相聯的檔案系統類型)的作業系統,可能不支援另一個檔案系統。然而,這並非是所有作業系統。比方說,Red Hat Enterprise Linux 支援了多種類型的檔案系統(包括許多其它作業系統常用的檔案系統),使得不同檔案系統之間的資料互換變得容易。

圖形 A.3. 有不同檔案系統的磁碟
將檔案系統寫入磁碟僅是第一個步驟。此程序的目標乃實際地儲存與擷取資料。以下圖形顯示了一個寫入資料之後的磁碟:

圖形 A.4. 有寫入資料的磁碟
如〈圖形 A.4, “有寫入資料的磁碟”〉所示,原本為空白的區塊現在存有資料。然而,僅檢閱這些圖案,我們無法確定常駐於此磁碟區的檔案數量。在一個區塊內也許僅有一個,但也可能有多個檔案,有些檔案佔用數個塊區。另一個需要注意的重點就是,已使用的區塊不需要形成一個接觸區域;已使用或尚未使用的區塊可以被散置。這稱之為儲存片(fragmentation)。儲存片可用於重設既有分割區的大小。
就像大部分的電腦相關的科技,硬碟的製造技術也改變很多。特別是,它們越來越大了。不是外觀上變大,而是容量增大以儲存更多資料。而且,這些額外的容量徹底地改變了硬碟的使用方式。
A.1.2. 磁碟分割區:將一個硬碟變成很多個
磁碟可劃分成分割區。每一個分割區可被視為一個不同的磁碟。這是經由增加磁碟分割表(partition table)所達成的。
為獨立的磁碟分割區分配磁碟空間的原因有幾種,比方說:
- 作業系統資料和使用者資料之間的邏輯區隔
- 使用不同檔案系統的能力
- 在一部機器上執行多重作業系統的能力
目前實體硬碟有兩種磁碟分割配置標準:Master Boot Record(MBR)和 GUID Partition Table(GPT)。MBR 是個搭配基於 BIOS 電腦使用的較舊磁碟分割方式。GPT 是個屬於 Unified Extensible Firmware Interface(UEFI)一部份的較新分割配置。此部分和〈節 A.1.3, “分割區中的分割區 - 延伸分割區的概論”〉主要詳述了 Master Boot Record(MBR)磁碟分割方案。欲取得更多有關於 GUID Partition Table(GPT)磁碟分割配置上的相關資訊,請參閱〈節 A.1.4, “GUID 分割表(GPT)”〉。
注意
在這個章節中的圖解上顯示的磁碟分割表是與實際磁碟分離的,這並不是完全正確的。實際上,分割區表是儲存在該磁碟的起始處,在任何的檔案系統或使用者資料前。但為求清楚起見,我們還是將它們分別表示在圖解上。

圖形 A.5. 含有磁碟分割表的硬碟
如〈圖形 A.5, “含有磁碟分割表的硬碟”〉所示,分割表分為四個區域,或是四個主要分割區。一個主要分割區為在硬碟上能夠含有一個邏輯驅動器(或區域)的分割區。每個區域皆可以儲存定義單一分割區的資訊。這代表分割表不可定義超過四個分割區。
每一個磁碟分割表的紀錄包含了分割區的許多重要特徵:
- 分割區在這個磁碟上起始與結束的點。
- 此分割區是否已「啟用」
- 分割區的類型
起始點與結束點定義了這個分割區的大小與在磁碟上的位置。這個「啟用」的旗標使用於某些作業系統的開機管理程式。換句話說,位於標示為「啟用」之分割區上的作業系統將會被啟動。
這個類型是一個用來識別該分割區所使用之容量的號碼。有些作業系統使用分割區類型來代表一種特定的檔案類型、用來表示該分割區與特定的作業系統相聯,或者用來指出該分割區包含了一個可開機的作業系統,亦或表示以上三種的某些結合。
欲查看包含單分割區的磁碟之範例,請參閱〈圖形 A.6, “含有單一分割區的磁碟”〉。

圖形 A.6. 含有單一分割區的磁碟
在大多數情況下,整個磁碟上只會有單一分割區,這延襲了使用分割區前的方法。磁碟分割表上只有使用一個項目,而它指向這個分割區的起始點。
我們已將此分割區標示為「DOS」類型了。雖然這只是幾種列在〈表格 A.1, “分割區類型”〉中的可能分割區種類之一,但是它對於此論題來講已足夠。
〈表格 A.1, “分割區類型”〉包含了一列常見(與不常見的)分割區類型,以及它們的十六進位數值。
表格 A.1. 分割區類型
分割區類型 | 數值 | 分割區類型 | 數值 |
---|---|---|---|
空的 | 00 | Novell Netware 386 | 65 |
DOS 12 位元 FAT | 01 | PIC/IX | 75 |
XENIX root | 02 | Old MINIX | 80 |
XENIX usr | 03 | Linux/MINUX | 81 |
DOS 16-bit <=32M | 04 | Linux swap | 82 |
Extended | 05 | Linux native | 83 |
DOS 16-bit >=32 | 06 | Linux extended | 85 |
OS/2 HPFS | 07 | Amoeba | 93 |
AIX | 08 | Amoeba BBT | 94 |
AIX 可開機的 | 09 | BSD/386 | a5 |
OS/2 Boot Manager | 0a | OpenBSD | a6 |
Win95 FAT32 | 0b | NEXTSTEP | a7 |
Win95 FAT32 (LBA) | 0c | BSDI fs | b7 |
Win95 FAT16 (LBA) | 0e | BSDI swap | b8 |
Win95 Extended (LBA) | 0f | Syrinx | c7 |
Venix 80286 | 40 | CP/M | db |
Novell | 51 | DOS access | e1 |
PReP Boot | 41 | DOS R/O | e3 |
GNU HURD | 63 | DOS secondary | f2 |
Novell Netware 286 | 64 | BBT | ff |
A.1.3. 分割區中的分割區 - 延伸分割區的概論
若四個分割區不足以滿足您的需求,您可使用延伸分割區(extended partition)來建立額外的分割區。若要這麼做,您需將分割區的類型設為「Extended」。
實質上,延伸分割區本身就像是個磁碟 — 它擁有一個自己的分割表,並指向了一或多個分割區(現稱為邏輯分割區,即為四個主要分割區的相反)。圖形 A.7, “含有延伸分割區的磁碟” 顯示了一顆磁碟含有一個主要分割區、一個含有兩個邏輯分割區的延伸分割區(以及一些尚未分割的可用空間)。

圖形 A.7. 含有延伸分割區的磁碟
如圖所示,主要分割區與邏輯分割區並不相同 — 硬碟上最多只能有四個主要分割區,但邏輯分割區的數量則沒有上限。然而,囿於Linux存取分割區的方式,您不可在同一顆硬碟上,定義超過十二個邏輯分割區。
A.1.4. GUID 分割表(GPT)
GUID Partition Table(GPT)是個較新、基於使用 Globally Unique Identifiers(GUID)的磁碟分割方案。GPT 主要開發來應付 MBR 分割表的限制,特別是可配置的磁碟空間的最大限制。和僅能配置 2.2 TB 以下儲存空間的 MBR 不同,GPT 可與更大的硬碟搭配使用;可配置的最大磁碟大小為 2 ZB。此外,GPT 就預設值支援建立達 128 個主要分割區。此數量能藉由分配更多空間給分割表來擴增。
GPT 磁碟使用邏輯區塊定址(Logical Block Addressing,LBA)並且分割區格式如下:
- 若要 MBR 磁碟保留向後相容性,GPT 的第一個磁區(LBA 0)會被預留來保存 MBR 資料,並且稱為“保護性 MBR(protective MBR)”。
- 主要的 GPT 表頭會從裝置的第二個邏輯區塊(LBA 1)上開始。該表頭包含了磁碟的 GUID、主要分割表的位置、次要 GPT 表頭的位置,以及其本身和主要分割表的 CRC32 checksum。它亦指定了表格的分割區項目數量。
- 主要的 GPT 表格就預設值包含了 128 個分割區項目,各個項目的大小皆為 128 個位元組,其分割區類型的 GUID 和獨特的分割區 GUID。
- 次要的 GPT 表格與主要的 GPT 表格相似。它會在主要分割表損毀時,被用來作為進行備援用的備用表格。
- 次要的 GPT 表頭位於磁碟的最後一個邏輯磁區上,並且可在主要表頭損毀時,使用來復原 GPT 資訊。它包含了磁碟的 GUID、次要分割表的位置,以及主要的 GPT 表頭、其本身與次要分割表的 CRC32 checksum,以及可使用的分割區項目數量。
重要
BIOS 開機分割區必須存取,開機載入程式才能成功安裝在包含了 GPT(GUID 分割表)的磁碟上。這包含了由 Anaconda 所初始化的磁碟。若磁碟早已包含了一個 BIOS 開機分割區,則您能夠重複使用它。