Gentoo Logo

免責聲明: 這份文件已經失效,不再繼續被維護。


[ << ] [ < ] [ 首頁 ] [ > ] [ >> ]


4. 準備磁碟

內容:

4.a. 介紹區塊裝置

區塊裝置(Block Devices)

我們將仔細的介紹 Gentoo Linux 和 整體的Linux 的磁碟方式,包括 Linux 檔案系統, 分割區,和區塊裝置。然後,當您了解磁碟和檔案系統,您將會學到如何為您的 Gentoo Linux 安裝設定分割區和檔案系統。

首先,我們將要介紹 區塊裝置。最有名的區塊裝置大概就是代表 Linux 系統上的 第一個 IDE 磁碟 /dev/hda,如果您的系統使用 SCSI 或 SATA 磁碟,那您 的第一個磁碟將會是 /dev/sda

以上的區塊裝置代表著磁碟的介面。使用者可以不用擔心您的磁碟是否為 IDE,SCSI 或是其他,並且使用程式來使用這些區塊裝置。這個程式可以在磁碟上寫入多個隨機的 512 byte 區塊。

分割區

理論上雖然您可以使用整個磁碟放置您的 Linux 系統,但是實務上幾乎沒有人這麼做。 整個磁碟將會被分為其他小一點的大小,並可以更好的管理。x86 的系統叫他 分割區(partitions)

分割區總共有三類:primaryextendedlogical

一個 primary 分割區是一個包含 MBR(Master Boot Record)的分割區。一個 MBR 非常小(512 byte)只能定義成四個分割區(從 /dev/hda1/dev/hda4)。

一個 extended 分割區是一個特別的 primary 分割區(意思是說 extended 分割區 一定要從四個可用的 primary 分割區內擴展)而可以建立更多的分割區。這種分割區原本 是不存在的,但是四個分割區太少了,它會誕生是因為要擴展而不會遺失反向相容。

一個 logical 分割區是在 extended 分割區內。他們的定義不是放在 MBR, 但是是放在 extended 分割區。

進階儲存

x86 的安裝光碟支援 EVMS 和 LVM2。EVMS 和 LVM2 將會增強您設定分割區的彈性度。在安 裝過程中,我們將會將焦點放在 "正常" 的分割方式,只是為了讓您知道 EVMS 和 LVM2 有 被支援。

4.b. 策劃一個分割區計畫

預設的分割區策劃

如果您不打算策劃一個分割計畫,您可以使用手冊內的分割規劃:

分割區 檔案系統 大小 說明
/dev/hda1 ext2 32M 開機分割區(Boot partition)
/dev/hda2 (swap) 512M Swap 分割區
/dev/hda3 ext3 磁碟剩下的空間 根 或是 主分割區(Root partition)

如果您想知道一個分割區該要多大,或是需要幾個分割區,請繼續閱讀。不然請從 使用 fdisk 分割您的磁碟 開始分割。

多少和多大?

多少分割區通常是按照您的使用環境。舉例來說,如果您有很多個使用者,您就會因為安全 問題和能夠簡易備份將您的 /home 分開。如果您將 Gentoo 安裝為郵件伺服 器那您的 /var應該分開,因為郵件通常是放在 /var。選擇好 的檔案系統將會提昇您的效能。遊戲伺服器因為大多數的遊戲伺服器都是安裝在 /opt 所以通常會將 /opt 分開。原因很和 /home 類似:安全問題和備份。你一定會想分給 /usr 比較 大的空間:不只是因為他包含大部份的程式,Portage 樹,除了他儲存的各種原始碼知外 ,本身需要 500 Mb 的空間。

如您所見,不同的方式是彼此相依的。不同的分割區或是容量將會有以下優點:

  • 您可以選擇適合個別分割區的檔案系統提高效能
  • 您的系統不會因為一個分割區或是容量失效而完全終止
  • 如果必要,檔案系統檢查所費的時間將會減少,並且可以以平行方式進行(雖然這個優點 比較適合多分割區)
  • 安全性可以因為某些分割區以唯讀掛載而加強,nosuid(setuid機會被略過), noexec(執行檔將會被掠過)等等也可以。

但是,多個分割區也有一個很大的缺點:如果沒有完好的設定,您將會看到一個分割區上的 空間不夠或是一個分割區上的空間太多。SCSI 和 SATA 也有 15 個分割區的限制。

以範例來分割,我們將使用一個 20GB 的硬碟,為手提電腦的示範(包含著網頁伺服器, 郵件伺服器,gnome,﹍):

原始碼 2.1: 檔案系統使用範例

$ df -h
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/hda5     ext3    509M  132M  351M  28% /
/dev/hda2     ext3    5.0G  3.0G  1.8G  63% /home
/dev/hda7     ext3    7.9G  6.2G  1.3G  83% /usr
/dev/hda8     ext3   1011M  483M  477M  51% /opt
/dev/hda9     ext3    2.0G  607M  1.3G  32% /var
/dev/hda1     ext2     51M   17M   31M  36% /boot
/dev/hda6     swap    516M   12M  504M   2% <not mounted>
(預留 2GB 空間)

這邊的 /usr 的分割區是快用完的(佔用83%),但是當所有的軟體已經安裝 完畢後,/usr就不會再急速的增加。雖然分配幾 GB 的空間給 /var 看起來好像很大,但是 Portage 預設使用這裡來編譯套件。如果想要 給 /var 一個比較合理的大小如 1GB,你需要改變 /etc/make.conf 中的 PORTAGE_TMPDIR 變數指向有足夠大小的分割 區,才足以編譯像 OpenOffice 之類大的套件。

4.c. 使用 fdisk 分割您的磁碟

以下部份將解釋如何使用之前所策劃的進行分割:

分割區 說明
/dev/hda1 開機分割區
/dev/hda2 Swap 分割區
/dev/hda3 主分割區(Root)

請按照個人所需更改您的分割架構。

查看目前的規劃的分割區

fdisk 是一個強大並且受歡迎的磁碟分割工具。使用您的磁碟上的 fdisk (按照我們的範例,我們將使用/dev/hda):

原始碼 3.1: 開始 fdisk

# fdisk /dev/hda

fdisk 開始後,您將會看到以下的畫面:

原始碼 3.2: fdisk 介面

Command (m for help): 

按下 p 顯示您的磁碟目前的分割區設定:

原始碼 3.3: 範例分割區設定

Command (m for help): p

Disk /dev/hda: 240 heads, 63 sectors, 2184 cylinders
Units = cylinders of 15120 * 512 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1             1        14    105808+  83  Linux
/dev/hda2            15        49    264600   82  Linux swap
/dev/hda3            50        70    158760   83  Linux
/dev/hda4            71      2184  15981840    5  Extended
/dev/hda5            71       209   1050808+  83  Linux
/dev/hda6           210       348   1050808+  83  Linux
/dev/hda7           349       626   2101648+  83  Linux
/dev/hda8           627       904   2101648+  83  Linux
/dev/hda9           905      2184   9676768+  83  Linux

Command (m for help): 

這個磁碟包含著七個 Linux 檔案系統(顯示為 "Linux")和一個 swap 分割區(顯示為 "Linux Swap")。

移除所有分割區

我們將要先把已經存在的分割區一除掉。按下 d 刪除。舉例來說要刪除已經存在的 /dev/hda1

原始碼 3.4: 刪除一個分割區

Command (m for help): d
Partition number (1-4): 1

這個分割區將會被顯示為刪除。當您輸入 p 的時候您將會看不到所刪除的分割區, 但是只會在您儲存後發揮功效。如果誤殺了某個分割區然後想要重來,按下q 然後 enter 您的分割區將不會被刪除。

現在,假設您想要刪除所有系統上的分割區,請先按 d 然後要刪除的分割區編號 再按下 p 刷新分割區列表。最後您將會將所有的分割區刪除:

原始碼 3.5: 空的分割區列表

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System

Command (m for help):

現在您的分割區列表已經空了,我們可以開始建立分割區了。我們將會使用之前所討論到的 預設的分割計畫。當然,如果您有自己的分割計畫,請按照我們的方式以此類推!

建立開機分割區

我們將要先建立一個小的開機分割區。按下 n 建立一個分割區然後按下 p 選擇 primary partition,再按下 1 選擇第一個 primary 分割區。當您看到 first cylinder 時,按下 enter,然後看到 last cylinder 輸入 +32M 來建立一 個 32 Mbyte 大小的分割區:

原始碼 3.6: 建立開機分割區

Command (m for help): n
Command action
  e   extended
  p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-3876, default 1): (按下 Enter)
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-3876, default 3876): +32M

現在,當您按下 p 時,您將會看到以下的顯示:

原始碼 3.7: 已建立的開機分割區

Command (m for help): p

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1          1        14    105808+  83  Linux

我們將需要將這個分割區設定為可開機。按下 a 的開關然後選擇 1。讓可 開機旗標放在這個分割區上。如果您再按一次 p,您將會看到 "Boot" 欄位有一個 *

建立 Swap 分割區

現在我們需要建立 swap 分割區。按下 n 建立一個新的分割區,然後 p 告訴 fdisk 您要一個 primary 分割區。然後按下 2 建立第二個 primary 分割區 。當您看到 first cylinder,按下 enter。然後當您看到 last cylinder,輸入 +512M 來建立一個 512MB 大小的分割區。當您完成的時候,按下 t 來選 擇分割區類別。接著輸入 82 將分割區類別選為 "Linux Swap"。當您完成的時候 ,按下p 應該會看到類似以下的畫面:

原始碼 3.8: 建立 swap 分割區後的列表

Command (m for help): p

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1 *        1        14    105808+  83  Linux
/dev/hda2         15        81    506520   82  Linux swap

建立主分割區(Root)

最後,我們需要建立主分割區。按下 n 建立一個新的分割區,然後 p 告訴 fdisk 您要一個 primary 分割區。然後輸入 3 建立第三個 primary 分割區, 在我們的例子為 /dev/hda3。當您看到 first cylinder,按下 enter。當您 看到 last cylinder,按下 enter 來使用剩餘的空間。完成這些步驟後,按下 p 您應該會看到類似以下的列表:

原始碼 3.9: 建立主分割區後的列表

Command (m for help): p

Disk /dev/hda: 30.0 GB, 30005821440 bytes
240 heads, 63 sectors/track, 3876 cylinders
Units = cylinders of 15120 * 512 = 7741440 bytes

Device Boot    Start       End    Blocks   Id  System
/dev/hda1 *        1        14    105808+  83  Linux
/dev/hda2         15        81    506520   82  Linux swap
/dev/hda3         82      3876  28690200   83  Linux

儲存分割區規劃

要儲存然後離開 fdisk,按下 w

原始碼 3.10: 儲存然後離開 fdisk

Command (m for help): w

現在您的分割區已經建立完成了,您可以從 建立檔案系統 繼續。

4.d. 建立檔案系統

介紹

現在您的分割區已經建立完成了,我們將需要把檔案系統放到它們上面。如果您不在乎該使 用那個檔案系統,並且滿意手冊內我們使用的,請從 將檔案系統套用到分割區上 繼續。不然請繼續閱讀關於 可用的檔案系統。

檔案系統?

Linux 核心支援多個檔案系統,我們將解釋 ext2,ext3,ReiserFS,XFS 和 JFS。因為這 些是最常使用的檔案系統。

ext2 是一個舊的 Linux 檔案系統,沒有日誌功能. 啟用的時間通常需要很久。目前有許多 日誌型態 的檔案系統可以以更快的速度及更好的效率完成系統啟用和檢查。

ext3 為 ext2 的日誌版,提供了 metadata 日誌系統 並且可以快速地使用日誌系 統復原。ext3 是個相當不錯並且可靠的檔案系統. 它有額外的 hashed b-tree 索引功能 ,開啟他後幾乎任何情況內都是高效能。你可以在 mke2fs 指令加上 -O dir_index 開啟這個功能。簡單來說,ext3 是一個很傑出的檔案系統。

ReiserFS 整體來說是個相當不錯的系統,它處理小型檔案(少於4kb)時效能會比 ext2 和 ext3 來的好。他使用的是 B*-tree 為基礎的檔案系統. 另外也能很有效率地處理 大型檔案。Linux 核心版本 2.4.18+ 後,ReiserFS 是一個相當有值得推薦的系統, 從很少 ,到很多檔案。ReiserFS 都可以處理的非常好。開機分割區並不建議使用此檔案系統。

XFS 是一個 metadata 日誌系統,並且擁有完整的功能及針對延展性最佳化。如果 您使用高速 SCSI或是纖維的儲存裝置,並且有持續不斷的電源供應,我們才推薦您使用 XFS。 如果沒有,請使用其他檔案系統。因為 XFS 大量地將要轉送的資料快取在記憶體中 ,設計不好的程式(的確有一些程式在寫入磁碟時不做一般的預防措施)可能當系統意外斷 電時損失大量的資料。

JFS 是 IBM 發展的高效能日誌系統。目前雖然已經可以算是個完成品,關於他的穩定度並 沒有太多的優點及缺點。

將檔案系統套用到分割區上

要把檔案系統建立到一個分割區或是容量上可使用一些為個別檔案系統所設計的工具:

檔案系統 建立指令
ext2 mke2fs
ext3 mke2fs -j
reiserfs mkreiserfs
xfs mkfs.xfs
jfs mkfs.jfs

以我們的範例來說,開機分割區(在我們的例子裡為 /dev/hda1)為 ext2 和 主分割區(在我們的例子為 /dev/hda3)為 ext3,您將要使用:

原始碼 4.1: 將檔案系統套用到分割區上

# mke2fs /dev/hda1
# mke2fs -j /dev/hda3

現在檔案系統已經建立到我們剛建立完成的分割區上了(或是logical 容量)。

啟用 Swap 分割區

mkswap 是用來起始 swap 分割區的指令:

原始碼 4.2: 建立 swap 簽名

# mkswap /dev/hda2

要啟用 swap,使用 swapon 指令:

原始碼 4.3: 啟動 swap

# swapon /dev/hda2

現在使用上面的指令建立然後啟動 swap。

4.e. 掛載

現在您的分割區已經起始和放置檔案系統了,接下來我們該把這些分割區掛載起來。使用 mount 的指令。不要忘了建立相關的掛載目錄,以我們的分割來說只掛載主分割區 和開機分割區:

原始碼 5.1: 掛載分割區

# mount /dev/hda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/hda1 /mnt/gentoo/boot

注意: 如果您要將 /tmp 放在不同的分割區,記得掛載後將它的權限更改為: chmod 1777 /mnt/gentoo/tmp。這也適用於 /var/tmp

我們將需要掛載 proc 檔案系統(一個核心的虛擬介面)並且把它放在 /proc 。但是我們先需要將我們的檔案放到分割區內。

現在從 使用安裝檔安裝 Gentoo 繼續。


[ << ] [ < ] [ 首頁 ] [ > ] [ >> ]


列印

View all

最後更新 2006年 1月 1日

這份文件的原始版本已不再被維護

大綱: 為了要安裝 Gentoo,您一定要建立一些所需的分割區。這章的內容將為您解釋如何設定磁 碟分割。

Sven Vermeulen
Author

Roy Marples
Author

Daniel Robbins
Author

Chris Houser
Author

Jerry Alexandratos
Author

Seemant Kulleen
Gentoo x86 Developer

Tavis Ormandy
Gentoo Alpha Developer

Jason Huebel
Gentoo AMD64 Developer

Guy Martin
Gentoo HPPA developer

Pieter Van den Abeele
Gentoo PPC developer

Joe Kallar
Gentoo SPARC developer

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Tobias Scherbaum
Editor

Xavier Neys
Editor

Grant Goodyear
Reviewer

Gerald J. Normandin Jr.
Reviewer

Donnie Berkholz
Reviewer

Ken Nowack
Reviewer

Lars Weiler
Contributor

YiDa Chiang
Translator

Eternity
Translator

Frid Hou
Translator

Joseph Yen
Translator

LY Lai
Translator

dxcdxc
Translator

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.