Tools: How to Resize an LVM Volume in Linux (2026)

Tools: How to Resize an LVM Volume in Linux (2026)

Introduction

Resizing Home

Troubleshooting mount and unmount

Conclusion This post is a quick how-to resize a LVM volume for a Linux system. One mistake that I've made when setting up my

mini PC Linux server with Alma Linux is that I didn't pay attention to the defaults when partitioning the disk. I woke up a few months later unable to install packages and several docker services failing, the main reason: insufficient disk space on /. It turns out that by default the /home partition got 400GB of space allocated and the / partition got only ~70GB. Since I was using LVM and /home has an XFS filesystem type, resizing it was not straightforward. Luckily with the helpof an AI assistant I've managed to find a solution and I'm sharing it here for reference. Here's how you typically resize the /home partition. If home is ext4 then things are a bit easier, you'd want to boot into recovery, unmount it and shrink it. Note: I have not tested this flow. If the /home is XFS, then things are a bit complicated. Home cannot be resized and it has to be recreated. You can use the following commands to check for available space. Note that this output is after I resized the partition. If there's no space left then you can't grow /. You will have to destroy and recreate the /home. To do that you need to do the following steps: I didn't have much data in it, only the gitlab-runner config and in my case it was a fast and small back-up. The following commands will destroy all the data in /home and will create it with 70G of space If you encounter errors when unmounting and mounting /home check the following section for troubleshooting and fixing tips. You won't be able to unmount /home if an user is using it. I had to shut down gitlab runner before unmounting. You can check what is keeping fs busy with the following commands: If you get an invalid uid when mounting home you will need to edit /etc/fstab file. You can get the uid of the new /home partition with the following commands: Then edit /etc/fstab with nano and replace the UID part (UUID=c88fb303-2e9a-4ec1-8654-45ac7a0a675f),after that mount /home should work. Restore the home back-up the following command and start stopped services. Extend the / volume with the 100% of FREE space with issuing of the following command. If we don't pay attention when installing a new Linux distro on a server we might get a surprise. Sometimes defaultsaren't that good. In this post we've explored how to shrink the /home volume and grow the / volume. If the /home filesystem is of type ext4 then we just shrink it and grow /, otherwise if /home is xfs filesystem

we need to back up the data, recreate the /home partition from scratch, restore the back-up and then grow /. Thank you for reading! Templates let you quickly answer FAQs or store snippets for re-use. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse

Code Block

Copy

Filesystem Size Used Avail Use% Mounted on /dev/mapper/almalinux-root 70G 42G 29G 60% / /dev/mapper/almalinux-home 400G 8.0G 392G 2% /home Filesystem Size Used Avail Use% Mounted on /dev/mapper/almalinux-root 70G 42G 29G 60% / /dev/mapper/almalinux-home 400G 8.0G 392G 2% /home Filesystem Size Used Avail Use% Mounted on /dev/mapper/almalinux-root 70G 42G 29G 60% / /dev/mapper/almalinux-home 400G 8.0G 392G 2% /home sudo umount /home sudo e2fsck -f /dev/mapper/almalinux-home sudo resize2fs /dev/mapper/almalinux-home 100G sudo lvreduce -L 100G /dev/mapper/almalinux-home sudo umount /home sudo e2fsck -f /dev/mapper/almalinux-home sudo resize2fs /dev/mapper/almalinux-home 100G sudo lvreduce -L 100G /dev/mapper/almalinux-home sudo umount /home sudo e2fsck -f /dev/mapper/almalinux-home sudo resize2fs /dev/mapper/almalinux-home 100G sudo lvreduce -L 100G /dev/mapper/almalinux-home sudo lvextend -r -L +300G /dev/mapper/almalinux-root sudo lvextend -r -L +300G /dev/mapper/almalinux-root sudo lvextend -r -L +300G /dev/mapper/almalinux-root ➜ ~ sudo lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home almalinux -wi-ao---- 70.00g root almalinux -wi-ao---- 399.50g swap almalinux -wi-ao---- 5.85g ➜ ~ sudo lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home almalinux -wi-ao---- 70.00g root almalinux -wi-ao---- 399.50g swap almalinux -wi-ao---- 5.85g ➜ ~ sudo pvs PV VG Fmt Attr PSize PFree /dev/nvme0n1p3 almalinux lvm2 a-- 475.35g 0 ➜ ~ sudo lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home almalinux -wi-ao---- 70.00g root almalinux -wi-ao---- 399.50g swap almalinux -wi-ao---- 5.85g ➜ ~ sudo lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home almalinux -wi-ao---- 70.00g root almalinux -wi-ao---- 399.50g swap almalinux -wi-ao---- 5.85g ➜ ~ sudo pvs PV VG Fmt Attr PSize PFree /dev/nvme0n1p3 almalinux lvm2 a-- 475.35g 0 ➜ ~ sudo lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home almalinux -wi-ao---- 70.00g root almalinux -wi-ao---- 399.50g swap almalinux -wi-ao---- 5.85g ➜ ~ sudo lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home almalinux -wi-ao---- 70.00g root almalinux -wi-ao---- 399.50g swap almalinux -wi-ao---- 5.85g ➜ ~ sudo pvs PV VG Fmt Attr PSize PFree /dev/nvme0n1p3 almalinux lvm2 a-- 475.35g 0 sudo rsync -aXS /home/ /root/home-backup/ sudo rsync -aXS /home/ /root/home-backup/ sudo rsync -aXS /home/ /root/home-backup/ sudo umount /home sudo lvremove /dev/mapper/almalinux-home sudo lvcreate -L 70G -n home almalinux sudo mkfs.xfs /dev/mapper/almalinux-home sudo mount /home sudo umount /home sudo lvremove /dev/mapper/almalinux-home sudo lvcreate -L 70G -n home almalinux sudo mkfs.xfs /dev/mapper/almalinux-home sudo mount /home sudo umount /home sudo lvremove /dev/mapper/almalinux-home sudo lvcreate -L 70G -n home almalinux sudo mkfs.xfs /dev/mapper/almalinux-home sudo mount /home ➜ ~ sudo fuser -vm /home USER PID ACCESS COMMAND /home: root kernel mount /home root 1449 ..c.. gitlab-runner ➜ ~ sudo lsof +D /home | head -100 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME gitlab-ru 1449 root cwd DIR 253,2 6 16777344 /home/gitlab-runner ➜ ~ sudo fuser -vm /home USER PID ACCESS COMMAND /home: root kernel mount /home root 1449 ..c.. gitlab-runner ➜ ~ sudo lsof +D /home | head -100 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME gitlab-ru 1449 root cwd DIR 253,2 6 16777344 /home/gitlab-runner ➜ ~ sudo fuser -vm /home USER PID ACCESS COMMAND /home: root kernel mount /home root 1449 ..c.. gitlab-runner ➜ ~ sudo lsof +D /home | head -100 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME gitlab-ru 1449 root cwd DIR 253,2 6 16777344 /home/gitlab-runner ➜ ~ sudo lsblk --fs NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS nvme0n1 ├─nvme0n1p1 vfat FAT32 E5B7-DC76 589.9M 1% /boot/efi ├─nvme0n1p2 xfs b11659d8-531b-4d08-a809-e6740a32d0c5 333.8M 65% /boot └─nvme0n1p3 LVM2_member LVM2 001 Tsnalq-dvtn-CVFS-h85H-aBcz-sOrs-jeQkfK ├─almalinux-root xfs 7e852464-4b83-4f16-a831-a9d794e584b7 350.6G 12% / ├─almalinux-swap swap 1 7e6ce228-b5f2-454b-b7fe-61480d34fcbd [SWAP] └─almalinux-home xfs c88fb303-2e9a-4ec1-8654-45ac7a0a675f 68.3G 2% /home ➜ ~ sudo blkid /dev/mapper/almalinux-swap: UUID="7e6ce228-b5f2-454b-b7fe-61480d34fcbd" TYPE="swap" /dev/nvme0n1p3: UUID="Tsnalq-dvtn-CVFS-h85H-aBcz-sOrs-jeQkfK" TYPE="LVM2_member" PARTUUID="69c5165d-0709-43ec-8791-9a4227c61164" /dev/nvme0n1p1: UUID="E5B7-DC76" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="3e215e38-446f-4f9e-a6d6-109f69cd1e04" /dev/nvme0n1p2: UUID="b11659d8-531b-4d08-a809-e6740a32d0c5" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="7d56dc6b-8ba3-43d8-a3a6-cf76fee5b8cb" /dev/mapper/almalinux-home: UUID="c88fb303-2e9a-4ec1-8654-45ac7a0a675f" BLOCK_SIZE="512" TYPE="xfs" /dev/mapper/almalinux-root: UUID="7e852464-4b83-4f16-a831-a9d794e584b7" BLOCK_SIZE="512" TYPE="xfs" ➜ ~ sudo lsblk --fs NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS nvme0n1 ├─nvme0n1p1 vfat FAT32 E5B7-DC76 589.9M 1% /boot/efi ├─nvme0n1p2 xfs b11659d8-531b-4d08-a809-e6740a32d0c5 333.8M 65% /boot └─nvme0n1p3 LVM2_member LVM2 001 Tsnalq-dvtn-CVFS-h85H-aBcz-sOrs-jeQkfK ├─almalinux-root xfs 7e852464-4b83-4f16-a831-a9d794e584b7 350.6G 12% / ├─almalinux-swap swap 1 7e6ce228-b5f2-454b-b7fe-61480d34fcbd [SWAP] └─almalinux-home xfs c88fb303-2e9a-4ec1-8654-45ac7a0a675f 68.3G 2% /home ➜ ~ sudo blkid /dev/mapper/almalinux-swap: UUID="7e6ce228-b5f2-454b-b7fe-61480d34fcbd" TYPE="swap" /dev/nvme0n1p3: UUID="Tsnalq-dvtn-CVFS-h85H-aBcz-sOrs-jeQkfK" TYPE="LVM2_member" PARTUUID="69c5165d-0709-43ec-8791-9a4227c61164" /dev/nvme0n1p1: UUID="E5B7-DC76" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="3e215e38-446f-4f9e-a6d6-109f69cd1e04" /dev/nvme0n1p2: UUID="b11659d8-531b-4d08-a809-e6740a32d0c5" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="7d56dc6b-8ba3-43d8-a3a6-cf76fee5b8cb" /dev/mapper/almalinux-home: UUID="c88fb303-2e9a-4ec1-8654-45ac7a0a675f" BLOCK_SIZE="512" TYPE="xfs" /dev/mapper/almalinux-root: UUID="7e852464-4b83-4f16-a831-a9d794e584b7" BLOCK_SIZE="512" TYPE="xfs" ➜ ~ sudo lsblk --fs NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS nvme0n1 ├─nvme0n1p1 vfat FAT32 E5B7-DC76 589.9M 1% /boot/efi ├─nvme0n1p2 xfs b11659d8-531b-4d08-a809-e6740a32d0c5 333.8M 65% /boot └─nvme0n1p3 LVM2_member LVM2 001 Tsnalq-dvtn-CVFS-h85H-aBcz-sOrs-jeQkfK ├─almalinux-root xfs 7e852464-4b83-4f16-a831-a9d794e584b7 350.6G 12% / ├─almalinux-swap swap 1 7e6ce228-b5f2-454b-b7fe-61480d34fcbd [SWAP] └─almalinux-home xfs c88fb303-2e9a-4ec1-8654-45ac7a0a675f 68.3G 2% /home ➜ ~ sudo blkid /dev/mapper/almalinux-swap: UUID="7e6ce228-b5f2-454b-b7fe-61480d34fcbd" TYPE="swap" /dev/nvme0n1p3: UUID="Tsnalq-dvtn-CVFS-h85H-aBcz-sOrs-jeQkfK" TYPE="LVM2_member" PARTUUID="69c5165d-0709-43ec-8791-9a4227c61164" /dev/nvme0n1p1: UUID="E5B7-DC76" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="3e215e38-446f-4f9e-a6d6-109f69cd1e04" /dev/nvme0n1p2: UUID="b11659d8-531b-4d08-a809-e6740a32d0c5" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="7d56dc6b-8ba3-43d8-a3a6-cf76fee5b8cb" /dev/mapper/almalinux-home: UUID="c88fb303-2e9a-4ec1-8654-45ac7a0a675f" BLOCK_SIZE="512" TYPE="xfs" /dev/mapper/almalinux-root: UUID="7e852464-4b83-4f16-a831-a9d794e584b7" BLOCK_SIZE="512" TYPE="xfs" ➜ ~ tail /etc/fstab # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info. # # After editing this file, run 'systemctl daemon-reload' to update systemd # units generated from this file. # UUID=7e852464-4b83-4f16-a831-a9d794e584b7 / xfs defaults 0 0 UUID=b11659d8-531b-4d08-a809-e6740a32d0c5 /boot xfs defaults 0 0 UUID=E5B7-DC76 /boot/efi vfat umask=0077,shortname=winnt 0 2 UUID=c88fb303-2e9a-4ec1-8654-45ac7a0a675f /home xfs defaults 0 0 ➜ ~ tail /etc/fstab # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info. # # After editing this file, run 'systemctl daemon-reload' to update systemd # units generated from this file. # UUID=7e852464-4b83-4f16-a831-a9d794e584b7 / xfs defaults 0 0 UUID=b11659d8-531b-4d08-a809-e6740a32d0c5 /boot xfs defaults 0 0 UUID=E5B7-DC76 /boot/efi vfat umask=0077,shortname=winnt 0 2 UUID=c88fb303-2e9a-4ec1-8654-45ac7a0a675f /home xfs defaults 0 0 ➜ ~ tail /etc/fstab # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info. # # After editing this file, run 'systemctl daemon-reload' to update systemd # units generated from this file. # UUID=7e852464-4b83-4f16-a831-a9d794e584b7 / xfs defaults 0 0 UUID=b11659d8-531b-4d08-a809-e6740a32d0c5 /boot xfs defaults 0 0 UUID=E5B7-DC76 /boot/efi vfat umask=0077,shortname=winnt 0 2 UUID=c88fb303-2e9a-4ec1-8654-45ac7a0a675f /home xfs defaults 0 0 sudo rsync -aHAX /root/home-backup/ /home/ sudo rsync -aHAX /root/home-backup/ /home/ sudo rsync -aHAX /root/home-backup/ /home/ sudo lvextend -r -l +100%FREE /dev/mapper/almalinux-root sudo lvextend -r -l +100%FREE /dev/mapper/almalinux-root sudo lvextend -r -l +100%FREE /dev/mapper/almalinux-root - Back-up the contents from /home - Recreate the /home - Restore the back-up