Gentoo 安装步骤介绍(4)
时间:2006-01-01 来源:nig.daemon
4.準備磁碟
內容:- 介紹區塊裝置
- 策劃一個分割區計畫
- 使用 fdisk 分割您的磁碟
- 建立檔案系統
- 掛載
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)。
分割區總共有三類:primary,extended 和 logical。
一個 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,﹍):
原始碼 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就不會再急速的增加。關於/var,大部份的人或許會認為分配給 /var 的空間太大。但是,Gentoo 將會在 /var/tmp/portage 內進行所有檔案的編譯,所以如果您不想編譯大程式的話至少要有 1G,而如果打算同時編譯大的程式如 KDE 和 OpenOffice.org,那麼 /var 最好是有 3G 以上的剩餘空間。
4.c. 使用 fdisk 分割您的磁碟
以下部份將解釋如何使用之前所策劃的進行分割:
分割區 | 說明 |
/dev/hda1 | 開機分割區 |
/dev/hda2 | Swap 分割區 |
/dev/hda3 | 主分割區(Root) |
請按照個人所需更改您的分割架構。
查看目前的規劃的分割區
fdisk 是一個強大並且受歡迎的磁碟分割工具。使用您的磁碟上的 fdisk (按照我們的範例,我們將使用/dev/hda):
原始碼 2: 開始 fdisk |
# fdisk /dev/hda
|
當 fdisk 開始後,您將會看到以下的畫面:
原始碼 3: fdisk 介面 |
Command (m for help): |
按下 p 顯示您的磁碟目前的分割區設定:
原始碼 4: 範例分割區設定 |
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:
原始碼 5: 刪除一個分割區 |
Command (m for help): d Partition number (1-4): 1 |
這個分割區將會被顯示為刪除。當您輸入 p 的時候您將會看不到所刪除的分割區,但是只會在您儲存後發揮功效。如果誤殺了某個分割區然後想要重來,按下q 然後 enter 您的分割區將不會被刪除。
現在,假設您想要刪除所有系統上的分割區,請先按 d 然後要刪除的分割區編號再按下 p 刷新分割區列表。最後您將會將所有的分割區刪除:
原始碼 6: 空的分割區列表 |
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 大小的分割區:
原始碼 7: 建立開機分割區 |
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 時,您將會看到以下的顯示:
原始碼 8: 已建立的開機分割區 |
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 應該會看到類似以下的畫面:
原始碼 9: 建立 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 您應該會看到類似以下的列表:
原始碼 10: 建立主分割區後的列表 |
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。
原始碼 11: 儲存然後離開 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,您將要使用:
原始碼 12: 將檔案系統套用到分割區上 |
# mke2fs /dev/hda1 # mke2fs -j /dev/hda3 |
現在檔案系統已經建立到我們剛建立完成的分割區上了(或是logical 容量)。
啟用 Swap 分割區
mkswap 是用來起始 swap 分割區的指令:
原始碼 13: 建立 swap 簽名 |
# mkswap /dev/hda2
|
要啟用 swap,使用 swapon 指令:
原始碼 14: 啟動 swap |
# swapon /dev/hda2
|
現在使用上面的指令建立然後啟動 swap。
4.e. 掛載
現在您的分割區已經起始和放置檔案系統了,接下來我們該把這些分割區掛載起來。使用 mount 的指令。不要忘了建立相關的掛載目錄,以我們的分割來說只掛載主分割區和開機分割區:
原始碼 15: 掛載分割區 |
# 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 繼續。