Thanks for posting on our forum!
Based on your condition, the reason why you cannot start your VM and got such an error message is that your boot disk (vhd or vhdx file) is not available or is corrupted. Since you can run your VM before, I think the issue cause may be the latter one, but we still need to check if your vhd(x) file is corrupted or not.
You have two ways to troubleshoot if your issue is related to a corrupted vhd(x) file:
- Open your PowerShell by type PowerShell in the box at the left bottom corner of your screen, and right-click, choose Run as Administrator. When you enter into the console, type and run command:
Dism /Online /Clean-Image /CheckHealth
——This command will help you to completely scan the VHD file for corruption.
Dism /Online /Cleanup-Image /ScanHealth
——This command will tell you whether the VHD file is corrupted or not and it will also tell that is it possible to fix the VHD file.
Dism /Online /Clean-Image /RestoreHealth
——This command will repair the VHD file.
- Create a new virtual machine, and during the creation process, choose "use existing virtual hardware disk". In this way, you can create a new VM with the problematic vhd(x) file. If this action is successful, then your vhd file should be fine. Besides, choose Gen1 when you create your new VM.
If your vhd file is corrupted, you can also use PowerShell command to fix your corrupted vhd file.
Run the PowerShell commands given below (change your details as per requirement):
#First we choose what VHD we want mounted
$VHDName = "V:\serverx.vhd"
#Get the MSVM_ImageManagementService
$VHDService = get-wmiobject -class "Msvm_ImageManagementService" -namespace "root\virtualization" -computername "."
#Now we mount the VHD
$Result = $VHDService.Mount($VHDName)
#Now you can run a CHKDSK on this VHD file: chkdsk /f
In addition, if you are not confident with PowerShell, there are a couple of other methods for you to try to fix your vhd file. Here are two methods:
1) Create Virtual Server
By creating a virtual server a corrupt VHD could be fixed. You have to follow the below steps to achieve the task: Create a new Virtual server and attach a new Hard Disk Drive to the server. Go to settings and attach the Hard disk. Browse for the VHD file in connected Hard drive. Now, select Virtual Disk Wizard and choose a Compact (Check-box states as convert it to a fixed size virtual hard disk). Now, you can save the VHD file at the selected location.
2) Use third-party vhd recovery tools
After my research, Windows VHD tool may be out-of-date and that's why you can hardly find the link any more. However, our Microsoft suggests Top 5 third-party tools (which are our partners) you can use, here is the link:
Other approaches to fixing corrupted vhd files can be seen in this article (please focus on Method #5: Fix Hyper V VHDX Files With Inbuilt Utility):
(Please note: Information posted in the given link is hosted by a third party. Microsoft does not guarantee the accuracy and effectiveness of information.)
And in this Docs, we also discuss the methods:
If your issue is not related with corrupted vhd file, give me the feedback and we can consider the unavailability of your boot disk.
Thanks for your support!
If the Answer is helpful, please click "Accept Answer" and upvote it.
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.