viernes, 30 de noviembre de 2018

Virtualización qemu con pendrives, cdrom e imágenes de cd y pendrive live



     Ya hace algún tiempo desde que realice una publicación que explicaba el uso de qemu pero veo que con las nuevas versiones de qemu hay nuevas funcionalidades, permite aprovechar mejor nuestro hardware y dispone ahora de nuevas opciones para su uso y hay poca documentación en español al respecto con esta entrada mostraré como trabajar con qemu y realizar virtualizaciones con el mismo usando periféricos disponibles en nuestro ordenador o computador con una serie de sencillos parámetros.

     Lo primero es ejecutar como usuario normal a través de la terminal o consola el siguiente comando:

     xhost +

     Este comando permite ejecutar interfaces gráficos como administrador o usuario root en linux más que todo en la interfaz gráfica de usuario KDE.

     Luego nos logueamos como administrador con el comando:

     su (caso debian)

     sudo -H -s (Caso ubuntu u otras distribuciones).

      Luego creamos el directorio y entramos en el con el siguiente comando:

     mkdir sistemasvirtualizados && cd sistemasvirtualizados

     Creamos ahora la imagen de disco donde se instalará el sistema a virtualizar:

     qemu-img create imagen_del_so.img 64G

     Ahora ya tenemos la imagen a ejecutar ahora ¿Cómo hacemos para comenzar la instalación si tenemos el sistema a instalar en un pendrive booteable? con el siguiente comando:

     qemu-system-x86_64 -hda imagen_del_so.img -usb -usbdevice disk:/dev/sdb -m 1024 -smp 4,sockets=4,cores=2,threads=2

     Este comando comenzará la virtualizanción pero vamos a explicarlo más a detalle el comando.

     ¿Por que el comando es qemu-system-x86_64?

     Es sencillo en nuevas versiones del mismo adapta mejor las virtualizaciones para emular las diferentes arquitecturas de hardware.

     Si ejecutamos ls /usr/bin | grep qemu-system veremos esto:

     qemu-system-aarch64
     qemu-system-alpha
     qemu-system-arm
     qemu-system-cris
     qemu-system-i386
     qemu-system-lm32
     qemu-system-m68k
     qemu-system-microblaze
     qemu-system-microblazeel
     qemu-system-mips
     qemu-system-mips64
     qemu-system-mips64el
     qemu-system-mipsel
     qemu-system-moxie
     qemu-system-or32
     qemu-system-ppc
     qemu-system-ppc64
     qemu-system-ppcemb
     qemu-system-s390x
     qemu-system-sh4
     qemu-system-sh4eb
     qemu-system-sparc
     qemu-system-sparc64
     qemu-system-unicore32
     qemu-system-x86_64
     qemu-system-xtensa
     qemu-system-xtensaeb

     Estas son algunas de las formas pre-establecidas para ejecutar qemu emulando cierto hardware especifico para virtualizar el sistema operativo.

     La opción -hda imagen_del_so.img permite usar la imagen que emula a un disco duro virtual que creamos.

     La opción -usb -usbdevice disk:/dev/sdb permite ejecutar nuestro pendrive booteable y comenzar la instalación hacia nuestro disco duro virtual.

     La opción -m 1024 nos permite asignar la memoria ram al sistema a virtualizar en MegaBytes.

     La opción -smp 4,sockets=4,cores=2,threads=2 esta opción nos permite asignar parametros y potencia de tiempo de trabajo de nuestro CPU trabajar esta opción con cuidado o no usarla.

     Pero que pasa si nuestro instalador no esta en un pendrive si no en un cd-rom/dvd-rom/br pues ejecutamos la virtualización de la siguiente manera.

     qemu-system-x86_64 -hda imagen_del_so.img -boot d -cdrom /media/cdrom -m 1024 -smp 4,sockets=4,cores=2,threads=2

     Donde -boot d -cdrom /media/cdrom nos permite ejecutar la instalación desde nuestra unidad física de cd-rom/dvd-rom/br.

     Pero viene otro caso no tenemos ningún cdrom o ningún pendrive booteable pero en nuestro disco tenemos la imagen de pendrive booteable o la imagen iso de nuestro sistema de instalación a continuación muestro como haríamos en cada caso:

     Caso Imagen iso de cdrom (nota tenerla en el mismo directorio donde estamos virtualizando nuestro sistema para mayor comodidad)

     qemu-system-x86_64 -hda imagen_del_so.img -boot d -cdrom debian9.iso -m 1024 -smp 4,sockets=4,cores=2,threads=2

     Caso pendrive imagen .img:

     qemu-system-x86_64 -hda imagen_del_so.img -usb -usbdevice disk:debian8liveusb.img -boot menu=on -m 1024 -smp 4,sockets=4,cores=2,threads=2

     Otras opciones que podemos usar:
  • -k idioma Con esto le estaríamos especificando el tipo de teclado que estaríamos utilizando. Si es un teclado español, colocamos -k es, si es un teclado ingles utilizamos -k en-us. El teclado por defecto es en-us
  • -full-screen Esto nos permite iniciar la máquina virtual en pantalla completa.
  • -net none Esta opción no nos configura los dispositivos de Red en el Sistema Operativo que vallamos a usar/instalar. Sería bueno activarla cuando no queramos utilizar la RED en dicha máquina virtual.
  • -nographic Qemu utiliza las librerías SDL para poder mostrar lo gráficos. Si el sistema operativo que vallamos a instalar no utiliza gráficos si no una línea de comandos podríamos utilizar este parámetro.
     Hay virtualizaciones más avanzadas que a futuro espero crear entradas explicando como se pueden realizar.


     Si te gustan mis publicaciones no dudes en realizar un donativo.