Migrar máquina virtual Linux (tanto distribuciones modernas como antiguas) de VMware ESXi a Proxmox VE. Instalar QEMU Guest Agent en Linux y verificar que hay conectividad entre Proxmox VE y la máquina virtual Linux.
- Importar máquina virtual con una distribución de Linux reciente.
- Importar máquina virtual con una distribución de Linux antigua como CentOS 7.
- Comprobar conectividad entre Promox VE y la máquina virtual mediante QEMU Guest Agent.
Importar máquina virtual con una distribución de Linux reciente
En este caso, no necesitaremos instalar drivers adicionales en la máquina virtual. Al ser una distribución reciente, ya incluirá VirtIO en el propio sistema. Es recomendable instalar Qemu-guest-agent.
Si la máquina virtual a importar no va a quedarse en VMware ESXi, antes de apagarla, lo recomendable es desinstalar el agente de VMware. En distribuciones Debian, usaremos el siguiente comando para desinstalar las Open VMware Tools:
1 |
sudo apt-get purge open-vm-tools* |
Aprovecharemos para instalar Qemu-guest-agent, el equivalente a las Open VMware Tools para Proxmox. Para instalarlo en distribuciones Debian (Ubuntu, Deepin, Mint, Knoppix, PureOS, Kali, SteamOS, …), ejecutaremos el comando:
1 |
sudo apt install -y qemu-guest-agent |
En distribuciones Red Hat (Rocky, CentOS, Fedora, AlmaLinux, ClearOS, Oracale Linux, …):
1 |
sudo yum install qemu-guest-agent |
Para asegurarnos de que se ejecutan al reiniciar el equipo, ejecutaremos el siguiente comando:
1 |
sudo systemctl enable --now qemu-guest-agent |
Apagaremos la máquina virtual a importar. Es lo recomendable para evitar errores y para que el proceso sea más rápido. Anotaremos la ruta de los ficheros y discos duros de la máquina virtual en el entorno VMware ESXi, para identificarla posteriormente en Proxmox:

Desde la consola de gestión de Proxmox VE, pulsaremos en «Datacenter» y en «Storage». Pulsaremos en el botón «Add» y elegiremos «ESXi»:

Estableceremos los datos de conexión al servidor de virtualización ESXi (IP, usuario y contraseña). Marcaremos la opción «Skip Certificate Verification» y pulsaremos «Add»:

Si los datos de conexión son correctos, Proxmox VE añadirá un nuevo objeto a la consola de gestión, con el nombre indicado en los datos de conexión. Pulsando sobre él [1], realizará la conexión con el servidor VMware ESXi y mostrará las máquinas virtuales disponibles. Pulsaremos sobre la que queramos importar, en nuestr ocaso «SSD500/srvdns/srvdns.vmx» [2] y pulsaremos en «Import» [3]:

Elegiremos las opciones de la máquina virtual que se creará en Proxmox VE (sockets, cores, memoria RAM, nombre, tipo de CPU, adaptador de red, etc) y pulsaremos en «Advanced»:

Elegiremos el almacenamiento de destino para la máquina virtual y, es recomendable, elegir el controlador de disco VirtIO SCSI Single. Desmarcaremos la opción de asignar una unidad de CD/DVD y también es recomendable establecer el tipo de dispositivo de red VirtIO (paravirtualized). Una vez establecidas las opciones, pulsaremos en «Import» para iniciar el proceso de migración:

Se iniciará la tarea de importación de la máquina virtual desde VMware ESXi a Proxmox VE:

Una vez finalizada, nos lo indicará:

Dado que hemos modificado el tipo de adaptador de red, tendremos que reconfigurar el mismo en el SO Linux Ubuntu Server. Para ello, abriremos una ventana de consola de la máquina virtual. Comprobaremos qué identificador ha asignado al adaptador de red, con el comando:
1 |
ip a |
Lo anotaremos (en este caso ens18):

Y modificaremos el fichero de configuración con el comando (para equipos Debian):
1 |
nano /etc/network/interfaces |
Modificaremos el nombre anterior por el nuevo, habitualmente en la línea «auto …» y «iface …»:

Reiniciaremos el servicio de red para que se apliquen los cambios:
1 |
systemctl restart networking |
Y comprobaremos nuevamente que se le ha asignado la configuración que tuviera el adaptador en el entorno VMware ESXi:
1 |
ip a |

Una vez importada la máquina virtual y configurada, para habilitar QEMU Guest Agent, la apagaremos y la seleccionaremos en la consola de gestión de Promox VE [1], pulsaremos en «Options» [2], seleccionaremos «QEMU Guest Agent» [3] y pulsaremos en «Edit» [4]:

Marcaremos «Use QEMU Guest Agent» y el resto de opciones (si las necesitamos): «Run guest-trim after a disk mover or VM migration» y «Freeze/thaw guest filesystems on backup for consistency»:

Iniciarmeos la máquina virtual y quedará migrada y configurada para un usuo óptimo en Proxmox VE.
Importar máquina virtual con una distribución de Linux antigua como CentOS 7
En el caso de máquinas virtuales con distribuciones Linux más antiguas, como Linux CentOS 7, probablemente tengamos que instalar las QEMU Guest Agent de forma «manual» al no existir en sus repositorios (por estar obsoletos o descontinuados). Para ello, desde la máquina virtual, descargaremos el fichero RPM, con:
1 |
wget ftp://ftp.icm.edu.pl/vol/rzm7/linux-centos-vault/7.5.1804/cr/Source/SPackages/qemu-guest-agent-2.12.0-2.el7.src.rpm |
Lo instalaremos manualmente con:
1 |
sudo rpm -i qemu-guest-agent-2.12.0-2.el7.src.rpm |
Eliminaremos las Open VMware Tools con:
1 |
sudo yum remove open-vm-tools |
Y cargaremos los drivers con:
1 |
sudo dracut --force --add-drivers "virtio_balloon virtio_scsi virtio_console virtio_net virtio_pci" |
Apagaremos la máquina virtual con:
1 |
sudo shutdown -h now |
Y procederemos a la importación, siguiendo los pasos indicados en el apartado anterior.
Tras la importación, iniciaremos la máquina virtual y accederemos a su consola para configurar la red. Revisaremos que ha detectado correctamente el adaptador de red, ejecutando:
1 |
ip a |
Que nos devolverá el adaptador de red, el nombre asignado (en este caso eth0) e, incluso, si tenemos DHCP puede que hasta haya obtenido una dirección IP:
Pero seguramente no es la configuración de red que queremos. Si la máquina virtual tenía una dirección IP estática en el entorno VMware ESXi antes de ser migraday queremos que siga teniendo la misma, le asignaremos la misma configuración en Proxmox VE. Para ello, una vez obtenido el nombre del adaptador (en este caso eth0), renombraremos el fichero del adaptador anterior (el que tenía asignado en el entorno ESXi), para este caso:
/etc/sysconfig/network-scripts/ifcfg-ens192
Lo renombraremos a /etc/sysconfig/network-scripts/ifcfg-eth0, con el comando:
1 |
mv /etc/sysconfig/network-scripts/ifcfg-ens192 /etc/sysconfig/network-scripts/ifcfg-eth0 |
Editaremos el fichero renombrado para modificar el nombre del dispositivo, donde aparezca ens192, lo cambiaremos por eth0:
1 |
nano /etc/sysconfig/network-scripts/ifcfg-eth0 |
Y, es recomendable, comentar la línea «UUID» añadiendo un «#» delante, dado que el adaptador, probablemente, haya obtenido otro UUID diferente:

Detendremos la red con:
1 |
sudo ifdown eth0 |
Y la volveremos a iniciar con:
1 |
sudo ifup eth0 |
Si todo es correcto, obtendrá la configuración de red que tuviera en el entorno VMware ESXi (con la misma dirección IP, por lo que en VMware debe permanecer apagada o eliminada).
Para equipos con distribuciones de Ubuntu antiguas, como Ubuntu Server 11, podremos instalar QEMU Guest Agent con el comando:
1 |
sudo apt-get install qemu-kvm |
Dado que el paquete qemu-guest-agent no estará disponible para estas distribuciones antiguas.
Comprobar conectividad entre Promox VE y la máquina virtual mediante QEMU Guest Agent
Tras instalar QEMU Guest Agent y habilitarlo (como hemos indicado en este punto), para verificar que hay conectividad entre la máquina virtual y el servidor Proxmox VE mediante QEMU Guest Agent, obtendremos el ID de la máquina virtual, en este caso el 100:

Desde el servidor de Proxmox VE, abriremos una ventana de shell de comandos, pulsando en «Shell» (Consola):

Desde la línea de comandos, ejecutaremos:
1 |
qm guest cmd 100 info |
Si hay conexión con el QEMU Guest Agent, nos devolverá un JSON con los datos de la máquina virtual:

Si no hubiera conexión con QEMU Guest Agent, mostraría:
No QEMU guest agent configured
También podemos comprobar la conexión con QEMU Guest Agent desde la consola de gestión de Promox VE, seleccionando la máquina virtual y pulsando en «Summary» (Resumen). Si QEMU Guest Agent está instalado y habilitado, nos mostrará la IP de la máquina virtual:

En caso de no tener QEMU Guest Agent instalado o no estar iniciado, nos mostrará el mensaje:
Guest Agent not running

O bien:
No Guest Agent configured
