Frequently Asked Question
VMWare Fusion "the specified virtual disk needs repair" when trying to run a virtual machine
Last Updated 5 years ago
VMWare stores virtual machines in disk files that contain an entire filesystem. The format of these files are proprietary so when they get damaged the only way to repair is to use proprietary repair tool.
These instructions are for MacOS, but windows is basically the same.
Open a Terminal window.
locate the virtual machine file that is damaged. If your not sure which it is then open VMWare Fusion, Select the Virtual Machine, Select Settings, then Hard Disks and the file will be shown at the top.
Now locate this file on disk. You can use a find tool for this or native linux commands such as
find / -name "Windows 7-0-cl1.vmdk"
change to that directory using cd and double check the file exists with ls
Now run the repair with
"/Applications/VMware Fusion.app/Contents/Library/vmware-vdiskmanager" -R "Windows 7-0-cl1.vmdk"
The Quotes are important because there are spaces in the path and filenames.
After this is complete you should receive a response similar to
The virtual disk, 'Windows 7-0-cl1.vmdk', was corrupted and has been successfully repaired.
And there you have it. You should now be able to start up the virtual machine just fine.
Further Actions
Whilst you've located the file and have the command line in the buffer its worth running a defragment which will speed up the vm. Make sure VMware fusion is NOT running and then execute
"/Applications/VMware Fusion.app/Contents/Library/vmware-vdiskmanager" -d "Windows 7-0-cl1.vmdk"
These instructions are for MacOS, but windows is basically the same.
Open a Terminal window.
locate the virtual machine file that is damaged. If your not sure which it is then open VMWare Fusion, Select the Virtual Machine, Select Settings, then Hard Disks and the file will be shown at the top.
Now locate this file on disk. You can use a find tool for this or native linux commands such as
find / -name "Windows 7-0-cl1.vmdk"
change to that directory using cd and double check the file exists with ls
Now run the repair with
"/Applications/VMware Fusion.app/Contents/Library/vmware-vdiskmanager" -R "Windows 7-0-cl1.vmdk"
The Quotes are important because there are spaces in the path and filenames.
After this is complete you should receive a response similar to
The virtual disk, 'Windows 7-0-cl1.vmdk', was corrupted and has been successfully repaired.
And there you have it. You should now be able to start up the virtual machine just fine.
Further Actions
Whilst you've located the file and have the command line in the buffer its worth running a defragment which will speed up the vm. Make sure VMware fusion is NOT running and then execute
"/Applications/VMware Fusion.app/Contents/Library/vmware-vdiskmanager" -d "Windows 7-0-cl1.vmdk"