Creación de una máquina virtual Ubuntu Server 24.04 en modo texto
Necesitamos descargar https://releases.ubuntu.com/noble/ubuntu-24.04.3-live-server-amd64.iso a una ubicación legible por el usuario libvirt, por ejemplo, /srv/isos/ubuntu-24.04.3-live-server-amd64.iso.
Obtenemos el valor más adecuado para --os-variant del comando osinfo-query os | grep ubuntu (en este caso ubuntu24.04, pero puede variar dependiendo de la versión del sistema anfitrión).
Ejecutaremos:
virt-install --name ubuntuvm \
--os-variant ubuntu24.04 \
--vcpus 1 \
--ram 4096 \
--cpu host-passthrough \
--disk size=20 \
--network model=virtio \
--graphics none \
--extra-args console=ttyS0,115200n8 \
--location /srv/isos/ubuntu-24.04.3-live-server-amd64.iso,kernel=casper/vmlinuz,initrd=casper/initrd
Las opciones suministradas son:
--name ubuntuvm: Nombre de la VM.--os-variant ubuntu24.04: Variante de OS para el que se está creando la máquina virtual.--vcpus 1: Número de vCPUs asignados a la máquina virtual.--ram 4096: Cantidad de memoria RAM en MiB.--cpu host-passthrough: Pasar el modelo de CPU “real” a la VM.--disk size=20: Tamaño de disco en GB.--network model=virtio: Configuración de red,virt-installeligirá el tipo de redbridgepor defecto. Si no hemos configurado ningún Bridge o queremos utilizar NAT, cambiarmos el valor anetwork=default,model=virtio.--graphics none: No se asigna ninguna interfaz gráfica a la máquina virtual.--extra-args console=ttyS0,115200n8: Argumentos adicionales para el kernel.--location /srv/isos/ubuntu-24.04.3-live-server-amd64.iso,kernel=casper/vmlinuz,initrd=casper/initrd: Especificamos el origen de instalación. Debemos indicar de qué trayectorias extraer el kernel y el initrd para poder utilizar--extra-args.

El comando extraerá el kernel y el initrd del ISO de Ubuntu, los colocará en /var/cache/libvirt/boot temporalmente, creará la imagen de disco en /var/lib/libvirt/images, y finalmente iniciará la máquina virtual. Al cabo de unos momentos, se iniciará el proceso de instalación.
Si tienes experiencia instalando Ubuntu Server, la única diferencia es que la pantalla será más pequeña y no habrá interfaz gráfica. Puedes maximizar la terminal, pero el instalador en modo serie espera que la terminal tenga 80 columnas y 24 filas.

Lo primero es elegir el modo de instalación. Podemos escoger entre:
- rich mode: la instalación normal con color y caracteres UTF-8.
- basic mode: instalación en monocromo con caracteres ASCII y siempre en inglés (no hay selección de idioma).
- SSH: conectar por SSH para instalar en rich mode con una terminal más grande.
Yo, personalmente, prefiero escoger rich mode.

A continuación, escogeremos el idioma de instalación. En mi caso, he elegido el español.

Ahora seleccionamos el teclado. La elección es irrelevante, porque el sistema operativo desde el que ejecutamos la terminal ya se encarga de enviar los caracteres correctos.

Después seleccionamos el tipo de instalación. Podemos seleccionar “Ubuntu Server”, que es la opción normal, o “Ubuntu Server (minimized)”, que instala lo mínimo para que funcione el sistema operativo. La versión minimizada no tiene páginas de man o editores, entre otras cosas. En mi caso, he elegido la opción normal.
Más abajo está la opción para instalar drivers de terceros. En una máquina virtual de QEMU/KVM es totalmente innecesario.

Ahora podemos configurar la red. Estoy dejando la opción por defecto, que es usar DHCP, pero lo normal será escoger una IP estática si queremos que la VM ofrezca algún servicio a nuestra red.

El instalador hace una prueba de conectividad con el mirror de nuestro país, si aplica. Si no funciona puede que se haya configurado la red de manera incorrecta. En cualquier caso, podemos cambiar el mirror en esta pantalla introduciendo la URL del mirror que deseemos.

Tenemos que seleccionar el disco en que vamos a instalar, lo normal es que solamente haya uno, /dev/vda. Podemos utilizar LVM o no, la opción por defecto es sí. Si utilizamos LVM, podemos utilizar cifrado. También existe la opción de utilizar un particionado personalizado.

Después, podemos especificar qué sistemas de ficheros y puntos de montaje queremos utilizar. Por defecto, el instalador utiliza una única partición o volúmen lógico para la raíz con sistema de ficheros ext4. Podemos cambiar esto si deseamos.

El sistema pedirá confirmar antes de continuar y aplicar los cambios al disco.

Después de configurar el almacenamiento, podemos continuar con la configuración del hostname y el usuario administrador.

Se nos ofrece la opción de habilitar el soporte para Ubuntu Pro, que proporciona actualizaciones y respaldo adicionales. Si no lo necesitamos, podemos dejarlo desactivado. Es gratuito para uso personal hasta en 5 sistemas, pero yo nunca lo he activado.

Ahora podemos instalar el servicio de OpenSSH, lo que es muy muy recomendable. Por defecto, el sistema no lo instala. Podemos importar claves públicas desde GitHub o Launchpad. Si lo hacemos, se inhabilitará la autenticación mediante contraseña, aunque se puede volver a activar.

En el último paso antes de instalar, se nos ofrece una selección de Snaps para instalar en el servidor. Los Snap son paquetes que contienen todo lo necesario para ejecutar un programa, incluyendo dependencias y configuraciones específicas del sistema.

Por fin, la instalación propiamente dicha se ejecuta.

Al cabo de dos o tres minutos, tendremos el sistema instalado. Podemos reiniciar el servidor y comprobar que todo está funcionando correctamente.
Por último, aquí dejo una grabación del proceso completo:
Anterior Siguiente