Saltar a contenido

01.-Conversor de OVA a QCOW2

Este documento describe el proceso para convertir una máquina virtual en formato .ova a .qcow2, e incluye los pasos para iniciar la máquina convertida en KVM/QEMU.

Requisitos Previos

Es necesario tener qemu-img y virt-manager o virsh instalados para la conversión y puesta en marcha de la VM. En distribuciones Debian/Ubuntu puedes instalarlos con:

sudo apt update
sudo apt install qemu-utils libvirt-daemon-system virt-manager

Pasos para la Conversión Manual

  1. Extrae el archivo .ova: Utiliza tar para descomprimir el archivo .ova, que suele contener archivos .vmdk. bash tar -xvf archivo.ova

  2. Convierte el archivo .vmdk a .qcow2: Utiliza qemu-img para convertir el archivo .vmdk extraído al formato .qcow2. bash qemu-img convert -f vmdk archivo.vmdk -O qcow2 archivo.qcow2

  3. Verifica la conversión: bash qemu-img info archivo.qcow2

Script en Bash para automatizar la conversión

El siguiente script en Bash automatiza la conversión de .ova a .qcow2.

#!/bin/bash

# Verifica que se haya proporcionado un archivo OVA como argumento
if [ "$#" -ne 1 ]; then
    echo "Uso: $0 archivo.ova"
    exit 1
fi

OVA_FILE=$1
BASE_NAME=$(basename "$OVA_FILE" .ova)
TARGET_DIR="${BASE_NAME}_extracted"
QCOW2_FILE="${BASE_NAME}.qcow2"

# Verifica que el archivo OVA existe
if [ ! -f "$OVA_FILE" ]; then
    echo "Error: el archivo $OVA_FILE no existe."
    exit 1
fi

# Crea un directorio temporal para extraer los archivos
mkdir -p "$TARGET_DIR"
echo "Extrayendo $OVA_FILE a $TARGET_DIR..."
tar -xvf "$OVA_FILE" -C "$TARGET_DIR"

# Encuentra el archivo .vmdk en el directorio extraído
VMDK_FILE=$(find "$TARGET_DIR" -name "*.vmdk" | head -n 1)

# Verifica que se haya encontrado un archivo VMDK
if [ -z "$VMDK_FILE" ]; then
    echo "Error: no se encontró un archivo .vmdk en $OVA_FILE."
    exit 1
fi

# Convierte el archivo VMDK a QCOW2
echo "Convirtiendo $VMDK_FILE a $QCOW2_FILE..."
qemu-img convert -f vmdk "$VMDK_FILE" -O qcow2 "$QCOW2_FILE"

# Verifica que la conversión fue exitosa
if [ $? -eq 0 ]; then
    echo "Conversión exitosa. El archivo QCOW2 se encuentra en $QCOW2_FILE."
else
    echo "Error: la conversión falló."
    exit 1
fi

# Limpia el directorio temporal
echo "Limpiando archivos temporales..."
rm -rf "$TARGET_DIR"

echo "Proceso completado."

Instrucciones

  1. Guardar el script como ova2qcow2.sh.
  2. Hacer el script ejecutable:
    $ chmod +x ova2qcow2.sh
  1. Ejecutar el script pasando como argumento el archivo .ova: bash $ ./ova2qcow2.sh archivo.ova

Configuración de la Máquina Virtual en KVM/QEMU

Una vez convertido el archivo .qcow2, es necesario crear una nueva VM en KVM/QEMU que use el disco .qcow2 resultante. Se puede hacer con virt-manager o con virsh desde la línea de comandos.

Usando Virt-Manager

  1. Abrir virt-manager.
  2. Crear una nueva máquina virtual y selecciona la opción Importar imagen de disco existente.
  3. Seleccionar el archivo .qcow2 generado.
  4. Asignar la cantidad de CPU, RAM y otras configuraciones de hardware según tus necesidades.
  5. Completar el asistente y comienza la máquina virtual.

Usando Virsh

Alternativamente, puedes usar virsh para definir la máquina virtual:

# Definir la VM usando virsh
sudo virt-install \  
 --name MV01 \  
 --ram 2048 \  
 --vcpus 2 \  
 --disk path=/var/lib/libvirt/images/MV01.qcow2,format=qcow2 \  
 --import \  
 --os-variant generic \  
 --network network=default \  
 --graphics spice \  
 --console pty,target_type=serial

Este comando crea y lanza una máquina virtual utilizando el archivo .qcow2.

  • --name: Nombre de la VM.
  • --memory: Cantidad de memoria en MB.
  • --vcpus: Número de CPUs.
  • --disk: Ruta del archivo .qcow2 y su formato.
  • --import: Indica que importamos una máquina
  • --os-variant: Indica el sistema operativo que contiene la máquina. En caso de desconocer generic.
  • --network: Configuración de red, por ejemplo, network=default para una red NAT.
  • --graphics: Configura la conexión gráfica; spice ó vnc para acceder remotamente.

Explicación del Proceso

  • Conversión: El script convierte el archivo .vmdk en .qcow2 automáticamente.
  • Importación en KVM: Puedes iniciar la VM utilizando virt-manager o virsh para aprovechar el formato .qcow2 en un entorno KVM/QEMU.