How do you add more space to a Fedora (LVM) partition?

In a nutshell, i have a VM that ran out of space. I increased the size of the VM's harddrive to be 4 times bigger but the OS partition is still only using 1x the space. I need to change the LVM partition to take up the extra 4x space but I don't know how to extend the LVM partition.

(NOTE: To make the screenshots given below I had to boot from a live-cd for gnome-partition-manager (aka gparted). Very unfortunately gparted is only able to "detect LVM" and can't do any LVM operations.)

Here is what "gparted" shows. Please notice that the "resize" option is not available:

enter image description here


The Problem:

I can't find good directions<1> on how to grow the LVM partition via GUI or command-line! How do you grow a LVM partition that was created by the default Fedora install?

If you are giving command line directions. Please explain what each line of commands does.


I thought I used to do this with system-config-lvm GUI tool in CentOS, but it's not working for me today. So I had to go old school. As always, this might destroy your data, so MAKE A BACKUP!! Thanks to experts across the internet for providing these hints. Unfortunately my notes do not include attribution details. Note I performed all of these changes while the system was live.

  1. Enlarge the disk using fdisk
    1. fdisk -l (to see the partition layout, typically we're dealing with /dev/sda2)
    2. fdisk /dev/sda
    3. d (delete a partition)
    4. 2 (if the part we want to grow is /dev/sda2; note this does not delete any data on disk)
    5. n (create a new partition)
    6. p (primary partition)
    7. 2
    8. <return> (default starting block, typically 14 since swap is first)
    9. <return> (default ending block, full size of the partition)
    10. make sure partition type is 8e for Linux LVM
      1. t
      2. 8e
    11. w (write changes to disk)
  2. reboot to get new partition table
  3. pvresize /dev/sda2
  4. pvscan should show new larger size
  5. lvextend -l +100%FREE /dev/vg_centos6/lv_root (-L +10G to add 10GB is another option)
  6. resize2fs /dev/vg_centos6/lv_root
  7. df should show new free space

The command lvextend can help you. For instance,

lvextend -L +54 /dev/vg01/lvol10 /dev/sdk3

tries to extend the size of that logical volume by 54MB on physical volume /dev/sdk3. This is only possible if /dev/sdk3 is a member of volume group vg01 and there are enough free physical extents in it.