Esto por supuesto es una mera curiosidad, aunque es posible hacer la virtualización de un CPU X86 a 64 bits para correr un Windows 10 Pro, no es usable en producción, no va lo suficientemente fluido, lo interesante aquí es que esta pequeña maquina tiene la capacidad de correr un sistema operativo para una arquitectura que no es la suya.
Aumentando la curiosidad de que OS en otras arquitecturas puede correr, con mucha facilidad es capaz de correr MSDOS y Windows 3.x, También lo puede hacer sin problemas con un FreeDOS
¿ Como se hace ?
Se requiere el código fuente de Q-EMU para ser compilado y en mi caso poner los compiladores a CentOS y dependencias necesarias y tener un cliente VNC para acceso a la terminal, yo uso TigerVNC Viewer
1 yum groupinstall “Development Tools”
2 yum install python3 glib2-devel zlib-devel pixman-devel
3 wget https://download.qemu.org/qemu-4.2.0.tar.xz
4 tar -Jvxf qemu-4.2.0.tar.xz
Compilar
Todas las arquitecturas soportadas
./configure –prefix=/usr/qemu-4.2.0
** Compilar todas las arquitecturas soportadas llevara mucho tiempo, si se quiere agilizar el proceso de compilación y sabiendo cual arquitectura interesa, se puede hacer un target list, por ejemplo compilar solo para PC 32 y 64 bits
./configure –prefix=/usr/qemu-4.2.0 –target-list=i386-softmmu,x86_64-softmmu
Agregar los binarios compilados al PATH
export PATH=$PATH:/usr/qemu-4.2.0/bin
Ejemplos básicos de uso QEMU
Probar un CD-LIVE
qemu-system-x86_64 -boot d -cdrom image.iso -m 512 -vnc IP:1
** Donde -boot d -cdrom es dispositivo de arranque -m es la memoria expresada en megabytes y vnc el bind de la IP a donde realizar la conexión para ver la pantalla
Instalar permanentemente un sistema operativo
Crearle un disco de almacenamiento virtual
qemu-img create -f qcow2 windows2019.qcow2 2048G
Arranca e instalar el sistema operativo
qemu-system-x86_64 -boot d -cdrom image.iso -smp 2 -m 4096 -hda windows2019.qcow2 -vnc 192.168.1.10:1
** -smp 2 hace referencia a que se usan 2 nucleos del CPU físico para la virtualización -hda es un disco duro con bus IDE
Crear una tarjeta de red TAP en modo Bridge para darle acceso a la red local o a internet
ip tuntap add tap0 mode tap
ip link set dev tap0 up
ip link add name br0 type bridge
ip link set dev br0 up
ip link set tap0 master br0
Lanzar una maquina virtual con red
qemu-system-x86_64 -smp 2 -m 1.9G -hda windows10.qcow2 -net nic,macaddr=e2:ed:c2:ea:a1:1a -net tap,ifname=tap0,script=no -vnc 192.168.1.10:1