Migrar VMs Linux: Debian, Ubuntu y la familia RHEL

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ónQué mirar
SUSE / openSUSERevisar INITRD_MODULES en /etc/sysconfig/kernel y correr mkinitrd
ArchRolling 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 LinuxMinimalistas: 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 / UbuntuRHEL y familiaOtras
Soporte virtioNativo y actualizadoNativo, el mejor integradoVariable
Herramienta de initramfsupdate-initramfsdracutSegún distribución
SELinuxNormalmente inactivoRequiere `/.autorelabel`Variable
Dificultad típica🟢 Baja🟢 Baja🟡 Media
Tiempo estimado1–2 h1–2 h2–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.

Descarga gratuitaPlaybook de preparación de VMs Linux con Ansible

5 páginas · el procedimiento paso a paso, en PDF. Gratis, por dejar tu email.

Descargar gratis