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][trisquel]{:target="_blank" rel="noopener noreferrer"} y [Dragora][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][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 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 ### 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: ### 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][spectre]{: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. [dragora]: https://dragora.org [trisquel]: https://trisquel.info [qemu]: https://wiki.qemu.org/Main_Page [spectre]: https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/l1tf.html