Activar la compatibilidad con UEFI en la virtualización KVM

Hay dos tipos de firmware en las placas base de los ordenadores:

  1. BIOS o Sistema Básico de Entrada y Salida
  2. UEFI o Interfaz de Firmware Extensible Unificado

¿Qué es la BIOS?

La BIOS se carga cuando el ordenador se pone en marcha para inicializar y probar el funcionamiento del hardware. Utiliza el POST o Autocomprobación de Encendido para asegurarse de que la configuración del hardware es válida y funciona correctamente, luego busca el MBR (Master Boot Records) que almacena el dispositivo de arranque, y lo utiliza para lanzar el gestor de arranque, luego el kernel y después el Sistema Operativo.

Todos estos procesos de arranque en la BIOS se denominan «arranque heredado», a continuación se explica de forma sencilla el proceso de arranque en la BIOS.

BIOS > MBR > Bootloader > Kernel > Operating System

La BIOS se considera un firmware antiguo y obsoleto, aunque siempre habrá gente que la utilice. La BIOS tiene una funcionalidad limitada para los ordenadores de hoy en día y los PC modernos, debe funcionar en un procesador de 16 bits con sólo 1 MB de espacio para ejecutarse. Además, inicializa varios equipos a la vez, lo que hace que el proceso de arranque sea más lento.

El firmware que sustituye a la BIOS es la UEFI, que está disponible en las placas base modernas.

¿Qué es la UEFI?

La UEFI o Interfaz de Firmware Extensible Unificada se considera el sustituto del firmware de la BIOS. Viene con más características y funcionalidades que están limitadas en la BIOS, y está disponible en las placas base actuales y en los PCs modernos.

Aunque se considera un sustituto de la BIOS, la UEFI funciona de forma diferente y tiene un concepto opuesto a la BIOS. La UEFI almacena toda la información sobre la inicialización y el arranque en el archivo .efi, que se almacena en la partición ESP (Partición del Sistema EFI). y en la ESP se almacenan también los programas del gestor de arranque del sistema operativo instalado en el ordenador.

La UEFI utiliza GPT para almacenar toda la información sobre las particiones, en lugar de MBR. Y a continuación una explicación sencilla de cómo arranca el sistema operativo en UEFI.

UEFI > GPT/ESP > Kernel > Operating System

A continuación se muestran algunas características notables de la UEFI que no están disponibles en la BIOS tradicional:

  • Arranque más rápido
  • Maneja más de 2TB de disco (lo que es un gran problema en el entorno actual)
  • Soporta más de 4 particiones con tabla de particiones GUID
  • Soporta el arranque seguro
  • Soporta dispositivos de firmware modernos de 64 bits
  • Tiene una interfaz gráfica de usuario sencilla
  • etc.

Firmware en la virtualización KVM

Por defecto, la virtualización KVM utiliza la BIOS como firmware por defecto para las máquinas virtuales invitadas. Para habilitar la compatibilidad con UEFI en KVM, debes instalar el paquete OVMF (Open Virtual Machine Firmware) en tu sistema anfitrión.

El proyecto OVMF forma parte del firmware tianocore de intel para la máquina virtual qemu.

Requisitos previos

En esta guía aprenderás a habilitar el soporte UEFI en la máquina virtual KVM. Instalarás el paquete OVMF en la máquina anfitriona y configurarás la máquina virtual con el firmware UEFI.

Antes de empezar, asegúrate de que tienes una máquina con virtualización KVM instalada encima.

A continuación encontrarás una guía para la instalación de la virtualización KVM en Arch Linux.

Instalación del paquete OVMF

En primer lugar, debes iniciar sesión en el servidor anfitrión KVM e instalar los paquetes. Por defecto, los paquetes ovmf están disponibles en la mayoría de los repositorios de las distribuciones de Linux, como Debian, Ubuntu, CentOS, etc.

1. Instala ovmf en los sistemas basados en Debian utilizando el comando apt como se indica a continuación.

sudo apt install ovmf

2. Y para los sistemas basados en RHEL, como CentOS/Fedora, tienes que instalar el paquete ‘edk2-ovmf’ utilizando el comando DNF/Yum como se indica a continuación.

sudo dnf install edk2-ovmf

or

sudo yum install edk2-ovmf

3. Para los sistemas basados en Arch Linux, como Manjaro, puedes utilizar el comando pacman que aparece a continuación.

sudo pacman -S edk2-ovmf

Y el soporte UEFI en la virtualización KVM está activado. Ahora vamos a crear nuevas máquinas virtuales.

Habilitar la UEFI en la máquina virtual

Hay varias formas de crear una máquina virtual en la virtualización KVM. Puedes usar el modo de línea de comandos (usando el comando virt-install ), o usando la aplicación gráfica como el«gestor de máquinas virtuales«.

Crear una máquina virtual con virt-install

1. Para crear una máquina virtual con firmware UEFI utilizando la línea de comandos «virt-install«, añade la opción«–boot uefi» en las opciones del comando.

A continuación se muestra un ejemplo en el que se utiliza el comando virt-install para crear una nueva máquina virtual«Artix» con firmware UEFI.

sudo virt-install --name=Artix \
--os-type=Linux \
--os-variant=archlinux \
--vcpu=2 \
--ram=1024 \
--disk path=/var/lib/libvirt/images/Artix.img,size=15 \
--graphics spice \
--cdrom=/home/user/Desktop/artix-base-openrc-20210726-x86_64.iso \
--network network=default \
--boot uefi

Ahora arrancarás en tu máquina virtual.

Y si entras en la configuración de la UEFI, a continuación hay algunas capturas de pantalla que obtendrás.

Abajo está la captura de pantalla de la Shell Interactiva UEFI en la máquina virtual KVM.

Shell interactivo UEFI

Y a continuación está la captura de pantalla de la configuración OVMF en la máquina virtual KVM UEFI

Configuración del menú UEFI de OVMF

Crear una máquina virtual con el gestor de máquinas virtuales

La aplicación del gestor de máquinas virtuales proporciona una interfaz gráfica para gestionar la virtualización KVM.

Si eres nuevo en la virtualización KVM, se recomienda utilizar el virt-manager (gestor de máquinas virtuales) para configurar tu entorno de virtualización.

Para crear una máquina virtual compatible con el firmware UEFI utilizando la aplicación virt-manager, debes configurarla durante la creación de la propia máquina virtual.

1. En la última ventana al crear una máquina virtual utilizando el virt-manager, verás la ventana de confirmación que aparece a continuación.

Crear una máquina virtua con el gestor de virt

Debes marcar la opción«Personalizar la configuración antes de la instalación», y luego hacer clic en el botón«Finalizar«.

2. En la nueva ventana, haz clic en el menú«Visión general» y ve a la sección«Detalles del hipervisor«.

En la opción «Firmware», selecciona«UEFI x86_64: …» y haz clic en el botón «Aplicar«.

Activar UEFI en KVM

Ahora haz clic en el botón‘Comenzar la instalación‘ para iniciar la instalación de la máquina virtual.

3. En el proceso de arranque de la máquina virtual, verás el splash de arranque de TianoCore como se indica a continuación.

Salpicadura de arranque UEFI de Tianocore

4. Después verás tu sistema operativo como se indica a continuación.

Arranque de la máquina virtual con UEFI

Ahora has creado con éxito la máquina virtual en la virtualización KVM, y la máquina virtual está utilizando ahora el firmware UEFI en lugar de la BIOS por defecto.

Conclusión

¡Enhorabuena! Has aprendido a activar el soporte UEFI en la virtualización KVM. También has aprendido a configurar una máquina virtual tanto con la línea de comandos virt-install como con la aplicación gráfica virt-manager y a habilitar el firmware UEFI en la máquina virtual.

Scroll al inicio