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.
- 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)
- 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.
- 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)
- 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.