使用lvm调整分区大小

1. 问题

之前使用Windows的时候觉得可以随意调整分区的大小特别神奇,感觉Linux上应该也可以随意调整分区大小才行,但是自带的图形界面中的工具有没有修改分区大小的能力。学习了lvm才明白原来一定要使用终端里面的lvm工具才可以调整分区的大小

2. 主要流程

首先要了解PV(Physical)、VG(Volume Group)、LV(Logic Volume)这三个概念。

PV(物理卷)表示实际磁盘上的分区,也就是使用gdisk、fdisk分区出来的分区。

VG表示PV组成的分区组,多个PV的存储空间共同组成VG的储存空间,此时VG就相当于一块新的磁盘。

LV表示在VG磁盘上进行的逻辑分区。

LV在使用的时候是虚拟的磁盘分区,可以用来挂载。LV和普通的物理分区最重要的不同在于LV可以调整大小,普通磁盘的分区不能调整大小。除了LV可以调整大小VG也可以调整大小,只要往VG中加入新的物理卷就行。

因此创建LV的过程如下:

在这里插入图片描述
2.1 gdisk阶段

gdisk首先在磁盘上创建三个新的物理卷,如下。最后三个Linux filesystem就是新创建的物理分区。

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1230847   600.0 MiB   EF00  EFI System Partition
   2         1230848         3327999   1024.0 MiB  8300  
   3         3328000        55764991   25.0 GiB    8E00  
   4        55764992        57862143   1024.0 MiB  8300  Linux filesystem
   5        57862144        58886143   500.0 MiB   8300  Linux filesystem
   6        58886144        59910143   500.0 MiB   8300  Linux filesystem

关于如何物理分区的内容

2.2 PV阶段

PV阶段有点像物理分区阶段的格式化,gdisk分区完之后只需要使用如下指令在物理分区上创建PV即可。

$ pvcreate /dev/sda{4,5,6}
Physical volume "/dev/sda4" successfully created.
Physical volume "/dev/sda5" successfully created.
Physical volume "/dev/sda6" successfully created.

然后使用指令pvscan查看创建过的分区(显示会有一个25G的PV,那是我安装系统时就创建好的)

$ pvscan
PV /dev/sda3   VG fedora_localhost-live   lvm2 [25.00 GiB / 7.00 GiB free]
PV /dev/sda4                              lvm2 [1.00 GiB]
PV /dev/sda5                              lvm2 [500.00 MiB]
PV /dev/sda6                              lvm2 [500.00 MiB]
Total: 4 [<26.98 GiB] / in use: 1 [25.00 GiB] / in no VG: 3 [<1.98 GiB]

2.3 VG阶段

VG阶段就是将之前创建好的PV加入一个新创建的(或者旧的)VG。

使用vgcreate在创建VG的同时加入PV

$ vgcreate vg  /dev/sda4 /dev/sda5 /dev/sda6
  Volume group "vg" successfully created

创建好之后可以使用vgreduce删除一个PV;或者使用vgextend添加一个PV。这样可以达到调整VG大小的目的。

$ vgreduce vg /dev/sda5
  Removed "/dev/sda5" from volume group "vg"
$ vgextend vg /dev/sda5
  Volume group "vg" successfully extended
2.4 LV阶段

最后可以在VG上创建逻辑分区LV。

使用lvcreate创建逻辑分区,其中-L指定分区的大小,-n指定逻辑分区的名字。

$ lvcreate -L 500M -n first_lv vg
  Logical volume "first_lv" created.

接下来可以在/dev/vg/first_lv上找到刚才分出来的逻辑分区。之后就可以使用正常的步骤进行格式化、挂载。

$ mkfs.ext4 /dev/vg/first_lv
$ mkdir /media/logical1
$ mount /dev/vg/first_lv /media/logical1
$ df -Th /media/logical1
Filesystem              Type  Size  Used Avail Use% Mounted on
/dev/mapper/vg-first_lv ext4  477M  2.3M  445M   1% /media/logical1
2.5 调整分区大小

首先扩展first_lv的容量,使用lvresize

$ lvresize -L +500M /dev/vg/first_lv 
  Size of logical volume vg/first_lv changed from 500.00 MiB (125 extents) to 1000.00 MiB (250 extents).
  Logical volume vg/first_lv successfully resized.

成功扩大first_lv的容量之后卸载该分区才能对它进行扩展(应该有不用卸载的方法,但是目前没找到)

$ umount /media/logical1/
$ e2fsck -f /dev/vg/first_lv
$ resize2fs /dev/vg/first_lv
$ mount /dev/vg/first_lv /media/logical1/
$ df -Th /media/logical1/
Filesystem              Type  Size  Used Avail Use% Mounted on
/dev/mapper/vg-first_lv ext4  961M  2.5M  905M   1% /media/logical1

完成挂载之后可以看到该文件系统的容量确实增加到了1000M。

要减少文件系统同样使用lvresize。然而按照上面扩展文件系统的方法我直接把文件系统毁坏了,因此重新创建了一个1000M的first_lv,换了一种方法将它缩小到500M。

$ umount /media/logical1
$ lvresize --resizefs --size 500M /dev/vg/fist_lv
fsck from util-linux 2.35.2
/dev/mapper/vg-fist_lv: clean, 11/64000 files, 8748/256000 blocks
resize2fs 1.45.5 (07-Jan-2020)
Resizing the filesystem on /dev/mapper/vg-fist_lv to 128000 (4k) blocks.
The filesystem on /dev/mapper/vg-fist_lv is now 128000 (4k) blocks long.

  Size of logical volume vg/fist_lv changed from 1000.00 MiB (250 extents) to 500.00 MiB (125 extents).
  Logical volume vg/fist_lv successfully resized.
$ mount /dev/vg/fist_lv /media/logical1/
$ df -Th /media/logical1/
Filesystem             Type  Size  Used Avail Use% Mounted on
/dev/mapper/vg-fist_lv ext4  477M  1.5M  440M   1% /media/logical1
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值