跳轉到內容

Ict-創新/LPI/102.1

來自華夏公益教科書

102.1 設計硬碟佈局

[編輯 | 編輯原始碼]

考生應該能夠為 Linux 系統設計磁碟分割槽方案。


關鍵知識領域

  • 將檔案系統和交換空間分配到單獨的分割槽或磁碟。
  • 根據系統的預期用途定製設計。
  • 確保 /boot 分割槽符合啟動的硬體架構要求。
  • 瞭解 LVM 的基本功能。

安裝作業系統時,您需要設計硬碟分割槽的佈局並選擇用於格式化的檔案系統。您的選擇將取決於您擁有的海量儲存裝置的數量和大小以及計算機的使用目的。

Linux 在塊裝置上建立檔案系統。只能順序訪問資料的裝置,如鍵盤和滑鼠,是字元裝置,但硬碟等裝置可以隨機訪問資料,稱為塊裝置。每種型別的裝置都具有不同的功能,以滿足資料訪問方法的差異。Linux 核心的裝置對映器框架允許在塊裝置上建立虛擬塊裝置,檔案系統可以在其上建立。

虛擬塊裝置的優點是,Linux 可以提供加密驅動器和 RAID 裝置等功能,而無需專門的硬體。虛擬塊裝置允許建立 LVM(邏輯卷管理器)驅動器和使用 mdadm 的軟體 RAID 例如。

在本手冊中,我們將僅涵蓋直接對映到底層硬碟的塊裝置驅動程式。即,我們排除虛擬塊裝置驅動程式,並檢視直接在物理磁碟分割槽上建立檔案系統。

在討論 Linux 系統時,“分割槽”一詞在幾個不同的上下文中使用。有時它用於指代硬碟上的分割槽,而在其他情況下,它用於指代目錄的位置。例如,根分割槽(包含核心 Linux 配置檔案)實際上可能跨越多個磁碟分割槽,例如,如果它是在 LVM 塊裝置上建立的。

硬碟分割槽

[編輯 | 編輯原始碼]

最初,X86 機器硬碟僅支援最多 4 個分割槽,因為當時,這被認為對任何人的需求來說已經綽綽有餘。現在,在一個磁碟上擁有超過 4 個分割槽是很常見的。為了克服 4 個分割槽限制,以向後相容的方式,標準被擴充套件為允許建立其中一個主分割槽作為“擴充套件分割槽”,這允許在擴充套件分割槽上建立多個“邏輯分割槽”。

圖 102.1-1:硬碟分割槽

X86 架構最初支援的 4 個分割槽稱為主分割槽。如果您需要超過 4 個分割槽,那麼至少需要建立一個主分割槽作為擴充套件分割槽。然後,擴充套件分割槽可以擁有在其上建立的多個邏輯分割槽。

在 Linux 下,主分割槽被分配數字 1-4,具體取決於正在建立的主分割槽。擴充套件分割槽(只能有一個)被分配數字 4,邏輯分割槽被分配大於 4 的數字。因此,對於主聯結器上的主 PATA 驅動器,第一個主分割槽將是 /dev/hda1,第三個主分割槽將是 /dev/hda3,而擴充套件分割槽將是 /dev/hda4,第一個邏輯分割槽將編號為 /dev/hda5。可以跳過主分割槽編號,因此可以擁有以下磁碟佈局:/dev/hda1、/dev/hda3 以及 /dev/hda5 /dev/hda6 /dev/hda7,分別用於第一個主分割槽、擴充套件分割槽,然後是擴充套件分割槽上的兩個邏輯驅動器 (hda3)。

如果您打算擁有超過 4 個分割槽,請務必確保為其中一個主分割槽建立一個擴充套件分割槽,因為無法將主分割槽轉換為擴充套件分割槽。如果您需要擴充套件分割槽,並且所有主分割槽都已使用,則需要刪除其中一個主分割槽才能建立擴充套件分割槽。

常見的分割槽方案

[編輯 | 編輯原始碼]

您可能會問為什麼要對硬碟進行分割槽,在某些情況下,尤其是臺式計算機,可能不需要提供超過兩個分割槽。您始終需要至少兩個分割槽來滿足 Linux 處理虛擬記憶體的方式。虛擬記憶體是核心告訴其應用程式可用的記憶體量,這通常會超過可用的物理記憶體量。為了容納實際上並不存在的額外記憶體,核心使用硬碟空間作為虛擬記憶體。用於管理虛擬記憶體以及記憶體到磁碟和磁碟到記憶體交換的演算法超出了本手冊的範圍。需要了解的是,核心需要一個稱為交換空間的特殊磁碟分割槽來用於虛擬記憶體管理。

除了交換空間之外,還有其他使用額外分割槽的理由,尤其是在擁有多個磁碟的機器中。這些包括:防止日誌檔案和臨時檔案佔用太多磁碟空間,透過將讀寫操作拆分到不同磁碟上的分割槽來提高磁碟效能,規劃磁碟擴充套件以及為將來建立靈活的佈局。如果您有多個磁碟,將檔案系統拆分到多個磁碟上將有助於隔離系統部分,使其免受不同驅動器中磁碟故障的影響。即使是在只能容納一個驅動器的筆記型電腦的情況下,也有充分的理由建立靈活的磁碟佈局,例如,您可能需要在以後適應多啟動環境,或者使執行帶有虛擬硬碟的虛擬機器變得更容易。

但是,應注意不要建立太多分割槽,尤其是當您沒有利用 Linux 核心的虛擬塊裝置之一(如 LVM)時,這些裝置允許將磁碟分割槽動態分配給檔案系統,因為常見的問題是在一個分割槽上用完磁碟空間,而在另一個分割槽上仍有可用空間,因此請仔細規劃您的磁碟分割槽策略。


一些小型系統的常見磁碟分割槽


/boot 分割槽 通常為 50-100 MB,位於第一個分割槽,以確保所有核心都低於舊核心 BIOS 的 1024 個柱面限制。
交換 交換空間分配取決於可用的物理 RAM 量。關於交換空間分割槽最佳大小的爭論很多,尤其是因為大多數系統中可用的物理記憶體量正在增加,但一般經驗法則是使用可用 RAM 量兩倍,但建議最大約為 1 GB。
/ 根檔案系統分割槽包含其餘的 Linux 作業系統,通常應分配剩餘的磁碟空間。如今,大多數發行版將在邏輯分割槽上安裝根分割槽,以允許將來需要時建立超過 4 個分割槽的可能性。如果所有可用空間都已分配給根分割槽,則可能需要調整根分割槽的大小,以便在執行此操作之前釋放空間。
大型系統分割槽策略


/boot 分割槽 100 MB-250 MB 在更現代的計算機中,沒有 1024 個柱面限制,您可能希望為啟動分配更多空間以容納更多核心。將 /boot 分開可能很有必要,尤其是如果其餘檔案系統載入到啟動載入程式無法原生訪問的虛擬塊裝置上,例如根檔案系統位於軟體 RAID5 塊裝置上。
交換 如上所述
/home /home 目錄用於儲存所有使用者資料和文件。單獨的分割槽意味著備份資料更容易,並保護核心和其他核心系統檔案,使其不會因為使用者在其主目錄中儲存太多資料而耗盡磁碟空間。
/usr /usr 目錄包含使用者應用程式。通常,/usr 目錄的大小不會增長太多,並且相當靜態。
/var /var 目錄包含系統日誌檔案。日誌檔案,尤其是沒有正確維護的日誌檔案,會迅速填滿磁碟空間。透過將 /var 目錄放在不同的驅動器上,可以保護系統其餘部分免受磁碟空間耗盡的影響。
/tmp /tmp 目錄用於存放所有臨時檔案。該目錄應在重新啟動或使用者登出時清理,但通常會遺留一些檔案。隨著時間的推移,這會導致系統耗盡磁碟空間。將 /tmp 放在其自己的目錄中可以保護系統其餘部分免受這種情況的影響。
/ 檔案系統的其餘部分。

如何使用 fdisk 進行分割槽

[編輯 | 編輯原始碼]

在安裝過程中,您可能會看到一個圖形介面來對磁碟進行分割槽,但通常在建立或編輯驅動器分割槽時,您將使用一個名為 fdisk 的實用程式。

fdisk 命令將您希望分割槽的塊裝置作為引數。例如,要對 PATA 驅動器的主聯結器上的主驅動器進行分割槽,該命令將是

# fdisk /dev/hda

fdisk 實用程式提供了一個命令提示符,用於在塊裝置上建立和刪除分割槽。在提示符處按下“m”將提供一個可以在塊裝置上執行的可能操作列表。

命令操作選項

a 切換可啟動標誌

b 編輯 bsd 磁碟標籤

c 切換 dos 相容性標誌

d 刪除分割槽

l 列出已知分割槽型別

m 列印此選單

n 新增新分割槽

o 建立新的空 DOS 分割槽表

p 列印分割槽表

q 不儲存更改退出

s 建立新的空 Sun 磁碟標籤

t 更改分割槽的系統 ID

u 更改顯示/條目單位

v 驗證分割槽表

w 將表寫入磁碟並退出

x 額外功能(僅限專家)

建立分割槽

在命令提示符下鍵入“n”將提示您是否要建立擴充套件分割槽或主分割槽。

命令操作

e 擴充套件

p 主分割槽(1-4)

通常,最好至少建立一個擴充套件分割槽。建立擴充套件分割槽後,後續建立新分割槽的請求將提示您是否要建立邏輯分割槽或主分割槽,假設您沒有建立最大數量的主分割槽。

命令操作

l 邏輯(5 或以上)

p 主分割槽(1-4)

分割槽硬碟後,您需要決定分割槽的型別。要獲取分割槽型別列表,請在 fdisk 提示符下鍵入“l”。這將列出大量潛在的分割槽型別,但您感興趣的型別是

82 Linux 交換區

83 Linux

8e Linux LVM

85 Linux 擴充套件

出於本手冊的目的,我們只考慮分割槽 ID 82 和 83。型別 8e 和 85 是用於建立虛擬塊裝置的分割槽型別的示例。


使用檔案系統格式化分割槽

檔案系統是在硬碟上以計算機可訪問的形式儲存資料的一種方式。不同的檔案系統具有不同的演算法和結構來確定資料和索引資訊(計算機用來查詢資料)的儲存位置。與檔案系統組織相關的元資料儲存在磁碟上的稱為超級塊的區域中。超級塊包含計算機在磁碟上查詢檔案和資料的關鍵資訊。為了防止檔案系統在超級塊損壞時變得不可訪問,Linux 檔案系統在定義的偏移量處儲存了超級塊的多個副本。一些流行的 Linux 檔案系統包括

ext2 – Linux 機器上最古老且支援最廣泛的檔案系統。

ext3 - ext2 檔案系統的擴充套件,它添加了日誌記錄支援

reiserfs - 由 Hans Reiser 編寫的增強型日誌記錄檔案系統

有關檔案系統以及如何建立它們的更多資訊,請參見第 104.1 節


管理交換空間

我們在本章前面介紹了交換空間。交換空間不包含檔案系統,而是由 Linux 核心以原始模式訪問。繞過檔案系統具有一些速度優勢,這對交換空間至關重要。在建立用作交換空間的磁碟分割槽後,您需要使用以下命令啟用它

swapon [裝置] 例如 swapon /dev/sda2

在系統安裝過程中,這將自動為您完成。可以使用 swapon 顯示有關交換分割槽的的資訊。

swapon -s # 顯示可用的交換分割槽


掛載檔案系統分割槽

建立檔案系統分割槽後,需要掛載它才能使其對系統可用。掛載點使檔案系統分割槽在根目錄(/)下的定義明確的位置可用。Linux 遵循定義明確的檔案系統層次結構,在正確掛載點掛載分割槽對於系統的正常執行至關重要。

掛載點在 /etc/fstab 配置檔案中定義。

瞭解 LVM 的基本功能

什麼是 LVM?

LVM 是 Linux 作業系統的邏輯卷管理器,它是一種將硬碟空間分配到邏輯卷中的方法,這些邏輯卷可以輕鬆調整大小,而不是分割槽。LVM 有兩個版本

  • LVM 2 – LVM 的最新版本,適用於 Linux。LVM 2 向後相容使用 LVM 1 建立的卷。LVM 2 使用裝置對映器核心驅動程式。裝置對映器支援在 2.6 核心樹中,並且有針對當前 2.4 核心的補丁程式可用。
  • LVM 1 – 2.4 系列核心中的版本。

一個或多個硬碟驅動器分配給一個或多個物理卷,但物理卷不能跨越多個驅動器。物理卷組合成邏輯卷組,不包括引導分割槽。引導分割槽不能包含在邏輯卷組中,因為這會使引導載入程式難以讀取它。因此,如果您的根 / 分割槽位於邏輯捲上,您應該確保建立一個單獨的 /boot 分割槽,並且該分割槽不屬於任何卷組。由於物理卷不能跨越多個驅動器,因此要跨越多個驅動器,請為每個驅動器建立一個或多個物理卷,然後透過邏輯卷組將它們連結在一起。.

我們從底部開始,或多或少。

物理介質

物理這個詞簡單地指硬碟或分割槽。例如,/dev/hdc、/dev/hdc1、/dev/sda。

物理卷 (PV)

PV 無非是物理介質或硬碟,添加了一些 LVM 可以識別的管理資料。


+ -[ Physical Volume ]- +
| PE | PE | PE | PE |
+-----/dev/hda1-----+

物理擴充套件 (PE)

物理擴充套件只是大塊,通常大小為兆位元組。卷組 (VG) :- VG 由多個物理擴充套件組成(可能來自多個物理卷或硬碟)。一般可以認為 VG 由多個硬碟組成(例如 /dev/hda 和 /dev/sda),但更準確地說,它是由可能由多個硬碟提供的 PE 組成


         + - - - - - - - - [ Volume Group ] - - - - - - - +
 |  +-----[PV]-----+  +-----[PV]------+  |
 |  | PE | PE | PE |  | PE | PE | PE  |  |
 |  +-- /dev/sda1--+  +---/dev/sdb1---+  |
         + - - - - - - - - - - - - - - - - - - - - - - - - - - - -+     

邏輯卷 (LV) 邏輯卷是我們工作的最終結果,我們將在那裡儲存資訊。這等同於分割槽的歷史概念。


         + - - - - - - - [ Volume Group ] - - - - - - - - - - -+
 |  +--[PV]--------+  +--[PV]---------+  |
 |  | PE | PE | PE |  | PE | PE | PE  |  |
 |  +--+---+---+---+  +---+--+----+---+  |
 |     |   |   | +------|    |    |      |
 |     |   |   | |           |    |      |
 |   +-+---+---+-+      +----+----+--+   |
 |   |  Logical  |      |  Logical   |   |
 |   |  Volume   |      |   Volume   |   |
 |   |           |      |            |   |
 |   |  /home    |      |    /opt    |   |
 |   +-----------+      +------------+   |


這向我們展示了兩個檔案系統,跨越兩個磁碟。/home 檔案系統包含 4 個物理擴充套件,/opt 檔案系統包含 2 個。基本 LVM 命令:以下命令可用於顯示物理卷、卷組和邏輯卷狀態:pvdisplay、vgdisplay 和 lvdisplay。

一個說明 LVM 有用性的場景:假設您有一個 20GB 的磁碟,您使用 15GB 建立“/home”分割槽,使用 1GB 建立 /var。想象一下,您空間不足,決定需要在“/home”中使用 18GB。使用舊的分割槽概念,您必須擁有至少 20GB 的另一個驅動器。然後,您可以新增磁碟,建立一個新的 /home,並將現有資料複製過去。但是,使用 LVM 設定,您只需將空閒空間重新分割槽即可擴充套件,或者只需新增一個 5GB(或更大)的磁碟,並將它的儲存單元新增到“/home”分割槽中。其他工具允許您調整現有檔案系統的大小,因此您只需調整它的大小以利用更大的分割槽大小,您就可以恢復正常。LVM 甚至可以建立自己的“快照”,使您能夠備份非移動目標。

它能為我做什麼?

  • LVM == 邏輯卷管理器
  • 靈活性
  • 高可用性
  • 可靠性
  • LVM 的主要優點
  • 任意“分割槽”調整大小(靈活性)。
  • 輕鬆遷移資料 - 在執行的系統上交換驅動器(可用性)。

檔案系統此檔案系統可以是您想要的任何檔案系統:標準 ext2、ReiserFS、NWFS、XFS、JFX、NTFS 等……對於 Linux 核心,普通分割槽和邏輯卷之間沒有區別。

一些 LVM 術語和命令

顯示 LVM 版本:lvm 版本建立物理磁碟:pvcreate /dev/sda pvcreate /dev/sdb pvcreate /dev/sdc1 pvcreate /dev/sdc2

顯示已分配的物理卷:pvscan pvdisplay lvm pvs

設定卷組:vgcreate vg_name /dev/sda /dev/sdb /dev/sdc1 /dev/sdc2

顯示卷組:vgdisplay lvm vgs

顯示邏輯卷:lvdisplay lvm lvs

建立邏輯卷:將大小設定為 1GB lvcreate -L1G -n lv_name vg_name


使用的檔案、術語和實用程式:* / (root) 檔案系統

  • /var 檔案系統
  • /home 檔案系統
  • 交換空間
  • 掛載點
  • 分割槽


上一章 | 下一章

華夏公益教科書