2

I have a virtual machine running Ubuntu 12.04 which I created using Hyper-V in a Windows 8.1 host. At one point, I had a very large file in my virtual machine which caused my dynamically expanding hard drive to grow to almost 200 GB. Since then, I have removed the file and I am trying to shrink the hard drive file back down. As you can see from this screenshot of GParted from within Ubuntu, I am not using a lot of disk storage:

192 GiB unused

I tried using the "compact disk" option within Hyper-V settings; however, this did not affect the size of the vhdx file in the host which remains close to 200 GB in size. I also tried following these instructions for using Windows' diskpart utility, but this also had no effect. Am I missing something? Is there something else I can try?

1
  • @Ramhound I think either I'm not understanding what you're saying or you're not understanding what I'm saying. I don't want to reduce the capacity of the virtual hard drive. I want that to remain 200 GB. I just want to reduce the size of the .vhdx file because the drive is currently only storing 6 GB of data.
    – Daniel
    Commented May 11, 2017 at 20:18

1 Answer 1

0

I strongly suggest you take steps to make a copy of the .vhdx before you modify it. In order to change the size of an existing .vhdx file, you should first mount the virtual hdd by using the command: mount-vhd in an elevated PowerShell command prompt.

mount-vhd \\FS01\vmdata\AS02_C.vhdx -passthru | get-disk | get-partition | get-volume

The output of the command will look like

enter image description here

If you want to change the size of one of the partitions by using: resize-partition in an elevated PowerShell command prompt.

resize-partition -driveletter E -size 35GB

Before you can change the size of the virtual hdd you will have to use the command: dismount-vhd in an elevated PowerShell command prompt.

dismount-vhd \\FS01\vmdata\AS02_C.vhdx

Once you have modified the partition size and dismounted the virtual HDD, you can modify the size of the virtual hdd by using the command: resize-vhd in an elevated PowerShell command prompt.

resize-vhd \FS01\vmdata\AS02_C.vhdx -ToMinimumSize

Source: Resize-VHD

3
  • This process seems to work specifically for NTFS drives. The one I'm dealing with is ext4. Running the first command in your answer yields no output at all.
    – Daniel
    Commented May 11, 2017 at 20:47
  • This does not work for VHDs with Linux on it. After any resize attempts with cmdlets or other options it destroys boot partitions and partition table completely.
    – igor
    Commented Mar 26, 2023 at 20:33
  • @Ramhound unfortunately, it is not OS agnostic. Ubuntu boots after copying or converting VHD to both fixed or dynamic VHDX. No problem there. But it breaks after Resize-VHD either with specific size or to minimum size. It destroys partition table if you try to shrink.
    – igor
    Commented Mar 27, 2023 at 10:58

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .