I’ve had a Windows 10 virtual machine on Proxmox for some tasks but thought today was the day to update it so I could upgrade to Windows 11 since Windows 10 support is ending soon. This VM was running in legacy BIOS (SeaBIOS) mode with an MBR disk. It worked fine, but when I started thinking about upgrading to Windows 11 and enabling newer features like Secure Boot and TPM, I knew I’d have to make the jump to UEFI (OVMF) and GPT.
This is the story of how I did it — including the hiccups along the way.
Step 1: Running MBR2GPT
Microsoft provides a handy tool called mbr2gpt that can convert an MBR disk to GPT without data loss.
Inside the Windows 10 VM I ran:
mbr2gpt /convert /disk:0 /allowFullOS
The output was promising:
MBR2GPT: Conversion completed successfully
Call WinReRepair to repair WinRE
MBR2GPT: Failed to update ReAgent.xml, please try to manually disable and enable WinRE.
MBR2GPT: Before the new system can boot properly you need to switch the firmware to boot to UEFI mode!
- Disk conversion succeeded.
- Recovery Environment (WinRE) needed manual fixing. This was because I had previously removed the WinRE partition from the VM.
Step 2: Switching to UEFI in Proxmox
Next, I shut down the VM and updated its configuration:
- BIOS: SeaBIOS → OVMF (UEFI)
- EFI Disk: Added a new EFI disk under Hardware → Add → EFI Disk
- Boot Order: Ensured the EFI disk was first
At this point, I expected Windows to boot… but instead, I hit my first wall.
Step 3: Startup Repair Fails
On reboot, I got the dreaded:
Startup Repair couldn't repair your PC

In the recovery environment, running diskpart showed only the CD-ROM drive. The Windows disk wasn’t visible at all. The issue? Proxmox was presenting the disk using VirtIO, which Windows recovery doesn’t see without drivers.
Step 4: Loading VirtIO Drivers
To fix this, I mounted the VirtIO driver ISO alongside the Windows 10 ISO in Proxmox. Then from the Command Prompt in recovery mode, I ran:
drvload E:\viostor\w10\amd64\viostor.inf
(Adjust the path depending on whether your disk is virtio0 or scsi0.)
After rescanning with diskpart, my Windows disk finally appeared.
Step 5: Rebuilding Boot Files
With the EFI partition visible, I assigned it a letter and rebuilt the boot files:
diskpart
list vol
sel vol <EFI volume>
assign letter=S
exit
bcdboot C:\Windows /s S: /f UEFI
Now the EFI partition contained EFI\Microsoft\Boot\bootmgfw.efi, the UEFI bootloader.
Step 6: The Secure Boot Problem
Reboot attempt #2 brought a new error:
The operating system couldn't be loaded because the digital signature of a file or one of it's depandancies couldn't be verified.
File: \Windows\System32\drivers\netkvm.sys
Error Code: 0xc0000428

This was because I had enabled Secure Boot when creating the EFI disk. Since this Windows install originated as BIOS/MBR, it didn’t have Secure Boot–friendly boot files.
Step 7: The Fix — Disable Secure Boot
The simplest solution was to disable Secure Boot in Proxmox:
- Delete the existing EFI Disk in Proxmox
- Recreate the EFI Disk
- Reboot
This time, Windows booted straight into UEFI mode.
Step 8: Success
I confirmed the system was truly UEFI:
- Run
msinfo32→ BIOS Mode: UEFI
Success!
Lessons Learned
mbr2gptdoes its job well, but expect cleanup tasks afterward.- Windows RE recovery environment needs VirtIO drivers to see your Proxmox disks.
- Secure Boot will almost always fail unless you install Windows fresh in UEFI mode — disable it unless you specifically need it.
- Once converted, your VM is future-proofed for Windows 11 (just add TPM 2.0 in Proxmox).
Final Thoughts
The process was a bit of a rollercoaster, but in the end my Windows 10 VM is now running in UEFI/GPT mode and ready for whatever comes next.
If you’re planning to upgrade your own Proxmox Windows VMs, I’d recommend:
- Taking a backup first
- Having both the Windows ISO and VirtIO ISO handy
- Being ready to disable Secure Boot
Now my VM is ready for Windows 11 and beyond.
Check out my other Proxmox articles here, and please let a comment if this help you out.