Siguiente: Definición de servicios, Anterior: Invocación de guix deploy, Subir: Configuración del sistema [Índice general][Índice]
Para ejecutar Guix en una máquina virtual (VM), se puede usar tanto la
imagen de máquina virtual de Guix preconstruida que se distribuye en
‘https://ftp.gnu.org/gnu/guix/guix-system-vm-image-1.2.0.x86_64-linux.xz
’.
Esta imagen es una imagen comprimida con formato QCOW. Primero tendrá que
descomprimirla con xz -d
y, una vez hecho, podrá proporcionarsela
a un emulador como QEMU (véase más detalles a continuación).
Esta imagen arranca en el entorno gráfico Xfce y contiene algunas
herramientas usadas de forma común. Puede instalar más software en la imagen
mediante la ejecución de guix package
en un terminal
(véase Invocación de guix package). También puede reconfigurar el sistema en
base a su archivo de configuración inicial, disponible como
/run/current-system/configuration.scm (véase Uso de la configuración del sistema).
En vez de usar esta imagen preconstruida, se puede construir una imagen
propia para máquina virtual mediante el uso de guix system
vm-image
(véase Invocación de guix system). La imagen devuelta se encuentra en
formato qcow2, el cual el emulador QEMU puede usar
de manera eficiente.
Si ha construido su propia imagen, debe copiarla fuera del almacén y
proporcionarse a sí misma permisos de escritura sobre dicha copia antes de
usarla. En la invocación de QEMU debe elegir un emulador de sistema que sea
adecuado para su plataforma hardware. Esta es una invocación de QEMU mínima
que arrancará el resultado de guix system vm-image
en hardware
x86_64:
$ qemu-system-x86_64 \ -nic user,model=virtio-net-pci \ -enable-kvm -m 1024 \ -device virtio-blk,drive=midisco \ -drive if=none,file=/tmp/imagen-qemu,id=midisco
Aquí está el significado de cada una de esas opciones:
qemu-system-x86_64
Esto especifica la plataforma hardware a emular. Debe corresponder con el anfitrión.
-nic user,model=virtio-net-pci
Activa la pila de red en espacio de usuaria sin privilegios. El SO anfitrión
puede acceder a la máquina virtualizada pero no al revés. Este es el modo
más simple de poner la máquina en red. model
especifica que
dispositivo de red emular: virtio-net-pci
es un dispositivo especial
para sistemas operativos virtualizados y recomendado para la mayor parte de
usos. Asumiendo que su plataforma de hardware es x86_64, puede obtener una
lista de adaptadores de red disponibles ejecutando
qemu-system-x86_64 -nic model=help
.
-enable-kvm
Si su sistema tiene extensiones de virtualización por hardware, la activación de la implementación de máquinas virtuales (KVM) del núcleo Linux hará que la ejecución sea más rápida.
-m 1024
RAM disponible para el sistema operativo virtualizado, en mebibytes. El valor predeterminado es 128 MiB, que puede ser insuficiente para algunas operaciones.
-device virtio-blk,drive=midisco
Crea un dispositivo virtio-blk
llamado “midisco”. virtio-blk
es un mecanismo de “paravirtualización” de dispositivos de bloques que
permite a QEMU obtener un mejor rendimiento que se emulase una unidad de
disco completa. Véase la documentación de QEMU y KVM para más información.
-drive if=none,file=/tmp/imagen-qemu,id=midisco
Usa nuestra imagen QCOW, el archivo /tmp/imagen-qemu, como almacenamiento físico para la unidad “midisco”.
El guión run-vm.sh
predeterminado que devuelve la invocación de
guix system vm
no añade una opción -nic user
de manera
predeterminada. Para obtener acceso a la red desde la máquina virtual añada
el servicio (dhcp-client-service)
a su definición de sistema y
arranque la máquina virtual mediante el uso de `guix system vm
config.scm` -nic user
. Un punto importante a tener en cuenta del uso de
-ni user
para la obtención de red es que ping
no
funcionará, puesto que usa el protocolo ICMP. Deberá usar una orden
diferente para comprobar la conectividad a la red, por ejemplo guix
download
.
Para activar SSH dentro de una máquina virtual debe añadir un servidor SSH
como (openssh-service-type)
en su máquina virtual (véase openssh-service-type
). Además debe que redirigir el puerto
SSH, el 22 por omisión, a la máquina anfitriona. Puede hacerlo con
`guix system vm config.scm` -nic user,model=virtio-net-pci,hostfwd=tcp::10022-:22
Para conectarse a la máquina virtual puede ejecutar
ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022
La -p
indica a ssh
el puerto al que se debe
conectar. -o UserKnownHostsFile=/dev/null
evita que ssh
se queje cada vez que modifique su archivo config.scm
y la orden
-o StrictHostKeyChecking=no
evita que tenga que autorizar la
conexión a una máquina desconocida cada vez que se conecte.
virt-viewer
con SpiceComo alternativa al cliente gráfico predeterminado de qemu
puede
usar remote-viewer
del paquete virt-viewer
. Para
conectarse proporcione la opción -spice
port=5930,disable-ticketing
a qemu
. Véase la sección previa para
más información sobre cómo hacer esto.
Spice también le permite hacer cosas como compartir su portapapeles con su
máquina virtual. Para activarlo debe proporcionar también las siguientes
opciones a qemu
:
-device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x5 -chardev spicevmc,name=vdagent,id=vdagent -device virtserialport,nr=1,bus=virtio-serial0.0,chardev=vdagent, name=com.redhat.spice.0
También deber añadir a su definición de sistema el servicio
(spice-vdagent-service)
(véase servicio
Spice).
Siguiente: Definición de servicios, Anterior: Invocación de guix deploy, Subir: Configuración del sistema [Índice general][Índice]