Let us pretend that you have an Ubuntu Server which has been running for several years and it has been doing it’s assigned task(s) nicely, until one day you make a change to your methodology/assumptions/workflow/tasks therefore the allocated Virtual Hard Drive (VHD) size is no longer sufficient. There are many reasons for this, but I ran into this issue twice in one weekended because I enabled a JDS as a Distribution Point (thus MySQL was eating needing a lot of space) and wanting to test multiple NetBoot NBI sources (because 10.10.2 seems to be causing imaging troubles). I need to increase the size of two different VHDs, however if you setup your Ubuntu Server via “Easy Install Mode” enlarging the VHD is not that strait forward.

Doing a quick search to see what VMware has to say about this issue returns less than helpful information for Ubuntu Servers by stating man fdisk. Google searching throws a lot of ideas, therefore I’m providing what I’ve learned from a couple of hours of research.

Increase size? I don’t think that word means what you think it means

First lets get a baseline of a default “Easy Install” of Ubuntu Server. We can see that we have a 20GB VHD by several ways:

  • Looking at our VMware Fusion Setup
  • Running sudo fdisk -l
  • Running df -H

Here is my test VM as it stands right now. You can see the VHD settings are for 20GB (really 21.5, guessing there is a rounding error somewhere), and that our primary partition is /dev/sda1 with 19GB drive.

sadmin@ubuntu:~$ sudo fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0001bae9

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    37750783    18874368   83  Linux
/dev/sda2        37752830    41940991     2094081    5  Extended
/dev/sda5        37752832    41940991     2094080   82  Linux swap / Solaris

sadmin@ubuntu:~$ df -H | grep sda
/dev/sda1        19G  1.4G   17G   8% /

Now it would be really nice if VMware Fusion’s tools to increase the VHD worked as expected. If we could just simply move our slider (or type in a new value) for our desired HD space that would actually increase our storage space, that would be perfect!

EasyVHD 1
Result VMware Fusion VHD setting after adjusting from 20GB to 30GB.

We start our Ubuntu Server to verify that our new drive is now 30GB of storage, however what we see is the Virtual Environment believes we have 30GB (32.2 specifically) but our /dev/sda1 partition is still at 19GBs?!

sadmin@ubuntu:~$ sudo fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders, total 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0001bae9

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    37750783    18874368   83  Linux
/dev/sda2        37752830    41940991     2094081    5  Extended
/dev/sda5        37752832    41940991     2094080   82  Linux swap / Solaris

sadmin@ubuntu:~$ df -H | grep sda
/dev/sda1        19G  1.4G   17G   8% /

What we have done is expanded the allowable space to be used, but we didn’t actually adjust the partition size. We need to do that with some more awesome open source tools.

Steps to Increase your VMware Fusion partition

First we are going to use a Linux Live CD called GParted. Download their 234MB ISO to your VMware Fusion host so you can attached the ISO to the CD/DVD drive. Once attached, use the Startup Disk options in VMware Fusion to select the CD/DVD drive.

EasyVHD 2 EasyVHD 3
GParted attached as a CD/DVD drive, then booting from that drive.

Assuming you are a native English speaking individual and that you have a “US” keyboard setup, you can safely hit the Enter key for a couple of times to get to the GParted application. GParted will show you some critical information that we must overcome:

  • Our original partition of 20GB is at the beginning
  • Our swap space is in the middle
  • Our extra space is at the end

Unfortunately with this GUI application you cannot just “drag” or “move” the extra space next to our original drive to expand your partition. Instead, we have to methodically move things around so everything lines up in the proper order. To do this we’ll perform the following steps in order:

  • Enlarge the “extended” space to take over our unallocated area
  • Move our swap space from the beginning to the end of our “extended” space
  • Truncate the “extended” space to only focus on the swap space
  • Enlarge our primary partition to use the new unallocated area
EasyVHD 4
Select the /dev/sda2 "extended" and Resize/Move to take over the unallocated area, and hit apply.
EasyVHD 5
Select the /dev/sda5 "linux-swap" and Resize/Move to the end of our extended area, and hit apply.
EasyVHD 6
Select the /dev/sda2 "extended" to create new unallocated space preceding the "linux-swap" space.
EasyVHD 7
Select the /dev/sda1 and Resize/Move to take over our new unallocated area.
EasyVHD 8
Verify our primary partition now has the 30GB storage (minus 2GB for swap in this example).

To verify everything is running again, change your startup disk back to your Hard Drive in VMware Fusion, restart your VM and run the same commands from the beginning.

sadmin@ubuntu:~$ sudo fdisk -l

Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders, total 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000752bd

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    58724351    29361152   83  Linux
/dev/sda2        58724352    62914559     2095104    5  Extended
/dev/sda5        58726400    62914559     2094080   82  Linux swap / Solaris

sadmin@ubuntu:~$ df -H | grep sda
/dev/sda1        30G  1.4G   27G   5% /

Sources

Comments

Leave a Comment

Your email is used for Gravatar image and reply notifications only. Address will not be published. *

Loading...