instalar-un-gestor-de-maquinas-virtuales-en-hyperbola-gnulinux-libre.md 7.0 KB

Author: Jesús E. Category: Tutorial Date: 2020-05-03 03:12 Modified: 2022-03-22 05:55 Diaspora: https://diasp.org/u/heckyel Image: 2020/05/virt-manager.jpg Lang: es Mastodom: https://masto.nobigtech.es/@heckyel Slug: instalar-un-gestor-de-maquinas-virtuales-en-hyperbola-gnulinux-libre Tags: maquinas virtuales, tutorial Title: Instalar un gestor de máquinas virtuales en Hyperbola GNU/Linux-libre

Tu sistema principal puede ser Hyperbola GNU/Linux-libre de arquitectura x86_64, por ejemplo, pero con suficiente memoria y poder de procesamiento usted pordría ejecutar Trisquel{:target="_blank" rel="noopener noreferrer"} y Dragora{:target="_blank" rel="noopener noreferrer"} al mismo tiempo, dentro de la misma máquina.

¿Qué es un máquina virtual?

Una máquina virtual es un software que simula un sistema de computación y puede ejecutar programas como si fuese una computadora real. Este software en un principio fue definido como "un duplicado eficiente y aislado de una máquina física".

¿Qué programas me permiten ejecutar una máquina virtual?

En los sistemas operativos totalmente libres existe un programa llamado qemu que nos permite virtualizar.

Qemu{:target="_blank" rel="noopener noreferrer"} funciona a través de línea de comandos.

Habilitando la Virtualización

Revisar si su PC soporta virtualización

:::console
$ LC_ALL=C lscpu | grep Virtualization

o ejecutar el comando:

:::console
$ lsmod | grep kvm

Si su computadora admite virtualización, debería ver la salida como Virtualización: VT-x o Virtualización: AMD-V, caso contrario su ordenador no es capaz de virtualizar.

Instalando qemu

:::console
# pacman -Sy

# pacman -S qemu vde2 dnsmasq bridge-utils

# gpasswd -a <tu-usuario> kvm

Habilitar módulos del kernel para virtualización

  • Módulo kvm_intel (procesadores Intel)

    :::console
    # modprobe kvm_intel
    
  • Módulo kvm_amd (procesadores AMD)

    :::console
    # modprobe kvm_amd
    

Habilitar la virtualización anidada en KVM

La virtualización anidada le permite ejecutar una máquina virtual (VM) dentro de otra VM mientras sigue utilizando la aceleración de hardware del host.

Comprobando si la virtualización anidada es compatible

Para los procesadores Intel, verifique el archivo /sys/module/kvm_intel/parameters/nested. Para procesadores AMD, verifique el archivo /sys/module/kvm_amd/parameters/nested. Si ve 1 o Y, se admite la virtualización anidada; si ve 0 o N, la virtualización anidada no es compatible.

Por ejemplo:

:::console
$ cat /sys/module/kvm_intel/parameters/nested
Y

Habilitar la virtualización anidada para procesadores Intel:

  1. Apague todas las máquinas virtuales en ejecución y recargue el módulo kvm_intel:

    :::console
    # modprobe -r kvm_intel
    
  2. Activa la función de anidamiento

    :::console
    # modprobe kvm_intel nested=1
    
  3. La virtualización anidada se habilita hasta que se reinicia el host. Para habilitarlo permanentemente, agregue la siguiente línea al archivo /etc/modprobe.d/kvm.conf:

    :::console
    # nano -w /etc/modprobe.d/kvm.conf
    ----------------------------------
    options kvm_intel nested=1
    

Habilitar la virtualización anidada para procesadores AMD:

  1. Apague todas las máquinas virtuales en ejecución y recargue el módulo kvm_amd:

    :::console
    # modprobe -r kvm_amd
    
  2. Activa la función de anidamiento

    :::console
    # modprobe kvm_amd nested=1
    
  3. La virtualización anidada se habilita hasta que se reinicia el host. Para habilitarlo permanentemente, agregue la siguiente línea al archivo /etc/modprobe.d/kvm.conf:

    :::console
    # nano -w /etc/modprobe.d/kvm.conf
    ----------------------------------
    options kvm_amd nested=1
    

Uso de Qemu

Escribir el disco virtual a usar por la máquina virtual.

:::console
$ qemu-img create -f qcow2 hyper.qcow2 10G

Uso simple:

:::bash
#!/bin/bash
qemu-system-x86_64 \
  -monitor stdio \
  --enable-kvm -m 512 \
  -cpu host -smp 4 \
  -cdrom /path/to/hyperbola-milky-way-v0.4-dual.iso \
  -drive file=/path/to/hyper.qcow2,if=virtio \
  -boot c -rtc base=localtime \
  -device virtio-keyboard-pci \
  -net nic \
  -net user \
  -vga virtio

-cpu host -smp 4 para usar 4 CPUs con el nombre original del CPU-hostpedador.

-net user es importante para tener acceso a Internet dentro de su nuevo sistema. -m 512 es el tamaño de RAM virtual establecido (megabytes), el valor predeterminado es 128 MB, elegí 512.

Usted puede agregar -vga virtio -display sdl,gl=on para la emulación 3D

También usted puede agregar -device intel-hda -device hda-duplex para el soporte de audio en tarjetas de audio de Intel.

Véase https://wiki.archlinux.org/title/QEMU#Audio

Qemu + VNC como servidor

:::bash
#!/bin/bash
qemu-system-x86_64 \
  -monitor stdio \
  --enable-kvm -m 512 \
  -cpu host -smp 4 \
  -cdrom /path/to/hyperbola-milky-way-v0.4-dual.iso \
  -drive file=/path/to/hyper.qcow2,if=virtio \
  -boot c -rtc base=localtime \
  -device virtio-keyboard-pci \
  -net nic -net user \
  -vga virtio -display none \
  -vnc :0

Se puede agregar la opción -vnc :X para que QEMU redirija la pantalla VGA a la sesión VNC. Sustituya X por el número de la pantalla (0 entonces escuchará en 5900, 1 en 5901, 2 en 5902, etc).

Recuerda! Ctrl + Alt + G para salir de la captura del mouse, Ctrl + Alt + F para pantalla completa! Advertencia: la configuración predeterminada del servidor VNC no utiliza ninguna forma de autenticación. Cualquier usuario puede conectarse desde cualquier host. Puedes revisar: https://wiki.archlinux.org/title/QEMU#Basic_password_authentication

Capturas de pantalla de Qemu

Hyperbola en Qemu
Captura de pantalla de Hyperbola GNU/Linux en Qemu
Trisquel en Qemu
Captura de pantalla de Trisquel GNU/Linux en Qemu

Módulos con problemas de seguridad

El módulo vhost_net tiene problemas de seguridad CVE-2018-3646{:target="_blank" rel="noopener noreferrer"} que es un error de CPU L1TF y SMT con posible fuga de datos. Lo recomendable es desactivarlo de la siguiente manera:

:::console
# modprobe -r vhost_net

Si estás en Hyperbola GNU/Linux-libre este módulo viene desactivado.