1个硬盘分为两个区域,一个是 MBR(主引导分区),一个是数据区域。
MBR 里记录了两个重要信息:引导程序与磁盘分区表。
分区表定义了“第 n 个磁盘块是从第 x 个柱面到第 y 个柱面”,所以,系统每次都取 n 号磁盘块时,就只会读取第 x 到第 y 个扇区之间数据。
由于 MBR 容量有限,设计的时候,只设计成4个分区记录。用起来,可以作4个主分区,或者3个主分区和一个扩展分区。
如果超过四个分区,系统允许在额外的硬盘空间放另一份磁盘分区信息,那就是扩展分区,当硬盘被分出一个扩展分区的时候,实际上扩展分区在 MBR 磁盘分区表中的信息为另外那份分区表的位置。所以,在 扩展分区 里面还要划分 逻辑分区 才能使用。
每个硬盘最多只允许4个主分区,其他的分区只能放在扩展分区中。
Number Start End Size Type File system Flags
1 1049kB 256MB 255MB primary ext2 boot
2 257MB 62.3GB 62.0GB extended
5 257MB 8589MB 8332MB logical lvm
extended 区已经扩大成功了。
extended 区只是相当于“一块物理硬盘”,想把增加出来的空间用上,还要把 Number 为 5 的 lv 扩大。
而 logic volumn 的扩大依赖于它所在的 volumn group 的大小。因为 logic volumn 是从 volumn group 里分出来的,如果 volumn group 不变大,那么 logic volumn 是无法超过 volumn group 的。所以 真正是应该把空间加到 volumn group 上去 。 PART2
要增加 volumn group 的大小,先用 fdisk 在 extended 上,利用刚才增加但还未分配出去的磁盘空间创建出一个新分区。通过 fdisk <disk_dev_name> 进入交互模式,可以通过命令 m 查看帮助。首先,输入 n 创建新分区,然后选择 l 设置新分区为逻辑分区,接下来依次设置分区的起始、终止位置(默认即完全利用这块磁盘上剩余的所有空间,所以默认即可)。创建出的分区,编号为 6。可以用命令 p 看一下。
Device Boot Start End Blocks Id System
/dev/vda1 * 2048 499711 248832 83 Linux
/dev/vda2 501758 121634815 60566529 5 Extended
/dev/vda5 501760 16775167 8136704 8e Linux LVM
/dev/vda6 16777216 121634815 52428800 83 Linux
接下来,由于我们要用 LVM 来管理这个新分区,我们需要把新分区的管理系统从 Linux 改为 Linux LVM。在交互模式下,输入命令 t,然后选择刚才创建的 6,输入 8e (Linux LVM 的代号)。最后,我们要把刚才的这些操作真正写入硬盘,输入命令 w。
至此,我们通过 fdisk -l 已经可以看到 /dev/vda6 被创建出来了。
再执行
vgextend <your_vg_name> /dev/vda6
把新分区加进 volumn group (VG Name 可通过 vgdisplay 查到)。
现在用 vgs 查看 volumn group 的状态,发现 volumn group 已经变大。