Windows 7 Hangs at "Starting Windows"

wsln0734

New Member
Apr 11, 2025
8
3
3
Hey Forums,

I've had a Windows 7 machine running well for a while now, but ever since I had to take the hypervisor down and do some disk maintenance ( Not on the volume where the virtual machine lives heh ) and then bring it back up, I found that this single machine was stuck booting at the "Starting Windows" screen where all the little colors come together and form a windows logo, it was sitting there for a day or to there and when I needed to connect to the machine couldn't.

I've seen other posts about regressing pve-qemu-kvm:amd64 so I tried it to no avail. It seems that once I've upgraded to pve-qemu-kvm:amd64 9.2.0-* or thereabouts this started. I've booted it with a rescue disk to see if the system logs report any kind of crash but can't suss anything out of them since they're all dated prior to the lockup. I've even tried restoring several backups of the VM and they all do the same thing and hang precisely at the "Starting Windows" where the logo comes together and scintillates.

I was wondering if there are any tricks or advanced logging switches I could direct at this to give me some kind of clue what's preventing it from booting. I want to say the Virtio drivers loaded on it are pretty old circa 2023 say 0.1.173. For some reason I thought that new drivers for Windows 7 stopped at that version since it was end of life, but I downloaded the latest Virtio Drivers and to my surprise saw Windows 7 drivers on the disk.

If anyone has any ideas on getting some sort of information out of this VM so I can take a next step I'd appreciate it!
 
Hiya Mib-Ua,

I built up a NEW Windows 7 machine this time with SeaBios and an I440 chipset. It boots fine.

I mounted the broken Windows 7 image under it, ran a chkdsk /x and updated it's drivers using the DISM utility, thinking maybe my drivers were way out of date.

I've even tried changing the VM's Video hardware, and processor type, along with Chipset version, all to no avail.
The Old windows 7 machine boots still to Starting windows, the little dots come together and form a full pulsating windows logo and they just sit there and flash in perpetuity.

Here's the stuck VM's qemu conf for grins:

Code:
#qm rescan --vmid 101
agent: 1
balloon: 0
bios: ovmf
boot: order=scsi0
cores: 4
cpu: host ( I've tried various versions of this to no avail )
efidisk0: WDSCSI0_1POOL:vm-101-disk-2,efitype=4m,size=4M
ide0: none,media=cdrom
ide1: none,media=cdrom
machine: pc-q35-9.2+pve1 <<<--- This used to be pc-q35-8.1 ( I've tried various versions of this to no avail )
memory: 4096
meta: creation-qemu=8.1.2,ctime=1701376670
name: win7machine.hung.local
net0: virtio=BC:24:14:CD:AC:22,bridge=vmbr0,firewall=1,queues=4
numa: 0
ostype: win7
scsi0: WDSCSI0_1POOL:vm-101-disk-0,cache=writeback,discard=on,iothread=1,size=64G,ssd=1
scsi1: WDSCSI0_1POOL:vm-101-disk-1,backup=0,cache=writeback,discard=on,iothread=1,size=2G,ssd=1
scsihw: virtio-scsi-single
smbios1: uuid=36dd566e-2461-4d27-94e9-5ac412befb20
sockets: 1
vga: virtio ( I've tried various versions of this to no avail )
vmgenid: b70b669c-383d-4b24-81f5-e5b285ba75ba

I don't see anything in the event log of the hung machine since 2025/04/05 which is when I took the hypervisor down for backups.

If I find anything I'll let you know, I take periodic stabs at it as time allows.
 
  • Like
Reactions: mib-ua
Windows 7 isn't pure UEFI compliant.
If he is getting some Windows logo animation, he is probably past that stage, but I'm not absolutely sure ......


Trying a stab-in-the-dark:

In recent pve-qemu-kvm: 9.x updates, changes to HPET were made.

Maybe try adding:
qm set 101 --args '-machine hpet=on'

Also try the opposite:
qm set 101 --args '-machine hpet=off'
 
If he is getting some Windows logo animation, he is probably past that stage, but I'm not absolutely sure ......
EDITED : Below statement was for bare metal , Windows 7 in UEFI provided by OVMF with PVE 8.3 works.
it hangs because Windows 7 require INT 10H which exist only in BIOS even if boot from an EFI loader of partition of a GPT disk layout.
INT 10H is emulated on some motherboard, like CSM support.
 
Last edited:
Remove the EFI disk and try to start your Windows 7 VM.
You'll get warning about the missing EFI but Windows will boot again.
Is it working that way for you, then you have to create a new EFI disk with this command:
Code:
qm set <VMID> --efidisk0 <Storage>:0
(of course with the correct ID and storage) and you're good again.
 
  • Like
Reactions: wsln0734 and mib-ua
Windows 7 isn't pure UEFI compliant.
Switch back to SeaBIOS

Hey _gabriel, I'll give it a shot, the machine was created with UEFI, and that's how I built it, I'm not sure why I built it that way, I might have gotten the crazy idea about PCI pass through, but since it was created sometime in 2023 that's the way it's been running. If all other efforts fail I'll of course give it a shot.

If he is getting some Windows logo animation, he is probably past that stage, but I'm not absolutely sure ......


Trying a stab-in-the-dark:

In recent pve-qemu-kvm: 9.x updates, changes to HPET were made.

Maybe try adding:
qm set 101 --args '-machine hpet=on'

Also try the opposite:
qm set 101 --args '-machine hpet=off'

Hey GfnGfn256, after some googling, I saw mentions about the processor type regarding windows 7, so that's why I was tinkering with that there. I didn't however see anything about hpet, I'll give this a try first!

Remove the EFI disk and try to start your Windows 7 VM.
You'll get warning about the missing EFI but Windows will boot again.
Is it working that way for you, then you have to create a new EFI disk with this command:
Code:
qm set <VMID> --efidisk0 <Storage>:0
(of course with the correct ID and storage) and you're good again.

JensF, thanks, I'll try this too! I'll report back once I'm done giving a few of the easy things a shot. Thank you all for your suggestions!
 
Remove the EFI disk and try to start your Windows 7 VM.
You'll get warning about the missing EFI but Windows will boot again.
Is it working that way for you, then you have to create a new EFI disk with this command:
Code:
qm set <VMID> --efidisk0 <Storage>:0
(of course with the correct ID and storage) and you're good again.

Hello JensF, I removed the EFI disk from the VM's hardware page and lo and behold it made it past the Starting Windows screen and booted!

Should I re-create a new EFI disk? Or maybe work on converting this over to a SeaBIOS VM?
 
  • Like
Reactions: mib-ua
Without the EFI disk you always get a warning at boot of the VM.
Best is to have it and the warnings will go away again.
Do this:
Code:
qm set 101 --efidisk0 WDSCSI0_1POOL:0
and you'll get an "old style" EFI without the possibility for Secure Boot and Win 7 and your PVE will not complaining any longer. :)
Edit: I wouldn't do the work of converting. Safe your time.
 
Last edited:
If I remember correctly, INT 10H was a BIOS interrupt for video mode. My thinking: If he shows an animated Windows logo @boot he is probably doing OK with video modes. But as I said above, I may be wrong. I love learning.
Just tried Windows 7 as OVMF / UEFI , and it's works. ( EDIT: on PVE 8.3 )
Bare metal failures stuck in my memory.
 
Last edited:
Howdy Folks,

I created a new EFI Disk, and re-attached it to the VM, when I have secure boot enabled, which I didn't think I did before, it doesn't boot. I get all sorts of can't start errors.

When I disable secure boot, it boots again, but it reverts back to it's Frozen Starting windows routine.

Weird!
 
Encountered the same on UEFI Windows 7 after recent update to PVE 8.4.
RDP was enabled on my VM and it still works normally, only the VGA console display was not switching to user mode and stuck on the "Starting Windows" screen. Also, if the EFI disk is removed, it does not get stuck on the "Starting Windows" screen.

Tested against different versions of pve-edk2-firmware-ovmf, could reproduce this issue above pve-edk2-firmware-ovmf 4.2025.02

pve-edk2-firmware-ovmf/stable 4.2025.02-3 all [upgradable from: 4.2023.08-3]
pve-edk2-firmware-ovmf/stable 4.2025.02-2 all
pve-edk2-firmware-ovmf/stable 4.2025.02-1 all
pve-edk2-firmware-ovmf/stable 4.2023.08-4 all
pve-edk2-firmware-ovmf/stable,now 4.2023.08-3 all [installed,upgradable to: 4.2025.02-3]

EDIT: Found some discussions on arch about recent edk2-ovmf update breaking Windows 7 UEFI virtualization, where edk2 had commits that removed video support for 2008R2. Haven't tested but they look related.
 
Last edited:
  • Like
Reactions: _gabriel
indeed, iso Windows 7 x64 cannot boot with the additionnal EFI disk on PVE 8.4 but OK once EFI disk removed.
On PVE 8.3 boot is OK both with or without the additional EFI disk.

BTW, I don't see the point to boot win7/2008r2 as UEFI.
Win7+2008r2 should be installed as SeaBIOS.
 
Howdy Folks,

I created a new EFI Disk, and re-attached it to the VM, when I have secure boot enabled, which I didn't think I did before, it doesn't boot. I get all sorts of can't start errors.

When I disable secure boot, it boots again, but it reverts back to it's Frozen Starting windows routine.

Weird!
So you did not use the command I wrote before? Then you don't get an EFI disk which is working with Win7 anymore...
 
So you did not use the command I wrote before? Then you don't get an EFI disk which is working with Win7 anymore...
Hi Jens,

Yes so I created the EFI disk from the command line as directed but accounting for my disk designation, and then I tried from the GUI both result in the same Starting Windows.