How to Run Windows 7 on Hyper-V from a Modern UEFI System
A complete guide to converting a Windows 7 installation from UEFI/GPT to BIOS/MBR so it can successfully boot inside a Hyper-V Generation 1 virtual machine.
Running Windows 7 on modern hardware inside Hyper-V isn’t as straightforward as it should be. If you’ve tried the usual physical-to-virtual (P2V) methods, you’ve likely hit a frustrating dead end.
The Core Problem
Modern systems use UEFI with GPT, while Hyper-V presents two incompatible options:
- Generation 1 VM → Supports Legacy BIOS only (no UEFI)
- Generation 2 VM → Supports UEFI, but Windows 7 lacks proper Class 3 UEFI graphics support
The result? A system that either won’t boot at all or hangs at “Starting Windows.”
The root issue is not the OS itself, but the mismatch between firmware expectations and disk partitioning.
The Working Solution
The only reliable workaround is:
- Convert the disk from GPT → MBR
- Rebuild the bootloader for Legacy BIOS
- Run the VM as Generation 1
This guide walks through the exact process.
Phase 1: Capture the Disk (Disk2vhd)
First, create a virtual copy of your physical machine.
Steps:
- Download and run Disk2vhd (Sysinternals)
- Select:
- Your C: drive
- Any System Reserved / EFI partitions
- Keep Use VSS enabled (recommended)
- Optional: Uncheck Use VHDX for maximum compatibility
Click Create to generate the virtual disk.
Notes:
- VSS ensures a consistent snapshot
- Capturing EFI is important (we’ll remove it later)
Phase 2: Convert GPT to MBR (DiskGenius)
Now we adapt the disk for BIOS compatibility.
Steps:
- Mount the VHD/VHDX
- Open DiskGenius
- Select the virtual disk
- Right-click the disk → Convert to MBR Partition Table
- Click Save All
Clean Up Partitions:
- Delete:
- EFI partition (~100MB)
- MSR partition (~16MB)
- Keep only:
- Main Windows partition
Mark Active:
Right-click the Windows partition → Mark as Active
In BIOS systems, the “Active” flag tells the machine where to boot from.
Finally, click Save All and unmount the disk.
Phase 3: Rebuild the Bootloader
Now we rebuild Windows boot files for BIOS.
Setup:
- Create a Generation 1 VM
- Attach VHD/VHDX to IDE Controller 0
- Boot using a Windows 7 or Windows 10 ISO
- Press Shift + F10 to open Command Prompt
Step 1: Verify Disk
diskpart
list disk
select disk 0
list partition
select partition 1
active
exit
Step 2: Rebuild Bootloader
:: Update MBR boot code
bootsect /nt60 C: /mbr /force
:: Rebuild boot files
bcdboot C:\Windows /s C: /f BIOS
Important Note:
-
If
/f BIOSfails (on older ISOs), run:bcdboot C:\Windows /s C:
Phase 4: Fix 0x7B BSOD (Optional)
If Windows crashes with INACCESSIBLE_BOOT_DEVICE (0x7B), it’s a driver issue.
Cause:
Your physical system used modern storage drivers (e.g., NVMe), but Hyper-V uses IDE.
Fix:
reg load HKLM\OFFLINE C:\Windows\System32\config\SYSTEM
reg add HKLM\OFFLINE\ControlSet001\Services\atapi /v Start /t REG_DWORD /d 0 /f
reg add HKLM\OFFLINE\ControlSet001\Services\intelide /v Start /t REG_DWORD /d 0 /f
reg add HKLM\OFFLINE\ControlSet001\Services\pciide /v Start /t REG_DWORD /d 0 /f
reg unload HKLM\OFFLINE
Final VM Configuration Checklist
Before booting, confirm:
- Generation: 1
- Disk: Attached to IDE Controller 0
- DVD Drive: Remove after repair
- Network: Use Legacy Network Adapter if needed
Conclusion
Virtualizing Windows 7 from a modern machine isn’t broken—it’s just mismatched.
By converting:
- GPT → MBR
- UEFI → BIOS bootloader
…you align the system with what Hyper-V Generation 1 actually expects.
Once done correctly, the VM boots reliably and behaves just like a native legacy system.
Sometimes the solution isn’t upgrading forward—it’s adapting backward.”
Share this article