Iniciando una máquina virtual con Libvirt/KVM desde CDROM

Introducción

En algunos casos es necesario iniciar una máquina virtual ya instalada desde el CDROM o en su defecto, una imagen ISO.  Por ejemplo cuando se deben realizar labores de administración o recuperación que requieran acceder al disco duro de la máquina virtual desmontado.

A continuación se muestra el procedimiento necesario para reconfigurar la máquina virtual para que monte una imagen ISO como su CDROM virtual e inicie el sistema operativo desde ella.

Procedimiento

Acceder a la consola de administración de las máquinas virtuales.

$ virsh --connect qemu:///system

Modificar la configuración de la máquina virtual (SL_57_x64_Generic en este caso) en dos partes.

virsh # edit SL_57_x64_Generic

Bajo domain/os agregue un nuevo registro boot para el cdrom.

 <boot dev='cdrom'/>

Identificar la configuración del CDROM bajo domain/devices/disk.  En mi caso se ve de la siguiente manera.

<disk type='block' device='cdrom'>
    <driver name='qemu' type='raw'/>
    <target dev='hdc' bus='ide'/>
    <readonly/>
    <address type='drive' controller='0' bus='1' unit='0'/>
</disk>

Modificar la configuración del CDROM para que se asocie con la imagen ISO deseada especificándole el valor de su respectivo source.

<source file='/b1/ISO/data_disk1.iso'/>

Una vez terminadas las labores de administración es necesario regresar la configuración a la original para evitar que la máquina continúe iniciándose desde el CDROM indefinidamente.

Modificar el contenido del CDROM (cambiar disco)

Otra tarea frecuente con respecto al manejo de medios en las máquinas virtuales será la manipulación del contenido de la unidad de CDROM.  Esto es necesario al realizar la instalación del sistema operativo o acceder información de diferentes medios/imágenes ISO.  Para hacer esto desde la linea de comando es necesario ejecutar el siguiente comando.

$ virsh attach-disk --type cdrom --mode readonly SL_57_x64_Generic /b1/ISO/data_disk2.iso hdc

Leave a Reply

Your email address will not be published. Required fields are marked *