Gentoo LVM2 installation
1.
簡介
本指南使用兩個 IDE 硬碟當作範例。這表示,您可能必須根據自己的需要設定相關的磁碟、分割區名稱、分割區大小等資料。
警告:
這篇指南並沒有作為 LVM2 入門指南的意思。它只是一則 的小筆記,在 Gentoo 安裝手冊 第一章下附屬的小筆記,所以請務必在您動手之前閱讀 Gentoo
安裝手冊。
|
系統需求
如果您正要安裝的是一套全新的 Gentoo 系統,那麼您必須先取得支援 LVM2 的開機光碟,例如
Gentoo LiveCD。您可以在鏡像站 的
/releases/x86/2005.1/livecd 下找到這些 LiveCD,包含 x86
與其它系統架構。
如果您要在正在執行的系統中空餘的磁碟上安裝 LVM2,那麼您必須先啟動 LVM2
模組(dm-mod)這個模組在 gentoo-sources 以及
vanilla-sources 中都有支援。如何編譯您的核心並驅動 LVM2 會在稍後提到。
並非所有 Gentoo 提供的 2.4 核心都支援 LVM2!
警告:
在 2005.0 安裝 CD 中的 LVM2 被錯誤的動態連結到一個函式庫(libgpm),而這個函式庫位於
/usr。這表示,您不能將 /usr 放在 LVM 環境中。請更新到最新版,或安裝 2.0.33(沒有 -r1),它們都是靜態連結的版本。
|
分割區
我們的範例系統上有兩個 IDE 硬碟,並且會被分成下面這樣:
- /dev/hda1 -- /boot
- /dev/hda2 -- (置換分區)
- /dev/hda3 -- /
- /dev/hda4 -- 會被用作 LVM2
- /dev/hdb1 -- 會被用作 LVM2
重要:
請特別注意分割區的名稱,畢竟 a 跟 b 常常被看錯,那些數字也蠻讓人混亂的。走錯一步,您可能會覆蓋錯誤分區的資料。我警告過您了!
|
好啦!準備開始了...
2.
安裝
首先照著手冊作,直到第四章 - 準備磁碟:
使用手冊中提到的 fdisk,不過將它分成上面範例提到過的那樣。那只是個範例,請調整它以符合您的需求。
製作個小小的 /boot 分區(hda1)。在這個範例中,/boot 不會被 LVM2 管理。這個分區裡面放著您的開機載入程式以及核心。我想 64MB 的容量應該夠放不少核心了。
製作個置換分區(hda2),然後啟動它。
原始碼 2.1: 啟動置換分區 |
# mkswap /dev/hda2
# swapon /dev/hda2
|
建立個 /(根)分區(hda3)。如果您有興趣嘗試將根分區放在 LVM 的管理之下(雖然我們不建議這麼作),您可以參考本指南最後列出的資源,那邊有個 mini-howto 告訴您該如何作。如果您會將/opt /usr /home /var 和 /tmp 放在
LVM2 容量群組(VG)之下的話,根分區也不用太大。在我們的例子中,150MB 就夠了。
注意:
我們不建議您將下列目錄放在 LVM2 分區上:/etc /lib /mnt /proc /bin
/sbin /dev /root。這樣的話,當有什麼糟糕的事情發生的時候,您還是可以登入您(腿被打斷,但是對 root 使用者來說還是有點用)的系統。
|
假設 /boot、置換分割區、以及根分割區沒有把整個硬碟都用光,作個第四個分割區,然後將它的類型設成 8e(Linux LVM)。如果您有其他想給 LVM 用的磁碟,請在上面建立一個分割區,然後把類型都設成 8e。
注意:
由於現在的硬碟都非常大,您也許會想將您的硬碟分成較小的分區,而不是弄成一個大分區然後全部丟給 LVM2。LVM2 讓增加容量變得很簡單,所以您可以留下一些未配置的分割區,天知道您後來會不會想在 LVM2 以外的地方用到他們。簡單的說,不要在您確定要幹麼之前把磁碟分區用光。一位投稿者就將他的 160GB 硬碟分成了 8 個 20GB 的分割區。
|
載入 LVM2 dm-mod 模組。
原始碼 2.2: 載入 LVM2 模組 |
# modprobe dm-mod
|
掃描並啟動 LVM:
原始碼 2.3: 啟動 LVM |
# mkdir -p /etc/lvm
# echo 'devices { filter=["r/cdrom/"] }' >/etc/lvm/lvm.conf
# vgscan
Reading all physical volumes. This may take a while...
No volume groups found
# vgchange -a y
|
準備磁碟分區。
原始碼 2.4: 準備磁碟分區 |
# pvcreate /dev/hda4 /dev/hdb1
No physical volume label read from /dev/hda4
Physical volume "/dev/hda4" successfully created
No physical volume label read from /dev/hdb1
Physical volume "/dev/hdb1" successfully created
|
設定容量群組。容量群組是一些實體分區單位的邏輯集合。
在我們的例子裡,/dev/hda1、/dev/hda2、和
/dev/hda3 是 /boot、置換分區、以及根目錄分區,所以我們要合併 /dev/hda4 以及 /dev/hdb1。這可以用一個指令達成,不過作為示範,我會先建立一個容量群組,然後擴充它。
原始碼 2.5: 建立及擴充容量群組 |
# vgcreate vg /dev/hda4
/etc/lvm/backup: fsync failed: Invalid argument
Volume group "vg" successfully created
# vgextend vg /dev/hdb1
/etc/lvm/backup: fsync failed: Invalid argument
Volume group "vg" successfully extended
|
建立邏輯容量。邏輯容量跟您使用 fdisk 製作出來的磁碟分區是類似的東西。在我們的例子裡,我們會製作以下的分區:
| 目錄 |
大小 |
| /usr |
10 GB |
| /home |
5 GB |
| /opt |
5 GB |
| /var |
10 GB |
| /tmp |
2 GB |
由於我們正要使用的是 LVM2,所以不必太在意分區的大小,因為要擴充是很容易的。
注意:
如 Terje Kvernes 建議的,增加分區的大小要比縮小它容易的多。我猜您會想要從小分區開始,然後在需要的時候才增加它們的大小。
|
原始碼 2.6: 建立以及擴充邏輯容量 |
# lvcreate -L10G -nusr vg
Logical volume "usr" created
# lvcreate -L5G -nhome vg
# lvcreate -L5G -nopt vg
# lvcreate -L10G -nvar vg
# lvcreate -L2G -ntmp vg
# lvextend -L+5G /dev/vg/home
|
注意:
在建立邏輯容量的時候,您可以使用 -i 選項將分區跨越兩個以上的實體容積,這樣能啟動負載平衡來增加效能。詳情請參考
LVM Howto。
|
在邏輯容量上建立檔案系統的步驟,和在普通分區上類似。我們使用 ext3 作為範例,不過您想選用其他檔案系統當然也可以:
原始碼 2.7: 建立檔案系統 |
# mke2fs -j /dev/vg/usr
# mke2fs -j /dev/vg/home
# mke2fs -j /dev/vg/opt
# mke2fs -j /dev/vg/var
# mke2fs -j /dev/vg/tmp
|
如手冊中所敘述的,掛載這些您建立的 LVM2 邏輯容量。將 /dev/hdxx 換成
/dev/vg/logical_volume_name。
原始碼 2.8: 掛載您的邏輯容量 |
# mkdir /mnt/gentoo/usr
# mount /dev/vg/usr /mnt/gentoo/usr
# mkdir /mnt/gentoo/home
# mount /dev/vg/home /mnt/gentoo/home
# mkdir /mnt/gentoo/opt
# mount /dev/vg/opt /mnt/gentoo/opt
# mkdir /mnt/gentoo/var
# mount /dev/vg/var /mnt/gentoo/var
# mkdir /mnt/gentoo/tmp
# mount /dev/vg/tmp /mnt/gentoo/tmp
|
注意:
接下來的步驟跟手冊中提到的都差不多,只是這裡會列出一些小差異。
|
在設定核心的時候,請確定您啟動了 LVM2 支援(並非所有 2.4 核心都支援)。選取以下所述的
LVM2 模組:
原始碼 2.9: 選取 2.4.x 核心中的 LVM2 模組 |
Multi-device support (RAID and LVM) --->
[*] Multiple devices driver support (RAID and LVM)
< > RAID support
< > Logical volume manager (LVM) support
<M> Device-mapper support
< > Mirror (RAID-1) support
|
原始碼 2.10: 選取 2.6.x 核心中的 LVM2 模組 |
Device Drivers --->
Multi-device support (RAID and LVM) --->
[*] Multiple devices driver support (RAID and LVM)
< > RAID support
<M> Device mapper support
|
編譯出的模組會叫做 dm-mod.ko。
當您編譯了您的核心並安裝好模組以後,將下面這行加入您的
/etc/modules.autoload.d/kernel-{KV} 下,其中 {KV} 表示您的核心版本(2.4 或 2.6),讓 LVM2 模組會在開機的時候載入:
原始碼 2.11: 將 LVM2 加入 /etc/modules.autoload.d/kernel-2.6 |
# nano -w /etc/modules.autoload.d/kernel-2.6
dm-mod
|
現在,安裝 lvm2 套件。
重要:
請確定您將 /usr/src/linux 連結到現在使用的核心原始碼,因為 lvm2 ebuild
所使用的 device-mapper ebuild 會用到 /usr/src/linux/include/linux
下的原始檔。
|
原始碼 2.12: Emerging LVM2 套件 |
# emerge lvm2
# echo 'devices { filter=["r/cdrom/"] }' >> /etc/lvm/lvm.conf
# nano -w /etc/lvm/lvm.conf
|
在編輯 /etc/fstab 檔案時,照著手冊上說的,加入您的 LVM2 邏輯容量。再次的,以下的內容是我們的範例必須的:
原始碼 2.13: 部份的 /etc/fstab |
/dev/hda1 /boot ext3 noauto,noatime 1 1
/dev/hda2 none swap sw 0 0
/dev/hda3 / ext3 noatime 0 0
# Logical volumes
/dev/vg/usr /usr ext3 noatime 0 0
/dev/vg/home /home ext3 noatime 0 0
/dev/vg/opt /opt ext3 noatime 0 0
/dev/vg/var /var ext3 noatime 0 0
/dev/vg/tmp /tmp ext3 noatime 0 0
|
在您走到手冊中最後的安裝步驟時,別忘了卸載(umount)您的 LVM2 邏輯容量,並在重新開機前執行以下指令:
原始碼 2.14: 關閉 LVM2 |
# vgchange -a n
|
重新開機,然後所有的分區都應該被掛載好了!
3.
相關資源
4.
特別感謝
感謝 Thilo Bangert 以及 Terje Kvernes 提供有關這份文件的幫助及建議。
這份文件是以
Creative Commons - 姓名標示-相同方式分享 授權條款發布
|