cl/content/articles/instalar-un-gestor-de-maquinas-virtuales-en-hyperbola-gnulinux-libre.md

235 lines
7.0 KiB
Markdown

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 <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 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
<figure>
<a href="{filename}/wp-content/uploads/article/images/2020/05/vm-hyperbola.png">
<img src="{filename}/wp-content/uploads/article/images/2020/05/vm-hyperbola.png" alt="Hyperbola en Qemu">
</a>
<figcaption>Captura de pantalla de Hyperbola GNU/Linux en Qemu</figcaption>
</figure>
<figure>
<a href="{filename}/wp-content/uploads/article/images/2020/05/vm-trisquel.png">
<img src="{filename}/wp-content/uploads/article/images/2020/05/vm-trisquel.png" alt="Trisquel en Qemu">
</a>
<figcaption>Captura de pantalla de Trisquel GNU/Linux en Qemu</figcaption>
</figure>
### 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