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¶
-
Extrae el archivo
.ova
: Utilizatar
para descomprimir el archivo.ova
, que suele contener archivos.vmdk
.bash tar -xvf archivo.ova
-
Convierte el archivo
.vmdk
a.qcow2
: Utilizaqemu-img
para convertir el archivo.vmdk
extraído al formato.qcow2
.bash qemu-img convert -f vmdk archivo.vmdk -O qcow2 archivo.qcow2
-
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¶
- Guardar el script como
ova2qcow2.sh
. - Hacer el script ejecutable:
$ chmod +x ova2qcow2.sh
- 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¶
- Abrir
virt-manager
. - Crear una nueva máquina virtual y selecciona la opción Importar imagen de disco existente.
- Seleccionar el archivo
.qcow2
generado. - Asignar la cantidad de CPU, RAM y otras configuraciones de hardware según tus necesidades.
- 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 desconocergeneric
.--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
ovirsh
para aprovechar el formato.qcow2
en un entorno KVM/QEMU.