My root partition had unused space while /home
was starving. I needed to resize both without data loss. I’d foreseen this and created my Linux partitions using LVM while installing Arch 😇 .
Since operations here involve resizing /
, boot from Live USB and then perform them. Also make sure the USB is UEFI bootable; otherwise it’d mean changing BIOS settings to enable Legacy Boot. This may lead to GRUB’s disappearance from boot menu.
Shrink /
# Pick-up LVM volumes
sudo vgchange -a y
# verify volume groups
sudo vgs
# check file system
sudo e2fsck -fy /dev/lvmg1/root
# verify logical volumes
sudo lvdisplay
# Resize file system to size smaller than volume size
sudo resize2fs /dev/lvmg1/root 29G
# Resize logical volume to desired size
sudo lvreduce -L 30G /dev/lvmg1/root
# Refill file system to volume size
sudo resize2fs /dev/lvmg1/root
# Verify shrunk size in logical volumes
sudo lvdisplay
# Verify if free space shows up in volume group
sudo vgdisplay
Expand /home
# Expand logical volume to all of free space
sudo lvextend -l +100%FREE /dev/lvmg1/home
# Verify grown size in logical volumes
sudo lvdisplay
# Check file system
sudo e2fsck -fy /dev/lvmg1/home
# Grow file system to fill up volume
sudo resize2fs /dev/lvmg1/home
Overall LVM resizing experience: smooth!