notas.archivos.cc

Notas.

Configuración de Máquinas Virtuales con QEMU/KVM en Linux

qemu-kvm


Esta guía está diseñada para instalar y configurar un entorno de virtualización en Linux (derivados de Debian como anfitrión HOST) utilizando QEMU/KVM, creando máquinas virtuales como Linux o Windows 11 como invitados (GUEST) y gestionándolas con herramientas como Libvirt y Virt-Manager.

Las imagenes creadas como VM (.qcow2) son portables y se pueden utilizar en otro sistemas, haciendo sencilla la administración.

1. Instalar el Entorno de Virtualización

Instalaremos las herramientas necesarias para la virtualización, incluyendo QEMU, KVM, Libvirt, Bridge-utils, Virt-viewer, y paquetes para soportar Windows 11 (TPM y UEFI).


# Instalar paquetes necesarios
sudo apt install -y qemu-kvm libvirt0 bridge-utils virt-viewer

# Habilitar y arrancar el servicio de Libvirt
sudo systemctl enable --now libvirtd

# Verificar el estado del servicio
sudo systemctl status libvirtd

# Habilitar la red por defecto
sudo virsh net-start default

# Configurar la red para iniciar automáticamente
sudo virsh net-autostart default

# Verificar las redes disponibles
sudo virsh net-list --all

# Agregar usuario estándar al grupo libvirt
sudo usermod -aG libvirt usuario
newgrp libvirt

# Crear un directorio seguro para almacenar las VMs e ISOs de instalación
mkdir -p ~/vm

# Establecer permisos en el directorio
sudo chmod -R u+rwX,g+rwX ~/vm

# Instalar paquetes para Windows 11 (TPM y UEFI)
sudo apt install -y swtpm swtpm-tools ovmf
                

2. Crear Máquina Virtual Debian

Crearemos una máquina virtual Debian con un disco virtual de 50GB y configuraremos los permisos adecuados.


# Crear imagen de disco virtual de 50GB en el directorio seguro
qemu-img create -f qcow2 ~/vm/debian-vm.qcow2 50G

# Copiar la ISO de Debian al directorio seguro
mv ~/Descargas/debian-13.0.0-amd64-netinst.iso ~/vm/debian-13.0.0-amd64-netinst.iso

# Establecer permisos para los archivos
sudo chown libvirt-qemu:libvirt-qemu ~/vm/*
sudo chmod 660 ~/vm/*

# Crear la máquina virtual, ajustar la RAM y CPU
sudo virt-install \
  --name debian-vm \
  --ram 4096 \
  --vcpus 4 \
  --disk path=~/vm/debian-vm.qcow2,format=qcow2 \
  --cdrom ~/vm/debian-13.0.0-amd64-netinst.iso \
  --os-variant debian12 \
  --virt-type kvm \
  --network network=default \
  --graphics spice \
  --noautoconsole

# Visualizar la máquina virtual
# Nota: si la VM "atrapa" el mouse, salir con Shift+F12.
virt-viewer --connect qemu:///system debian-vm

# Iniciar la VM si está apagada
virsh --connect qemu:///system start debian-vm
                

Para mejorar la experiencia, se recomienda instalar SPICE en la VM


# Instalar SPICE en la VM debian
sudo apt install spice-vdagent
 

Nota: Las imagenes qcow2 son portables, puede usar este mismo comando para restaurarla en otros equipos, en este caso no seria necesario mantener la linea del CDs/DVDs (cdrom).

3. Crear Máquina Virtual con Windows 11

Crearemos una máquina virtual para Windows 11 con soporte para TPM 2.0 y Secure Boot, utilizando VirtIO drivers para mejor rendimiento.

Descarga la ISO de Windows 11 desde el sitio web oficial de Microsoft: https://www.microsoft.com/es-es/software-download/windows11

Nota: Windows 11 no vence y se actualiza, pero no tendrá opciones como cambiar el fondo de pantalla, y mostrará el mensaje de activación, pero funcionará correctamente.

Descarga los controladores VirtIO desde: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/


# Descargar los controladores VirtIO con wget
wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso -O ~/vm/virtio-win.iso

# Crear imagen de disco virtual de 100GB
qemu-img create -f qcow2 ~/vm/win11-vm.qcow2 100G

# Copiar la ISO de Windows 11 al directorio seguro
mv ~/Descargas/Win11_24H2_x64.iso ~/vm/Win11_24H2_x64.iso

# Establecer permisos
sudo chown libvirt-qemu:libvirt-qemu ~/vm/*
sudo chmod 660 ~/vm/*

# Crear la máquina virtual, ajustar la RAM y CPU
sudo virt-install \
  --name win11-vm \
  --ram 8192 \
  --vcpus 4 \
  --disk path=~/vm/win11-vm.qcow2,format=qcow2,bus=virtio \
  --disk path=~/vm/virtio-win.iso,device=cdrom,bus=sata \
  --cdrom ~/vm/Win11_24H2_Spanish_Mexico_x64.iso \
  --os-variant win11 \
  --virt-type kvm \
  --network network=default,model=virtio \
  --graphics spice \
  --boot uefi \
  --tpm model=tpm-tis,backend.type=emulator,backend.version=2.0 \
  --noautoconsole

# Visualizar la máquina virtual
# Nota: si la VM "atrapa" el mouse, salir con Shift+F12.
virt-viewer --connect qemu:///system win11-vm
                

Es posible que no dé tiempo a presionar una tecla para que se inicie el DVD de instalación de Windows, en ese caso accedemos a la BIOS e iniciamos el disco manualmente.

imagen

imagen

imagen

Cargar los controladores desde la unidad virtio-win.iso:

imagen

imagen

imagen

Evitar la creación de cuenta de Microsoft (usa el siguiente comando, se reiniciara):

imagen

Si no se reinicia y se debe encender:


# Iniciar la VM si está apagada
virsh --connect qemu:///system start win11-vm

# Visualizar la VM
virt-viewer --connect qemu:///system win11-vm
                

imagen

Instalar los controladores VirtIO y SPICE para mejor rendimiento:

imagen

Nota: Las imagenes qcow2 son portables, puede usar este mismo comando para restaurarla en otros equipos, en este caso no seria necesario mantener la linea del CDs/DVDs (cdrom).

4. Comandos para Gestionar Máquinas Virtuales

Comandos útiles para administrar, eliminar, iniciar, apagar o modificar máquinas virtuales.


# Eliminar una VM (no elimina el archivo qcow2 ni la ISO de instalación)
virsh --connect qemu:///system undefine debian-vm

# Eliminar una VM con Windows 11 (incluye NVRAM para UEFI) (no elimina el archivo qcom2 ni la ISO de instalación)
virsh --connect qemu:///system undefine win11-vm --nvram

# Listar todas las VMs
virsh --connect qemu:///system list --all

# Iniciar una VM
virsh --connect qemu:///system start debian-vm

# Apagar una VM
virsh --connect qemu:///system shutdown debian-vm

# Forzar el apagado
virsh --connect qemu:///system destroy debian-vm

# Reiniciar una VM
virsh --connect qemu:///system reboot debian-vm

# Ver información detallada de una VM
virsh --connect qemu:///system dominfo debian-vm

# Modificar el archivo XML de una VM (RAM, CPUs, etc.)
sudo virsh edit debian-vm
                

Opcional: Instalar Virt-Manager

Para gestionar las máquinas virtuales con una interfaz gráfica, puedes instalar Virt-Manager:


sudo apt install -y virt-manager
            

imagen