Respuesta corta: Linux es el caso más tolerante al cambio de hipervisor porque el soporte virtio está en el kernel desde hace años. Los derivados de Debian suelen detectar los dispositivos nuevos y arrancar sin drama. La familia RHEL también, con dos cuidados propios: SELinux y el uso de dracut en vez de update-initramfs. En ambos casos, lo único verdaderamente eliminatorio es que los módulos virtio estén dentro del initramfs.
Debian y Ubuntu
Son los más tolerantes. El soporte virtio viene actualizado y el sistema detecta los dispositivos nuevos al arrancar.
Lo que hay que hacer igual:
Forzar los módulos en el initramfs. Aunque el kernel los tenga, si no están en el initramfs el sistema no puede montar la raíz:
`bash
printf 'virtio\nvirtio_pci\nvirtio_blk\nvirtio_scsi\nvirtio_net\n' \
| sudo tee -a /etc/initramfs-tools/modules |
|---|
sudo update-initramfs -u -k all
lsinitramfs /boot/initrd.img-$(uname -r) | grep virtio # verificar
`
Adaptar fstab. El disco pasa de /dev/sda a /dev/vda. Si tu fstab usa nombres de dispositivo, no monta:
`bash
blkid # obtener UUID
sudo nano /etc/fstab # cambiar /dev/sdX por UUID=…
sudo update-grub
`
Ajustar GRUB para que la raíz apunte al lugar correcto — update-grub lo resuelve si fstab está bien.
El riesgo de incompatibilidad en esta familia es bajo. La causa de fallo, cuando ocurre, es casi siempre el initramfs.
RHEL, Rocky, AlmaLinux, CentOS
Tienen el mejor nivel de integración con KVM: Red Hat es quien desarrolla buena parte del stack. Son las distribuciones ideales para migrar a infraestructura basada en libvirt.
Tres cuidados propios:
1. dracut en vez de update-initramfs:
`bash
sudo dracut –add-drivers "virtio virtio_pci virtio_blk virtio_scsi virtio_net" \
–force –regenerate-all
sudo lsinitrd | grep virtio
`
2. SELinux. Después de convertir a QCOW2, los contextos de los archivos pueden quedar mal etiquetados. Se resuelve pidiendo un reetiquetado en el próximo arranque:
`bash
sudo touch /.autorelabel
`
Ese primer arranque va a tardar bastante más de lo normal. Es esperado, no es un problema.
3. qemu-guest-agent, para que el hipervisor pueda apagar la VM ordenadamente y reportar sus IPs:
`bash
sudo dnf install -y qemu-guest-agent
sudo systemctl enable –now qemu-guest-agent
`
Las otras distribuciones
| Distribución | Qué mirar |
|---|---|
| SUSE / openSUSE | Revisar INITRD_MODULES en /etc/sysconfig/kernel y correr mkinitrd |
| Arch | Rolling release: verificar versión del kernel y de qemu-guest-agent antes de cambiar el hardware virtual. Módulos en /etc/mkinitcpio.conf |
| Alpine, Clear Linux | Minimalistas: pueden no traer módulos virtio. Verificar y, si hace falta, personalizar el kernel |
La regla general para cualquier Linux poco común: verificar por adelantado que el initramfs incluya los drivers de disco y red. Es siempre la misma verificación.
Comparación
| Debian / Ubuntu | RHEL y familia | Otras | |
|---|---|---|---|
| Soporte virtio | Nativo y actualizado | Nativo, el mejor integrado | Variable |
| Herramienta de initramfs | update-initramfs | dracut | Según distribución |
| SELinux | Normalmente inactivo | Requiere `/.autorelabel` | Variable |
| Dificultad típica | 🟢 Baja | 🟢 Baja | 🟡 Media |
| Tiempo estimado | 1–2 h | 1–2 h | 2–4 h |
Un detalle que sorprende: el nombre de la interfaz
Al cambiar de vmxnet3 a virtio-net, la interfaz cambia de nombre: ens192 puede pasar a ens3, por ejemplo.
El sistema arranca y la red parece rota. En realidad, la configuración está apuntando a una interfaz que ya no existe. Y lo mismo pasa con todo lo que la nombre explícitamente: reglas de firewall, scripts de monitoreo, configuración de la aplicación.
Por eso conviene guardar la configuración de red antes de migrar:
`bash
ip -br addr > /root/red-antes-de-migrar.txt
`
Preguntas frecuentes
¿Puedo migrar un Linux muy viejo?
Depende del kernel. Desde 2.6.25 hay soporte virtio. Más viejo que eso, emulá IDE y e1000, y aprovechá para actualizar.
¿Hace falta reinstalar algo?
No. Se migra el sistema tal cual está; solo se preparan drivers y se ajusta el arranque.
¿Qué pasa con las open-vm-tools?
Conviene desinstalarlas después de migrar: ya no sirven. Reemplazalas por qemu-guest-agent.
¿Y si la VM no arranca igual?
virt-rescue sobre el disco, chroot y regenerar initramfs. Se recupera casi siempre sin restaurar de backup.
En resumen
Linux es el caso fácil, con una única verificación que no se puede saltear: que virtio esté dentro del initramfs. En RHEL, sumale SELinux. Todo lo demás es rutina.
El caso que pide más cuidado es Windows.
5 páginas · el procedimiento paso a paso, en PDF. Gratis, por dejar tu email.
