Extending a logical volume in a virtual machine running Red Hat or Cent OS
search cancel

Extending a logical volume in a virtual machine running Red Hat or Cent OS

book

Article ID: 316393

calendar_today

Updated On: 05-01-2025

Products

VMware Desktop Hypervisor VMware vSphere ESXi VMware Workstation VMware Workstation 10.x (for Linux) VMware Workstation 16.x Pro (for Windows) VMware Workstation 17.x Pro (for Windows) VMware Workstation 6 (for Windows systems) VMware Workstation 7 (for Linux) VMware Workstation 8.x (for Linux) VMware Workstation Player 12.x VMware Workstation Pro 14.x (for Windows) VMware Workstation Pro 15.x (for Windows) VMware Fusion 13.x Pro VMware Fusion VMware Fusion Pro 10.x VMware Fusion Pro 7.x

Issue/Introduction

This article provides steps for extending the root partition residing in a logical volume created with Logical Volume Manager (LVM) in a virtual machine running Red Hat/Cent OS.

Environment

  • VMware Workstation
  • VMware vSphere ESXi
  • VMware Fusion

Resolution

After increasing the VM's hard disk size from Edit Settings, pesent this change to the internal Guest OS by following the below steps.

To extend the logical volume:
 
Caution: VMware recommends to take a complete backup of the virtual machine prior to making these changes.
  1. Power off the virtual machine.
  2. Edit the virtual machine settings and extend the virtual disk size. For more information, see Increasing the size of a virtual disk .
  3. Power on the virtual machine.
  4. Identify the device name, which is by default /dev/sda, and confirm the new size by running the command:

     fdisk -l
     
  5. Create a new primary partition:
    1. Run the command:

      fdisk /dev/sda

      (depending the results of the step 4)
    2. Press p to print the partition table to identify the number of partitions. By default, there are 2: sda1 and sda2.
    3. Press n to create a new primary partition.
    4. Press p for primary.
    5. Press 3 for the partition number, depending on the output of the partition table print.
    6. Press Enter two times.
    7. Press t to change the system's partition ID.
    8. Press 3 to select the newly creation partition.
    9. Type 8e to change the Hex Code of the partition for Linux LVM.
    10. Press w to write the changes to the partition table.
       
  6. Restart the virtual machine.
  7. Run this command to verify that the changes were saved to the partition table and that the new partition has an 8e type:

    fdisk -l
     
  8. Run this command to convert the new partition to a physical volume:

    Note: The number for the sda can change depending on system setup. Use the sda number that was created in step 5.

    pvcreate /dev/sda3
     
  9. Run this command to extend the physical volume:

    Note: To determine which volume group to extend, use the command vgdisplay

    Note: Additionally, for the remainder of the commands, VolGroup00 will be unique to each Guest and should be adjusted to reflect the affected specific VM.

    vgextend VolGroup00 /dev/sda3
     
  10. Run this command to verify how many physical extents are available to the Volume Group:

    vgdisplay VolGroup00 | grep "Free"
     
  11. Run the following command to extend the Logical Volume:

    Note: To determine which logical volume to extend, use the command lvdisplay.

    lvextend -L+#G /dev/VolGroup00/LogVol00

    Where # is the number of Free space in GB available as per the previous command. Use the full number output from Step 10 including any decimals.
     
  12. Run the following command to expand the ext3 filesystem online, inside of the Logical Volume:

    Note:
    • Use resize2fs instead of ext2online for non-Red Hat virtual machines.
    • Use xfs_growfs for Red Hat, CentOS 7 and other VM Guest OS types that use the XFS file system.
ext2online /dev/VolGroup00/LogVol00
 
  1. Run the following command to verify that the / filesystem has the new space available:

    df -h /


Note: Defer to Red Hat or Cent OS for maximum size for logical volumes based on OS versions.

Additional Information

For more information, see The Linux Logical Volume Manager from Redhat.

Note: If the extended vmdk does not reflect the new size under Linux guest OS, rescan SCSI device using the following command:

echo 1 > /sys/block/$DEVICE/device/rescan where $DEVICE is 'sda'

For example:

echo 1 > /sys/block/sda/device/rescan