Posted on

How to extend the root partition in LVM

In this tutorial, I am using the CentOS6(but also applicable on other Linux distro) that has ext4 partition lv_root mounted as / and lv_swap as swap from the volume group vg_centos6 (which is default), we pretend that we are running out of space in lv_root(/) and volume group (vg_centos6) doesn’t have any free space. We added a brand new drive with 20 GB space. Now, we need to assign this 20 GB space to volume group and then extend lv_root(/).

WARNING: Backup your data before attempting this.

First, we’ll check the file system disk space usage and logical volume information:

sudo df -h
sudo lvs


Get the information about newly added hard disk using the following command:

sudo fdisk -l

2Note: /dev/sdb is the newly added hard disk!

To create the partition on the second Hard disk, use the following command and follow the “on screen” instructions and change the partition type from Linux to LVM (8e):

sudo fdisk /dev/sdb


Identify the already mounted lvm file system type:

df -T


Format the newly created partition using the following command:

sudo mkfs.ext4 /dev/sdb1


Initialize the newly created partition as a physical volume:

sudo pvcreate /dev/sdb1


Check the volume groups using the following command:

sudo vgs

7Note: vg_centos6 is the volume group that I want to extend, you can change according to your volume group.

Extend the VG (vg_centos6) with new PV (/dev/sdb1):

sudo vgextend vg_centos6 /dev/sdb1


Extend the logical volume (lv_root) with all the free space of the VG(vg_centos6):

sudo lvextend -l +100%FREE /dev/vg_centos6/lv_root


Finally, resize the file-system:

sudo resize2fs /dev/vg_centos6/lv_root


Verify the file-system is larger using the following commands:

sudo df -h
sudo lvs
sudo vgs


Hope this will help you!