Let's say I created the following Linux LVM volume group and logical volumes:
$ sudo vgcreate vg1 /dev/sdb1
$ sudo lvcreate -L 10G -n lv1 vg1
$ sudo lvcreate -L 10G -n lv2 vg1
$ sudo lvcreate -L 10G -n lv3 vg1
$ sudo mkfs.ext4 /dev/mapper/vg1-lv1
$ sudo mkfs.ext4 /dev/mapper/vg1-lv2
$ sudo mkfs.ext4 /dev/mapper/vg1-lv3
I end up with the following, which would all be using ext4 filesystem:
$ sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-a----- 10.00g
lv2 vg1 -wi-a----- 10.00g
lv3 vg1 -wi-a----- 10.00g
I would like to reduce the lv1 size from 10G to 5G, and grow the lv2 size from 10G to 15G. This means that lv2 would need to grow towards the front of the disk.
$ sudo lvreduce --resizefs --size 5G /dev/mapper/vg1-lv1
fsck from util-linux 2.36.1
/dev/mapper/vg1-lv1: clean, 11/655360 files, 66753/2621440 blocks
resize2fs 1.46.3 (27-Jul-2021)
Resizing the filesystem on /dev/mapper/vg1-lv1 to 1310720 (4k) blocks.
The filesystem on /dev/mapper/vg1-lv1 is now 1310720 (4k) blocks long.
Size of logical volume vg1/lv1 changed from 10.00 GiB (2560 extents) to 5.00 GiB (1280 extents).
Logical volume vg1/lv1 successfully resized.
Reducing lv1 seems to have worked. How do I now grow lv2?