Eu tenho um hipervisor Debian 10 KVM, sem libvirt ou outra ferramenta para administrá-lo, usando scripts QEMU. Preciso de uma VM do Windows de 32 bits para um aplicativo herdado, mas em um sistema operacional compatível (não XP), Windows 8.1 ou 10 de 32 bits. Tanto o Windows 8.1 quanto o 10 apresentam uma mensagem «2 GB utilizáveis» nas propriedades do sistema quando 3 GB de RAM são atribuídos (o máximo capaz de lidar com uma máquina de 32 bits sem outras técnicas, suponho). Pelo contrário, o Win XP parece usar 3 GB de RAM, afirmando que o PAE está ativado.
Alguma idéia de como usar 3 GB de RAM no Win 8.1 ou 10, 32 bits?
Aqui está a captura de tela do Win 8.1 VM com 3 GB de RAM (algumas no Win 10):
Aqui está o script QEMU para iniciar a VM (também tentei a CPU do host, sem diferença):
#!/bin/sh
SPICE_PORT=3010
MONITOR_PORT=2330
QEMU_AUDIO_DRV=alsa
kvm \
-M q35 \
-nodefaults \
-cpu qemu64 \
`# -cpu host` \
-m 3G \
-mem-path /dev/hugepages \
-device virtio-balloon-pci \
-rtc base=localtime \
-vga qxl \
-drive file=win8.qcow2,if=virtio,cache-size=16M,cache=writethrough \
-device virtio-net-pci,netdev=diktyo0 \
-netdev user,id=diktyo0 \
-monitor telnet:localhost:${MONITOR_PORT},server,nowait \
-device virtio-serial \
-device virtserialport,chardev=vdagent,name=com.redhat.spice.0 \
-chardev spicevmc,id=vdagent,debug=0,name=vdagent \
-spice port=${SPICE_PORT},addr=127.0.0.1,disable-ticketing \
-device virtserialport,chardev=charchannel1,id=channel1,name=org.spice-space.webdav.0 \
-chardev spiceport,name=org.spice-space.webdav.0,id=charchannel1 \
-soundhw ac97 \
-name "Windows 8.1 x86" \
-daemonize \
Seguindo o conselho de shodanshok, eu posto a saída do monitor de recursos (com 4 GB de RAM total):
Metade da memória é reservada por hardware.
Eu também aumentei a RAM para 4 GB:
Apenas no caso do driver de vídeo QXL reservar muita memória, também alterei a linha de configuração do vídeo para:
-device qxl-vga,vgamem_mb=64,ram_size_mb=64,vram_size_mb=64
Posso tentar mudar o Seabios, pelo menos a versão. Infelizmente na versão Debian Stable QEMU é 3.1.0; é bastante antigo, gostaria de saber se o mesmo comportamento aparece em versões mais recentes.