Linux (CentOS) Filesystem Drive Expansion – How To

I received a request last year to expand a Linux drive and I remember it took me 30-40 minutes to find the correct article to apply in order to achieve the goal (in this case, the expansion of the filesystem drive). I ended up forgetting all about it till recently when another ticket came in to do the same task on a different server and I had to go searching for this article again so I figured it is definitely worth sharing.

This took place on VMWare 5.5 and CentOS 6.5 systems.

Instructions:

  • Shutdown the VM
  • Right click the VM and select Edit Settings
  • Select the hard disk you would like to extend
  • On the right side, make the provisioned size as large as you need it
  • Click OK
  • Power on the VM
  • Connect to the command line of the Linux VM via the console or putty session
  • Log in as root
  • The fdisk command provides disk partitioning functions and using it with the -l switch lists information about your disk partitions.  At the command prompt type fdisk -l
  • The response should say something like Disk /dev/sda : xxGB. (See Figure A)
  • linux_a
  • At the command prompt type fdisk /dev/sda. (if dev/sda is what was returned after step 10 as shown in Figure A)
  • Type p to print the partition table and press Enter (also shown in Figure A)
  • Type n to add a new partition
  • Type p again to make it a primary partition
  • Now you’ll be prompted to pick the first cylinder which will most likely come at the end of your last partition (ex: /dev/sda3 ends at 2610).  So I chose 2611 for my first cylinder, which is also listed as the default.
  • If you want it to take up the rest of the space available (as allocated in step 4), just choose the default value for the last cylinder.
  • Type w to save these changes
  • Restart the VM
  • Log back in as root
  • At the command prompt type fdisk -l. You’ll notice another partition is present.  In Figure B it is listed as sda4.
  • linux_b
  • You need to initialize this new partition as a physical volume so you can manipulate it later using the Logical Volume Manager (LVM).
  • Now you’ll add the physical volume to the existing volume group using the vgextend command. First type df -h to find the name of the volume group.  In Figure C, the name of the volume group is vg_root. Now type vgextend [volume group] /dev/sdaX. (ex: vgextend vg_root /dev/sda4)
  • linux_c
  • To find the amount of free space available on the physical volume type vgdisplay [volume group] | grep “Free”
  • Extend the logical volume by the amount of free space shown in the previous step by typing lvextend  -L+[freespace]G /dev/volgroup/volume. (ex: lvextend -L+20G /dev/vg_root/lv_root)
  • You can finally expand the ext3 file system in the logical volume using the command resize2fs /dev/volgroup/volume (ex: resize2fs /dev/vg_root/lv_root).
  • You can now run the df command to verify that you have more space–df -h

I hope you enjoyed and find this useful just like I did.

Credit: http://www.techrepublic.com/blog/smb-technologist/extending-partitions-on-linux-vmware-virtual-machines/