When attempting to install Windows 7 (x64) in a Proxmox VE 4.2 KVM virtual machine, the installation process consistently hangs indefinitely at the "Starting Windows" screen. The VM configuration follows Proxmox's recommended best practices:
# Example VM configuration (extract from /etc/pve/qemu-server/100.conf)
args: -machine pc-i440fx-2.1,accel=kvm
boot: cd
cores: 2
cpu: host
memory: 4096
name: win7-test
net0: virtio=XX:XX:XX:XX:XX:XX,bridge=vmbr0
ostype: win7
scsi0: local-lvm:vm-100-disk-0,cache=writeback,discard=on,size=50G
scsihw: virtio-scsi-pci
smbios1: uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
sockets: 1
vga: std
Several factors were examined to isolate the root cause:
- Verified VT-x/AMD-v enabled in BIOS (
grep -E '(vmx|svm)' /proc/cpuinfo
) - Confirmed working Windows 7 ISO MD5 matches known-good copies
- Tested both IDE and VirtIO storage controllers
- Attempted various CPU flags combinations
The breakthrough came when modifying the machine type and CPU configuration:
# Modified VM configuration that resolved the issue
args: -machine pc-i440fx-1.4,accel=kvm
cpu: kvm64,+pdpe1gb
balloon: 0
vmgenid: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
After successful installation, implement these tweaks for optimal performance:
# Add to VM configuration for Windows guest optimization
cpu: host
args: -cpu host,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time
machine: q35
bios: ovmf
efidisk0: local-lvm:vm-100-disk-1,size=4M
For complete VirtIO driver integration:
- Mount virtio-win ISO during Windows setup
- Load storage driver when prompted
- Post-installation, install remaining VirtIO drivers:
- NetKVM
- Balloon
- QXL (for SPICE)
- Guest Agent
Key observations from debugging sessions:
Parameter | Effect |
---|---|
machine 1.4 vs 2.1 | Older machine type resolved hang |
pdpe1gb CPU flag | Required for memory > 4GB |
balloon=0 | Disables memory ballooning during install |
For real-time monitoring during installation:
# Monitor VM performance
qm terminal 100
dmesg -w
vmstat 1
When deploying Windows 7 in a Proxmox VE 4.2 environment running on Debian Jessie, many users encounter a freeze at the "Starting Windows" phase during installation. This occurs despite using verified ISOs and following Proxmox's official documentation.
The installation process exhibits these specific behaviors:
- Progress bar completes "Windows is loading files..."
- Transition to "Starting Windows" screen
- No further disk I/O or CPU activity (verified via
qm monitor <vmid>
) - No graphical elements appear (colored logo/animation)
Through testing multiple configurations, these VM settings proved essential:
qm set <vmid> --cpu cputype=kvm64,+aes,+ssse3,+sse4.1,+sse4.2,+popcnt
qm set <vmid> --machine pc-q35-2.4
qm set <vmid> --args '-no-kvm-irqchip'
The default SATA controller configuration causes compatibility issues. Use this alternative setup:
qm set <vmid> --sata0 none
qm set <vmid> --ide2 local:iso/Win7_ISO.iso,media=cdrom
qm set <vmid> --virtio0 local-lvm:32
For immediate resolution, follow this procedure:
- Create VM with these parameters:
qm create <vmid> --name "Win7-Proxmox" --memory 2048 --cores 2 qm set <vmid> --net0 virtio,bridge=vmbr0 qm set <vmid> --bootdisk virtio0 qm set <vmid> --ostype win7
- Import the modified storage controller configuration shown above
- Add the CPU flags and machine type parameters
After successful installation, enhance performance with:
qm set <vmid> --cpu host
qm set <vmid> --args '-device virtio-balloon-pci,id=balloon0'
If problems persist, consider injecting these custom KVM parameters via the VM configuration file (/etc/pve/qemu-server/<vmid>.conf):
args: -machine pc-q35-2.4 -global kvm-pit.lost_tick_policy=discard -no-kvm-pit-reinjection