原载于博客
在安装Linux时,如果选择了逻辑分区的方式,那么后续新增硬盘后,可以弹性扩展目录空间。本文以Fedora为例。
1. 查看逻辑分区情况
1.1 查看vg(volume group)
可以将vg看作是一个“硬盘池”,也即硬盘的虚拟化。所有的物理硬盘,分区后加入到vg中,作为虚拟空间统一分配。
[root@localhost ~]# vgscan
Reading volume groups from cache.
Found volume group "fedora" using metadata type lvm2
可以看到,系统已经有了一个名为fedora的vg,这是安装系统时自动建立的vg,当然也可以通过vgcreate
命令自己创建新的vg,此处略过。
1.2 查看lv(logical volume)
lv就是所谓的逻辑卷,将其挂载到某个目录后再格式化,便可以直接使用。所谓弹性扩展,就是扩展lv,使之对应的目录空间大小发生变化。
[root@localhost ~]# lvscan
ACTIVE '/dev/fedora/swap' [<11.76 GiB] inherit
ACTIVE '/dev/fedora/home' [<0.8 TiB] inherit
ACTIVE '/dev/fedora/root' [50.00 GiB] inherit
[root@localhost ~]# df -h
...
/dev/mapper/fedora-home 1.8T 302M 0.8G 1% /home
...
可以看到系统分成了三个lv,其中/dev/fedora/home这个lv挂载到了/home这个目录。
假设我们要做的工作就是扩展/home这个目录的空间。
2. 安装新硬盘并分区
拿到一块硬盘后,首先还是分区,这里我们使用gdisk
命令来进行分区。
[root@localhost ~]# gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.3
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): n
Partition number (2-128, default 2):
First sector (34-2047, default = 34) or {+-}size{KMGTP}:
Last sector (34-2047, default = 2047) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 8E00
Changed type of partition to 'Linux LVM'
Command (? for help): w
两个注意点:
- 分区编码部分,输入8E00,表示是逻辑分区。
- 分区结束后记得输入w,以写入。
3. 新建pv(pysical volume)
硬盘分区后,需要建立pv,将分区转成pv后,才能加入到vg硬盘池中。
[root@localhost ~]# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
4. 将新的pv加入到vg中
接下来,通过vgextend
命令,可以将pv加入到vg中。
vgextend vbirdvg /dev/sdb1
可以通过vgdisplay
命令查看vg的情况
[root@localhost ~]# vgdisplay fedora
--- Volume group ---
VG Name fedora
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 7
VG Access read/write
VG Status resizable
...
Free PE / Size */* GiB
VG UUID VPKdDe-z60K-lEXZ-430w-Plts-Tv2X-jUTyqG
可以看到,vg的可用空间发生了变化(Free PE/Size)。
5. 扩展lv
使用lvresize
命令可以动态弹缩逻辑分区的空间,也就是上文提及的/dev/fedora/home这个分区的空间。
这里我们把vg里多出来的空间都新增到该分区(亦即新硬盘的大小)
lvresize -L +931G /dev/fedora/home
6. 文件系统格式化
要想使用lv多出来的空间,还需要将其格式化。
首先查看系统文件系统情况:
[root@localhost ~]# cat /etc/fstab
/dev/mapper/fedora-home /home ext4 defaults 1 2
该系统使用了ext4文件格式。对于ext4的文件格式,通过如下命令,便可以动态格式化新的lv(保留原有文件):
resize2fs /dev/fedora/home
如果是xfs文件格式,则可以使用xfs_growfs
命令。
如此,便实现了目录空间的动态扩展。