Hi, I have a similar problem. I'm currently replacing a Hyper-V Server 2019 with a Hyper-V 2025. There are still two Windows Server 2012 R2 VMs on the Hyper-V 2019 server. After exporting and then importing to the Hyper-V 2025, the VM won't boot. Error: Inaccessible Boot Device. I tried the workaround with the SCSI controller, but unfortunately it didn't help. Regards, Oliver
Problem booting Windows 2012R2 VM on Windows 2025 Hyper-V
We're having a problem with a Windows Server 2025 Hyper-V cluster.
We have 2 identical clusters (same hardware, same BIOS version) and when we move a Windows 2012R2 VM from one cluster to another it does not boot any more (tested with 2 different VM's).
The error is a blue screen 0x7B (INACCESSIBLE_BOOT_DEVICE).
If we move the machine back to the other cluster it boots just fine.
Only difference I see is the cluster path level. The working cluster is an older Windows Update (KB5058411, KB5058523 and KB5054979).
Whereas the newer cluster has KB5063666, KB5062553, KB5056579 and KB5059502. It tried installing KB5064489 also, but that does not help.
A VM with Windows server 2022 of 2025 does move fine, so it seems to be linked to 2012R2.
I also tried to install a brand new 2012R2 VM from the original iso and then completely upgrading it with Windows Update and that machine is working fine. It seems to have the same verson of storage drivers as the non working VM.
The faulting VM does boot succesfully into recovery mode. I tried bootrec /fixmbr and bootrec /fixboot, but that does not help.
Windows for business | Windows Server | Storage high availability | Virtualization and Hyper-V
12 answers
Sort by: Most helpful
-
-
BryceSor 3,965 Reputation points Volunteer Moderator
2025-07-23T07:35:30.35+00:00 Hi Stefan,
I been watching this post and ask CP if a script would help in your case to check the drivers etc in your 2012r2 VM.
Its up to you to try it but I hope it helps .
Absolutely, Bryce. Here's a PowerShell script tailored to check whether key storage and synthetic drivers (like
storvsc
,vmbus
,winhv
) inside a Windows Server 2012 R2 VM are:- Present and properly registered in the system registry
Configured to load during boot
Part of the correct driver group (e.g.,
System
for boot-critical)Compatible with newer Hyper-V patch levels
You can run this inside the affected VM (or remotely with PowerShell Direct):
powershell
# PowerShell Script: VM Boot Driver Audit Tool for Windows Server 2012 R2 $driversToCheck = @("storvsc", "vmbus", "winhv") foreach ($driver in $driversToCheck) { $path = "HKLM:\SYSTEM\CurrentControlSet\Services\$driver" Write-Host "`n--- Auditing Driver: $driver ---" if (Test-Path $path) { $props = Get-ItemProperty $path Write-Host "Start value:`t" $props.Start Write-Host "Group:`t`t" $props.Group Write-Host "Type:`t`t" $props.Type Write-Host "ImagePath:`t" $props.ImagePath } else { Write-Host "❌ Driver '$driver' registry key not found!" } } Write-Host "`n--- OS and Integration Services Info ---" Get-HotFix | Sort-Object InstalledOn | Select-Object Description, HotFixID, InstalledOn (Get-WmiObject Win32_OperatingSystem).Caption
🧠 What to Look For in Output
For
storvsc
, ideally:Start
=0
→ Loaded during bootGroup
=System
Type
=1
(Kernel Driver)If
Start
is3
(Manual), the driver won’t load early enough, which is a major cause of the0x7B
BSOD.Also, compare
HotFixID
s against the new working 2012 R2 image to see if patch level might be helping it survive the new cluster environment. -
BryceSor 3,965 Reputation points Volunteer Moderator
2025-07-23T22:16:41.1166667+00:00 Did you try this using Henry Mai method,
You can refer the procedure below as it can force the 2012 R2 guest OS to automatically install and register the storvsc.sys driver as a boot-critical device
- Move the problematic VM back to the working cluster and boot it up.
- Shut down the VM. In Hyper-V Manager, go to its Settings.
- Add a SCSI Controller to the VM. You don't need to attach a disk to it; just adding the controller hardware is enough.
- Start the VM again (on the working cluster). Log in and allow Windows to detect the "new" SCSI controller and automatically install the driver (storvsc.sys). You can verify it appears in Device Manager.
- Once the driver is installed, shut down the VM.
- You can now remove the temporary SCSI controller you added in step 3.
- Move the VM to the new cluster and try to boot it.
Why This Works
When you add a new SCSI device, Windows:
Detects the virtual SCSI controller (storvsc)
Loads storvsc.sys during device discovery
Automatically updates the registry under HKLM\SYSTEM\CurrentControlSet\Services\storvsc to mark it as boot-critical (Start=0, Group=System)
Even though storvsc.sys is already present, older VMs sometimes lack proper boot-time flags, especially if they've never been re-initialized on newer Hyper-V hardware. This update convinces Windows to commit to using storvsc.sys during boot.
-
Andy Bryant 15 Reputation points
2025-07-24T10:57:09.7266667+00:00 I have exactly the same problem as Stefan. It's all the more frustrating as I can export/import the VM's to 2016 & 2022 Hyper-V hosts and they work flawlessly. Also, if I create a vanilla 2012R2 VM, leave unpatched, go through the export/import cycle that also works. So, it looks like it's something that was introduced in a Windows Update somewhere along the line. Looking on the EFI partition there are some differences there. Ultimately, the 2012R2 VM's will be replaced but I need to get them on to the new cluster first.
I tried adding an additional SCSI controller, but I also didn't have success.
-
BryceSor 3,965 Reputation points Volunteer Moderator
2025-07-24T21:16:34.9266667+00:00 Both showing so its down to a patch or KB how it changed the way its interacts with the host.
all start valves should be set at 1
--- Auditing Driver: storvsc ---
Start value: 0
Group: Base
Type: 1
ImagePath: System32\drivers\storvsc.sys
--- Auditing Driver: vmbus ---
Start value: 0
Can you make a copy of the VM just for testing and try the following,
Boot the problematic VM on the older cluster and:
powershell
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\storvsc" -Name Start -Value 1 Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\vmbus" -Name Start -Value 1 New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Services\winhv" -Force | Out-Null Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\winhv" -Name Start -Value 1
Then shut down, export, and move to the patched cluster. This forces early driver load on the one running Windows Server 2025, specifically the host that includes the newer update set: KB5063666, KB5062553, KB5056579, KB5059502, and possibly KB5064489