In this tutorial, I am using the CentOS6(I believe that its also applicable on other Linux distro but didn’t try yet) that has ext4 partition lv_root mounted as / and lv_swap as swap from the volume group vg_centos6 (which is default), that has two hard drives (66GB & 25GB). Due to some reasons, I want to remove the 25GB hard drive from my computer and want to add new 50 GB hard drive. Before, removing the hard drive from the computer, we need to resize the lv_root, then remove it from volume group and at the end from the physical volume.
WARNING: It’s really dangerous, so backup your data before attempting this. Please don’t blame me, if you destory your system. You are responsible for your own actions!
Check the size of lv_root before starting this process:
pvscan vgscan vgchange -a y lvscan
Display the lv_root:
fsck on the large root filesystem (lv_root):
Run e2fsck with -f (force) option:
e2fsck -f /dev/vg_centos6/lv_root
Issue the resize2fs command to reduce the filesystem (Important: The size here is the actual/total size of the lv_root after reduce, not the size that we want to decrease):
resize2fs -p /dev/vg_centos6/lv_root 65G
Now, issue the lvreduce command to reduce the logical volume size:
lvreduce -L 65G /dev/vg_centos6/lv_root
Run lvdisplay command to confirm the change:
Reboot the system and login. Remove the disk (in my case it is, /dev/sdb1) from volume group and then from physical volume:
sudo vgreduce vg_centos6 /dev/sdb1 sudo pvremove /dev/sdb1
Check the size of lv_root after all these changes:
Hope this will help you!