3. 安装LVM2
安装全新的 Gentoo Linux 系统之前,首先要准备一张支持 LVM2 的启动光盘。我手头的是Gentoo LiveCD 2007.0,启动时记得加载 LVM2 模块:gentoo dolvm2
然后,照着葫芦画瓢直到Gentoo 安装手册《第四章 - 准备磁碟》。按照Gentoo LVM2 安装笔记(上)中的既定计划分区,我用的是 fdisk,你也可以用 fdisk 或者其它分区工具。使用 fdisk的具体步骤请参照安装手册。结果:
# fdisk /dev/sda
Command (m for help): p
Disk /dev/sda: 320.0 GB, 320071851520 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 9 72261 83 Linux
/dev/sda2 10 72 506047+ 83 Linux
/dev/sda3 73 197 1004062+ 83 Linux
/dev/sda4 198 38913 310986270 5 Extended
/dev/sda5 198 16246 128913561 83 Linux
/dev/sda6 16247 18800 20514973+ 83 Linux
/dev/sda7 18801 21354 20514973+ 83 Linux
/dev/sda8 21355 23908 20514973+ 83 Linux
/dev/sda9 23909 26462 20514973+ 83 Linux
/dev/sda10 26463 29016 20514973+ 83 Linux
/dev/sda11 29017 31570 20514973+ 83 Linux
/dev/sda12 31571 34124 20514973+ 83 Linux
/dev/sda13 34125 36678 20514973+ 83 Linux
/dev/sda14 36679 38913 17952606 83 Linux
完成分区后,先初始化 Swap 置换分区。
# mkswap /dev/hda2
# swapon /dev/hda2
接着加载 LVM2 dm-mod 模组,并激活 LVM。
# modprobe dm-mod
(别让 LVM 扫描硬盘以外的设备浪费时间)
# vi /etc/lvm/lvm.conf
(找到这一行)
filter = [ "a/.*/" ]
(把它替换为下面这一行)
filter = [ "a|/dev/sda|", "r/.*/" ]
(ZZ,存盘并退出 vi)
# vgscan
Reading all physical volumes. This may take a while...
No volume groups found
再注意一次哟,/dev/sda1、/dev/sda2、/dev/sda3 分别对应的 /boot、Swap 置换分区和主分区不要放入 LVM2 volume group。只要用 /dev/sda5 创建一个 LVM2 volume group - lvg。
# pvcreate /dev/sda5
No physical volume label read from /dev/sda5
Physical volume "/dev/sda5" successfully created
(建立個叫做 lvg 的卷群组)
# vgcreate lvg /dev/sda5
/etc/lvm/backup: fsync failed: Invalid argument (无视这警告)
Volume group "lvg" successfully created
如果想还扩充 lvg,可以用下一节将要介绍的 vgextend。但是,增加一个分区的大小通常比缩小它来的容易,所以在分配空间的时候不妨先做一个十足十的“吝啬鬼”。接下来我们要关心的是为这些个逻辑卷分配空间。
# lvcreate -L10G -nusr lvg
Logical volume "usr" created
# lvcreate -L100G -nhome lvg
Logical volume "home" created
# lvcreate -L5G -nopt lvg
Logical volume "opt" created
# lvcreate -L10G -nvar lvg
Logical volume "var" created
# lvcreate -L3G -ntmp lvg
Logical volume "tmp" created
BTW,像 Gentoo LVM2 安装文档里介绍的一样,把 160G 的硬盘等分成8块,也是个非常不错的主意。或许还会用到 lvextend 命令,它的具体用法也可以参考下一节的例子。
然后格式化所有的分区。除了/boot 用 ext2 以外,所有分区都强烈推荐使用 reiserfs 文件格式。因为 reiserfs 支持在线修改分区容量,这样就省去先 umount 后 resize 的麻烦事了。
#mke2fs /dev/sda1
#mkreiserfs /dev/sda3
#mkreiserfs /dev/lvg/usr
#mkreiserfs /dev/lvg/home
#mkreiserfs /dev/lvg/opt
#mkreiserfs /dev/lvg/var
#mkreiserfs /dev/lvg/tmp
格式化完所有分区之后,按着安装手册里说的,先挂载主分区,后再挂载其他的分区。
# mount /dev/sda3 /mnt/gentoo/
# cd /mnt/gentoo/
# mkdir boot
# mkdir usr
# mkdir home
# mkdir var
# mkdir opt
# mkdir tmp
# mount /dev/sda1 boot/
# mount /dev/lvg/usr usr/
# mount /dev/lvg/home home/
# mount /dev/lvg/var var/
# mount /dev/lvg/opt opt/
# mount /dev/lvg/tmp tmp/
接下来回到 Gentoo 安装手册的《第五章 - Gentoo 安装档案》继续照葫芦画瓢——安装 Gentoo Linux。但记得把 LVM2 支持加入到 Linux 内核中。我用 genkernel,需要运行:
# genkernel --lvm2 --menuconfig all
编译好内核与模组后,还要在启动时加载 dm-mod 模块。
#echo "dm-mod" >> /etc/modules.autoload.d/kernel-2.6
注意:把 /usr/src/linux 链接到使用中的内核源码,因为 lvm2 ebuild 所使用 device-mapper ebuild 会用到 /usr/src/linux/include/linux 下的源码。接下来 emerge lvm2
# emerge -av lvm2
然后就像在 LiveCD 中一样,修改 /etc/lvm/lvm.conf 文件。
# vi /etc/lvm/lvm.conf
(找到这一行)
filter = [ "a/.*/" ]
(把它替换为下面这一行)
filter = [ "a|/dev/sda|", "r/.*/" ]
(ZZ,存盘并退出 vi)
最后设置 /etc/fstab。这是我的现成品:
# cat /etc/fstab
/dev/sda1 /boot ext2 noauto,noatime 1 2
/dev/sda2 none swap sw 0 0
/dev/sda3 / reiserfs noatime,notail 0 1
# Logical volumes
/dev/lvg/usr /usr reiserfs noatime,notail 0 2
/dev/lvg/home /home reiserfs noatime,notail 0 2
/dev/lvg/opt /opt reiserfs noatime,notail 0 2
/dev/lvg/var /var reiserfs noatime,notail 0 2
/dev/lvg/tmp /tmp reiserfs noatime,notail 0 2
注意:如果在 Gentoo 安装过程中被迫重启了,又希望继续使用刚才的逻辑卷群组的话,可以使用 vgscan 命令查找之前设置的节点
# vgscan --mknodes
最后安装完成后,用 vgdisplay 和 pvdisplay 查看 LVM2 的信息,就能知道用了哪些物理卷、卷群组还剩下多少预留空间等。
# vgdisplay -v lvg
Using volume group(s) on command line
Finding volume group "lvg"
--- Volume group ---
VG Name lvg
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 9
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 5
Open LV 5
Max PV 0
Cur PV 3
Act PV 3
VG Size 159.62 GB
PE Size 4.00 MB
Total PE 40862
Alloc PE / Size 40448 / 158.00 GB
Free PE / Size 414 / 1.62 GB
VG UUID iHQRao-cmp4-gZ5l-kbA3-G1Yr-Fkk5-0Lt4my
--- Logical volume ---
LV Name /dev/lvg/usr
VG Name lvg
LV UUID CMTe0N-42s0-4U5I-5quW-Pnk2-Uj4U-SPlo0y
LV Write Access read/write
LV Status available
# open 2
LV Size 10.00 GB
Current LE 2560
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:0
--- Logical volume ---
LV Name /dev/lvg/home
VG Name lvg
LV UUID tfR1uD-1K0u-X5v6-Y5bs-FX2E-4y6o-A39St0
LV Write Access read/write
LV Status available
# open 2
LV Size 130.00 GB
Current LE 33280
Segments 4
Allocation inherit
Read ahead sectors 0
Block device 253:1
--- Logical volume ---
LV Name /dev/lvg/opt
VG Name lvg
LV UUID pAiUjY-2xe5-tpPr-pQvA-WF7z-OYt4-TEO0IG
LV Write Access read/write
LV Status available
# open 2
LV Size 5.00 GB
Current LE 1280
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:2
--- Logical volume ---
LV Name /dev/lvg/var
VG Name lvg
LV UUID MCrrFa-owTk-OAVT-Gbh1-SzXA-Dt7m-3GLGTf
LV Write Access read/write
LV Status available
# open 2
LV Size 10.00 GB
Current LE 2560
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:3
--- Logical volume ---
LV Name /dev/lvg/tmp
VG Name lvg
LV UUID TOk0di-NcvR-2Dm2-Tthy-e33D-9pwI-f9O6Ia
LV Write Access read/write
LV Status available
# open 2
LV Size 3.00 GB
Current LE 768
Segments 1
Allocation inherit
Read ahead sectors 0
Block device 253:4
--- Physical volumes ---
PV Name /dev/sda5
PV UUID 84Dfoi-zu8P-9j1I-4QO1-ICaL-QvYP-W8gWqZ
PV Status allocatable
Total PE / Free PE 31472 / 0
PV Name /dev/sda6
PV UUID ZwR0w3-0zg6-DNBj-XdDm-um9I-CG2l-5u1702
PV Status allocatable
Total PE / Free PE 5008 / 414
PV Name /dev/sda14
PV UUID uxPnzS-ziKj-ujXf-RUNY-QvY9-6rr6-DQnzt5
PV Status allocatable
Total PE / Free PE 4382 / 0
3 条评论:
为什么要分那么多区进行扩展?
lvm 设计就是可以自动伸缩的,多区的好处是什么呢?
macaw_w@hotmail.com
这是个人喜好,不是必须的
当然也可以在需要扩展的时候,再用fdisk分区。这样做的话,一般要重新启动
预先分好区,省去了重新启动的步骤,用下来似乎也没什么坏处
发表评论
指向此文章的链接:
创建链接
<< 主页