I've upgraded Window 10 to 11 on several physical machines, and in even in Virtual Machine Manager successfully, but so far I haven't been able to accomplish it in Proxmox.
I have Windows 10 VM still on MBR. These commands convert MBR to GPT (which is needed for UEFI):
Code:
mbr2gpt /validate /disk:0 /allowfullos
mbr2gpt /convert /disk:0 /allowfullos
mbr2gpt shirks the partition to make room for a EFI partition of the same disk.
After shutdown, this new GPT partition won't boot until you enable the UEFI bios in Proxmox. Which automatically enables secure boot, but I have to reset the Secure Boot keys before I can boot.
Promox warns that I need to add an EFI partition when I enable UEFI, but mbr2gpt created an EFI partition when I converted MBR to GPT. So, it isn't clear to me whether I need to add another EFI in Proxmox or not. I've tried upgrading to Windows 11 with and without Promox-added-EFI.
Also, I upgraded the VM's ram from 4GB to 8GB, and switch machine-type to q95 and added TPM 2.0
I've tried every combination of doing these things above that I can think of, and each time the Window 11 upgrade fails with this error:
[ 0xC1900101 - 0x20017 The installation failed in the SAFE_OS phase with an error during BOOT operation ]
I can't think of a way around this.
UPDATE:
I migrated this Windows 10 virtual machine to a newer node in my cluster and it upgraded fine. It could be that the particular node I was trying to upgrade this on had an processor too old to properly emulate something that Window 11 was needing. I'm not sure.
One way to discover the exact settings needed, when upgrading Window 10 to 11, is to do a clean installation of Windows 11 first (in a new VM) as a means of discovering the exact settings that work.
These were my final hardware setting for the successful upgrade:
Notice that I didn't have to add a separate EFI drive like Proxmox warns about when setting the bios to UEFI, because an EFI partition was already created (on the existing virtual hard drive) when I convert the existing drive from MBR to GPT (as shown earlier).
Anyway, I hope this helps someone.