Increase Your VMware Virtual Hard Disk Size ( vmdk file )

Posted on in Categories Backup, Hardware, Howto, Linux desktop, Linux Virtualization, Storage, Sys admin, Tips, Ubuntu Linux, vmware, windows vista last updated June 9, 2009

I‘ve Windows Vista installed as a guest under Ubuntu Linux using VMWARE Workstation 6.0. This is done for testing purpose and browsing a few site that only works with Internet Explorer. Since I only use it for testing I made 16GB for Vista and 5GB for CentOS and 5GB in size for FreeBSD guest operating systems. However, after some time I realized I’m running out of disk space under both CentOS and Vista. Adding a second hard drive under CentOS solved my problem as LVM was already in use. Unfortunately, I needed to double 32GB space without creating a new D: drive under Windows Vista. Here is a simple procedure to increase your Virtual machine’s disk capacity by resizing vmware vmdk file.

Required Tools

  1. VMWare Product : Working Virtual machine and Vmware Workstation (it will work with other vmware product such as GSX Server and VMware Server).
  2. GParted LiveCD : Third-party utility to expand the size of a virtual disk.

Step # 1: Shutdown The Guest Operating System

Shutdown and poweroff Windows Vista.

Delete all your snapshots from snapshot manager by visting VM > Snapshot Manger. Since you are going to resize you virtual disk, these snapshots going to create a problem for you.

Backup your entire virtual machine. My VM is located at /share/vms/WindowsVista. So I made a backup:
# cp -arv /share/vms/WindowsVista /safe/path/to/vm/05062009/
OR
# rsync /share/vms/WindowsVista [email protected]:/.dumps/vms/05062009/
Another option is you can clone your guest in VMware, if you want to keep the existing virtual machine configuration by visiting VM > Clone option.

Step # 2: Increase Your Virtual Machine’s Disk Capacity

Open shell prompt and type the following command:
# /usr/bin/vmware-vdiskmanager -x {diskSize}GB yourvm.vmdk
If you are using Windows operating host system change directory to C:\Program Files\VMware\VMware Workstation or add this to your PATH settings. Click on Start > Run and type cmd to open Windows shell prompt:
vmware-vdiskmanager -x {diskSize}GB "c:\vm\yourvm.vmdk"
OR use full path as follows
C:\Program Files\VMware\VMware Workstation\vmware-vdiskmanager -x {diskSize}GB "c:\vm\yourvm.vmdk"

Example: Increase Size to 32GB

Linux host example:
# /usr/bin/vmware-vdiskmanager -x 32GB /share/vms/WindowsVista/vista.vmdk
Windows host example:
C:\Program Files\VMware\VMware Workstation\vmware-vdiskmanager -x 32GB "c:\vm\centos.vmdk"

Step # 3: Expand The Size Of a Virtual Disk

Now, disk size is increased but operating system will only show 16GB used and 16GB unused. To add new 16GB to C: (i.e. expand the size of a a virtual disk), use GParted. You will need to use a third-party utility such as GParted to resize the expanded partitions. The GParted application is the GNOME partition editor for creating, reorganizing, and deleting disk partitions. GParted is a live Linux based CD. Download latest version here or use wget command as follows:
$ cd /tmp
$ wget http://nchc.dl.sourceforge.net/sourceforge/gparted/gparted-live-0.4.5-2.iso

Start Vmware

Select your VM (such as Windows Vista). Click on VM menu > Select Properties > Select CD / DVD > Use ISO Image > Click on Browse > Select /tmp/gparted-live-0.4.5-2.iso > Ok > Save.

Fig.01: Boot From Gparted Live CD
Fig.01: Boot From Gparted Live CD

Start your virtual machine. Press F2 to visit Vmware BIOS menu. Make sure boot option order is set as follows (CDROM drive should be the first boot device):

Fig.02: Allow Virtual Machine To Boot From a Live CD
Fig.02: Allow Virtual Machine To Boot From a Live CD

Hit [F10] function key to save and exit BIOS menu. Within minutes you will boot into Gparted Live CD.

Select your disk (such as /dev/sda1).

Click on Resize/Move button.

Set a new size to maximum size (it is displayed on the screen itself).

Fig.03: Resizing Windows Vista Virtual Disk
Fig.03: Resizing Windows Vista Virtual Disk

Finally, hit Resize/Move button to start the process:

Fig.04: Gparted in action
Fig.04: Gparted in action

Depending on the amount (disk size and storage type) and type (resize or move) operation resize may tae a long time. After sometime Gparted will give out the final confirmation about disk resize operation (you must not get any error on screen):

Fig.05 Gparted resize disk operation
Fig.05 Gparted resize disk operation

Click on exit button shutdown Gparted.

Step # 4: Fix Windows MBR and Partition Issue

  1. Get your Windows Vista CD and insert the installation disc.
  2. Click Repair your computer to fix MBR and other small issue.
  3. When the repair process is complete, click Finish.

Step # 5: Verify Your Disk Space

Make sure the virtual machine configured to start from a hard disk by pressing F2 key. Save and exit BIOS. Once done, you should able to boot into Windows vista (chkdsk may run at startup). Just verify your disk space:

Fig.06: Windows Vista Running As Guest with 32GB virtual disk space.
Fig.06: Windows Vista Running As Guest with 32GB virtual disk space.

Recommend Readings:

  1. The official Vmware website and documentation.
  2. A Stop error occurs, or the computer stops responding when you try to start Windows Vista.
  3. Resize Windows Partition with Open Source Software.

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

36 comment

  1. Great step by step just got some trouble then now it work like a charm, i just get the turn around..
    @ ulver if you want to de-crease it.. But go to gparted first to deacrease it using resize. Then delete the unallocated part of the this. the use repair from windows.

    Actually i use Windows 7 RC

  2. I’ve follow that step by step but when I open gparted in my vmware console, there’s disable option for resize button. I am using xubuntu 9.04 host and FreeBSD 6.3 Guest. I just don’t know where the wrong part is.

  3. I am running ubuntu 8.04 using VMWare on Windows XP. I downloaded the vmware-vdiskmanager through the VDDK Development Kit (Since I am using VMWare Player. I have read a few posts stating that Ubuntu will automatically recognize and increase the vmdk but that is not happening. Any comments/suggestions?

    Thanks.

  4. I usually use the Free download:
    VMWare Converter

    Tell it the source VM image
    Tell it the folder to put the new image into
    Tell it to enlarge the drive

    don’t know if this works with VM Player… I’m running workstation 6.x

  5. Great post. Although I am new to Linux, this post/tutorial really worked for me. Just as comment, with VMWare Workstation 7 there is the possibility to Power on to BIOS directly from the Menu (VM ->Power -> Power on to BIOS).

    Many thanks.

  6. MY host os : Vista
    Guest Os : Ubuntu
    when i running the command
    c:/programfiles/vmware/vmware-vdiskmanager -x 16GB “C:/ubuntu/ubuntu.vmdk”
    i am getting the following error:
    failed to expand the disk “C:/ubuntu/ubuntu.vmdk” one of the paremeters applied is invalid
    any help apprecitated …..pls

  7. Hey thanks for the tutorial!

    I was able to resize the disk but when I go into GParted I only have the option to increase the size of my extended partition not the ext3 boot partition (Running Ubuntu Server). Any way to fix that / make it work?

  8. I nominate you for hero of the day. Other nominees include whoever it was that created that gparted live disk. Freaking brilliant, thanks much! Went from frustrating problem, to google, to your site, to problem solved in about 5 minutes.

  9. Easier method in Vista and above –

    In Windows guest, move virtual memory location to another drive
    Shut down VM
    Perform steps one and two above
    Boot into VM
    Control Panel, Administrative Tools, Computer Management, Disk Management
    Right click the Volume and select Extend Volume.
    No need for GParted or Windows OS .iso!!
    Move virtual memory back to this drive if desired.

  10. Thank you for this tutorial. It was very helpfull.
    Just one detail : to acced BIOS, the start was to fast, I edit my vmx fil to add the following : bios.bootDelay = “5000”
    Then I was able to press F2 in time !

  11. Only one comment
    If the swap partition is between the unallocated disk and the one we want to resize, you have to move it to the end of the pool, and then you’ll be able to reallocate the disk.
    Bye!

  12. Hi Team,

    I do have a concern on extending the size of Virtaul hard disk, tried by the UI option available in Vmware workstation10.0 but no luck, also tried by using the command its has been grown successfull, but while turning on it is prompt an error “â—¦Failed to open (The parent virtual disk has been modified since the child was created)”

    I’ve three VHD files, unable to get the process for editing CID no of these hard disk.

Leave a Comment