為什麽要分割?雖然可能找得到在單partition的系統上運作相當正常的 Linux 系統,但事實上, 在您的儲存媒體上分割成多個partition有很多好處,這樣做可能更容易組態。 管Linux可以在只定義一個很大的磁碟上運作良好是個事實,但將您的硬碟分割成至少四個主要
為什麽要分割 ? 雖然可能找得到在單 partition 的系統上運作相當正常的
Linux 系統,但事實上,
在您的儲存媒體上分割成多個 partition 有很多好處,這樣做可能更容易組態。
管 Linux 可以在只定義一個很大的磁碟上運作良好是個事實,但將您的硬碟分割成至少四個主要檔案
系統(root, usr, home, and swap)有一些優點 。其中包括:
第一,這可以減少檔案系統檢查所需時間 (當緊接在開機之後和當進手動的 fsck時),因為這些檢查可以
同步進行。(此外,千萬不要 執行 fsck 在一個已掛載的檔案系統!!! 您幾乎可以確定會感到遺憾。一個
例外是如果檔案系統被掛載成唯讀,這樣做就無害。) 同樣的,在多重 partition的系統上進行檔案系統
的檢查更簡單。例如,如果我知道我的 /home partition 有問題,我可以輕松地解掛載它,進行檔案系統
檢查,然後重新掛載這個已修好的檔案系統 (如果不行的話也可以利用救援磁片,重新啟動電腦進入單人
模式,然後進行修復)。
第二,有了多重 partition,如果您願意的話,可以將您的一個或多個 partition 掛載成唯讀。例如,
如果您決定在 /usr 下的所有東西即使是 root 也不能接觸,您可以將 /usr partition 掛載成唯讀。
最後,partition 提供的最重要好處是保護您的檔案系統。如果一個檔案系統出了問題 (不論是人為錯誤
或機器故障),在一個已分割的系統您可能失去單一檔案系統中的檔案。在一個未分割的系統,您可能在所
有的檔案系統失去它。
這個小事實可以變成大效益。例如,如果您的 root partition 損壞了而您不能開機,您基本上可以從救
援磁片開機,掛載您的 root partition,然後從其他 partition 可能它 (或從備份中回存; 參考第
8 章有關您可以如何備份及回存檔案的詳細說明),像是從home, 然後使用緊急開機磁片再一次重新啟動,
鍵入 “mount root=/dev/hda3” (假設包含您的臨時 root 檔案系統的 partition 是位於hda上的第三個
partition ) 然後完全啟動您的 Linux 系統。然後您可以在您未掛載的損壞 root partition執行 fsck 。
我有關於檔案系統災變的個人經驗,我很感激因為使用多重 partition 而使得損失有限。
最後,既然 Linux 允許您設置其他作業系統 (像是
Windows 95/98/NT, BeOS, 或其他您有的),然後雙
重- (或是三重-, ...) 啟動您的系統,為了這個好處您可能會想要設置其馀的 partition。典型地,您會想
要為每一個作業系統設置至少一個單獨的 partition 。 Linux 包含了一個大方的 boot loader (在 Intel
為基礎的系統叫做 LILO , 在 Alpha 上相同的東西叫做
MILO, Sparc 上叫做 SILO ) 它可以讓您指定在開機
時要用哪一個作業系統啟動,還有預設時間到時地預定啟動您最喜歡的作業系統 (大概是 Linux, 是吧 ?)
您應該根據您的需要分割一部硬碟(或一組)。在我對 Intel,Alpha, 及 Sparc 等平台的經驗,對於相當負
荷的系統,進行相當多的工作時(例如家中的桌上型系統,或是作為工作上的 Inte
.net 伺服器),我發現下列
的估計值對於決定 partition 大小時相當實用。
Given:
一部磁碟機 X Mb/Gb (eg. 2 Gb)
(或是超過一部磁碟機其總和為 X Mb/Gb)
Calculate:
(swap) 大約是主記憶體的兩倍 (eg. 64 Mb 系統有 128 Mb swap)
/ (root) 大約占可用空間 10% (eg. 200 Mb)
/home 大約占可用空間 20% (eg. 400 Mb)
/usr 占所有其馀空間 (eg. 1272 Mb)
/var (可選擇 -- 參考下面)
/boot (可選擇 -- 參考下面)
/archive (可選擇 -- 參考下面)
當然, 上面只是估計的方案。 明顯地您會按照您的 Linux 系統的用途而想要改變這些百分比。如果您想要
增加龐大的應用軟體像是 WordPerfect 或 Netscape,或是增加對日文字型的支援,增加一些 /usr 空間的
大小可能有些好處。
我好像總是在 /home 裡保留很多空間,所以果您的用戶並未用得很多 (或是您嚴格控制 quota 大小),或您
沒有提供 shell 帳號及個人網頁等,您可以減少 /home 空間並且增加 /usr。
這裡是有關各種掛載點及檔案系統資料的描述,這可以給您有關如何依
需求決定最佳 partition大小的較好
意見:
/ (root) - 用來存放像暫存檔等東西,Linux 核心及啟動影像檔,重要的二進位檔 (在 Linux 可以掛載到
/usr partition之前所需要的東西), 還有不重要的 log 檔,印表伫列及外寄的 e-mail,及使用者收到的
e-mail。當進行重要動作時也被用來作為暫存區,例如當從原始RPM檔建立 RPM 套件時。因此,如果您有很
多使用者及很多 e-mail,或考慮到您可能需要大量的暫存空間,您可能需要更多可用空間。這個 partition
應該使用預設值83 (Linux native)。此外,您可能將 boot flag 設定在這個 partition 以便將啟動資訊放
在這裡。
/usr/ -應該是最大的 partition, 因為 Linux 需要的大多數二進位檔,像是安裝的軟體,網頁,代理快取,
Samba 分享服務,有些安裝軟體的 log 檔等等都放在這裡。partition 型態應為預設值 83 (Linux native)。
/home/ -如果您沒有提供 shell 帳號給用戶,您不需要將這 partition 做得很大。除非您提供給用戶擺放他
們的網頁(像學校的網頁),這樣您就必須將這個 partition 設得大一點。再一次, partition型態應設定
為 83 (Linux native)。
(swap) - Linux 提供了所謂“虛擬記憶體”以建立比系統上實體記憶體更多的記憶體數量。 swap partition
和主記憶體一起被 Linux 使用以達到此目的。根據一般的原則,置換空間的大小至少應為系統上實體記憶體
的兩倍。
如果您的系統中有不只一台實體硬碟,可以建立多重 swap partition。這樣可以利用平行磁碟存取改善置換效
率。例如,在一 256 Mb 的系統有四台硬碟機,我可能建立四個 128 Mb swap partition,這有總共有 256 Mb RAM,
512 Mb 置換 (加起來總共有 768 Mb 可用的虛擬記憶體)。partition 型態要變更為 82 (Linux swap)。
注意: 有一個普遍的誤解就是Linux有 128 Mb 置換大小的限制。過去這是事實,但新的 Linux 發行版本,其大
小決定於您的硬體架構(例如,Intel 硬體的置換大小可達 2 Gb)。鍵入 ``man mkswap' 可以得到更多訊息。
/var/ (可選擇) - 您可能打算考慮進一步劃分您的 / (root) partition 。 將 /var 目錄用來儲存 runtime 是個
好主意,包括郵寄伫列 (外寄和收入的都是),列印工作,行程鎖定等。將這個目錄掛載在 / (root) 下面可能有一
點危險,因為所收到的大量 e-mail (舉例)可能突然灌滿 partition。當 / (root) partition 裝滿時壞事可能
發生 (例如. 系統崩潰 ?),讓 /var 在他自己的 partition 裡可以避免這個危險。我已經得到我分配給 / (root)
的任何空間,也許兩倍,並且然後對 / (root) 及對 /var建立分別的 partition。 這個 partition 型態應該保留
預設值 83 (Linux native)。
/boot/ (可選擇) - 在某些情況 (像是您的系統設定軟體的 RAID 組態)必須有有獨立的 partition 以便啟動
Linux 系統。這個 partition 將允許啟動,然後載入用來讀取其他檔案系統的驅動程式。這個 partition 的尺寸
可以小到幾 Mb; 我建議大約 10 Mb (必須有充足空間存放核心,起始的 RAMdisk映像檔,或許還有備份核心等)。
partition 型態應該保留為 83 (Linux native)。
/archive/ (選項) - 如果您還有多馀的空間,也許您還可以因為其他目錄得到一些好處,例如 /archive。您可
以使用 /archive 目錄存放備份的東西, 很大或不常用的檔案,samba 檔案服務,或其他您可以發現的用途。
partition 可以保留預設的 83 (Linux native),或是如果您想讓 Linux 和其他作業系統一起使用它,您可以變
更它的 ID,像是 6 (DOS 16-bit >=32M).
當加入新的硬碟時,更多的 partition可以加入新的硬碟機,依需求掛載在各個掛載點 -- 意指 Linux 系統永遠不
必擔心空間用完。例如, 如果在以後sda6 快要用滿了,我們可以加入另一個硬碟,於 /usr/local 大小合適的 partition
做一個掛載點 -- 然後將所有資料從 /usr/local 傳送到新硬碟。系統或應用軟體組件不會中斷,因為 Linux 會看見
/usr/local ,不論它位在哪裡。
為了給您一個別人可能怎樣設定 partition 的例,我已經使用下面的分割方案在一部 Intel 的系統上 (雙重開機,
Windows 95 和Linux):
Device Boot Begin Start End Blocks Id System
/dev/hda1 * 1 1 254 1024096+ 6 DOS 16-bit >=32M
/dev/hda2 255 255 782 2128896 5 Extended
/dev/hda5 255 255 331 310432+ 83 Linux native
/dev/hda6 332 332 636 1229728+ 83 Linux native
/dev/hda7 637 637 749 455584+ 83 Linux native
/dev/hda8 750 750 782 133024+ 82 Linux swap
第一個 partition, /dev/hda1,是一個dos格式的檔案系統,用來存放可供選擇的作業系統 (Windows 95)。這給了
我 1 Gb 空間在作業系統上。
第二個 partition, /dev/hda2, 是一個實體的 partition (叫做 “extended”) 包含了硬碟上剩下的其馀空間。
這只是用來封裝其馀的邏輯 partition(硬碟上可以有 4 個實體 partition ; 在我的例子中我需要超過 4 個 partition,
因此對於其馀的我必須使用邏輯 partition方案)。
從第三到第五個 partitions, /dev/hda5, /dev/hda6,及 /dev/hda7,全都是 e2fs-格式檔案系統用在 / (root),
/usr,以及 /home partition。
最後,第六個 partition, /dev/hda8 用作 swap partition。
另一個例子,這一次是有兩部硬碟的 Alpha的機器 (只有 Linux 單獨開機),我已經選擇下面兩個分割方案 :
Device Boot Begin Start End Blocks Id System
/dev/sda1 1 1 1 2046 4 DOS 16-bit <32M
/dev/sda2 2 2 168 346859 83 Linux native
/dev/sda3 169 169 231 130851 82 Linux swap
/dev/sda4 232 232 1009 1615906 5 Extended
/dev/sda5 232 232 398 346828 83 Linux native
/dev/sda6 399 399 1009 1269016 83 Linux native
/dev/sdb1 1 1 509 2114355 83 Linux native
/dev/sdb2 510 510 1019 2118540 83 Linux native
第一個 partition, /dev/sda1,是一個儲存 MILO boot loader的 DOS-格式的檔案系統。Alpha 的平台和 Intel
的系統有一個不一樣的啟動方式,因此 Linux 存放 boot 資料在一個 FAT partition。這個 partition 在允許圍
內可以可能的小 -- 在這裡只有2Mb。
第二個 partition, /dev/sda2,是一個用在 / (root) partition的 e2fs 格式檔案系統。
但三個 partition, /dev/sda3, 用來作 swap partition。
第四個 partition, /dev/sda4, 是一個 “extended” partition (前面的例子有更詳盡的說明)。
第五及第六個 partition, /dev/sda5 及 /dev/sda6,是分別用在 /home 及 /usr partitions 的 e2fs 格式檔案
系統。
第七個 partition, /dev/sdb1, 是用在 /archive partition的 e2fs 格式檔案系統。
第八及最後的 partition,/dev/sdb2,是用在 /archive2 partitions 的 e2fs 格式檔案系統。
在您設定好 partition 資料之後,需要將新的 partition 寫進磁碟中。然後 Red Hat 安裝程式重新載入 partition
table 到記憶體中,您就可以進行下一步的安裝步驟