Habilite la compatibilidad con UEFI en la virtualización de KVM
Hay dos tipos de firmware en las placas base de las computadoras:
- BIOS o Sistema básico de entrada y salida
- UEFI o Interfaz de firmware extensible unificada
¿Qué es BIOS?
El BIOS se cargará cuando la computadora se inicie para inicializar y probar el funcionamiento del hardware. Se usa POST o Power On Self Test para garantizar que la configuración del hardware sea válida y funcione correctamente, luego busca el MBR (Master Boot Records) que almacenó el dispositivo de arranque y lo usa para iniciar el cargador de arranque, luego el kernel y luego El sistema operativo.
Todos estos procesos de arranque en BIOS se denominan ‘Arranque heredado’, a continuación se muestra una explicación simple del proceso de arranque en BIOS.
BIOS > MBR > Bootloader > Kernel > Operating System
BIOS considera firmware antiguo y desactualizado, aunque siempre habrá gente usándolo. BIOS tiene una funcionalidad limitada para las computadoras actuales y las PC modernas, debe ejecutarse en un procesador de 16 bits con solo 1 MB de espacio para ejecutarse. Además, inicializará varios hardware a la vez, lo que hace que el proceso de arranque sea más lento.
El reemplazo de firmware para BIOS es UEFI, que está disponible en las placas base modernas.
¿Qué es UEFI?
UEFI o Unified Extensible Firmware Interface se considera como el reemplazo de firmware para BIOS. Viene con más funciones y funcionalidades que están limitadas en el BIOS, y está disponible en las placas base y las PC modernas de hoy en día.
Aunque se considera un reemplazo de BIOS, UEFI funciona de manera diferente y tiene un concepto opuesto a BIOS. UEFI almacena toda la información sobre la inicialización y el inicio en el archivo .efi, que se almacena en la partición ESP (EFI System Partition). y el ESP también almacenará los programas del cargador de arranque para el sistema operativo instalado en la computadora.
El UEFI se usa GPT para almacenar toda la información sobre las particiones, en lugar de MBR. Y a continuación, una explicación simple 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 UEFI que no están disponibles en BIOS tradicionales:
- Arranque más rápido
- Manejar más de 2 TB o unidad (lo cual es un gran problema para el entorno actual)
- Admite más de 4 particiones con tabla de particiones GUID
- Soportes para arranque seguro
- Admite dispositivos de firmware modernos de 64 bits
- Tiene una interfaz gráfica de usuario simple
- etc.
Firmware en virtualización KVM
De forma predeterminada, la virtualización de KVM utiliza el BIOS como firmware predeterminado para las máquinas virtuales invitadas. Para habilitar la compatibilidad con UEFI en KVM, debe instalar el paquete OVMF (Open Virtual Machine Firmware) en su sistema host.
El proyecto OVMF es parte del firmware tianocore de Intel para la máquina virtual qemu.
requisitos previos
Para esta guía, aprenderá a habilitar la compatibilidad con UEFI en la máquina virtual KVM. Instalará el paquete OVMF en la máquina host y configurará la máquina virtual con el firmware UEFI.
Antes de comenzar, asegúrese de tener una máquina con virtualización KVM instalada encima.
A continuación se muestra una guía para la instalación de virtualización KVM en Arch Linux.
Instalación del paquete OVMF
Al principio, debe iniciar sesión en el servidor host KVM e instalar los paquetes. De forma predeterminada, los paquetes ovmf están disponibles en la mayoría de los repositorios de distribución de Linux, como Debian, Ubuntu, CentOS, etc.
1. Instale ovmf en los sistemas basados en Debian usando el comando apt como se muestra a continuación.
sudo apt install ovmf
2. Y para sistemas basados en RHEL como CentOS/Fedora, debe instalar el paquete ‘edk2-ovmf’ usando el comando DNF/Yum como se muestra a continuación.
sudo dnf install edk2-ovmf
or
sudo yum install edk2-ovmf
3. Para sistemas basados en Arch Linux como Manjaro, puede usar el comando pacman a continuación.
sudo pacman -S edk2-ovmf
Y el soporte UEFI en la virtualización KVM está habilitado. Ahora vamos a crear nuevas máquinas virtuales.
Habilitar UEFI en la máquina virtual
Hay varias formas de crear una máquina virtual en la virtualización KVM. Puede usar el modo de línea de comandos (usando el comando virt-install), o usando la aplicación gráfica como «administrador de máquina virtual».
Crear máquina virtual con virt-install
1. Para crear una máquina virtual con firmware UEFI usando la línea de comando ‘virt-install’, agregue la opción ‘–boot uefi’ en las opciones de comando.
A continuación se muestra un ejemplo que usa 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á en su máquina virtual.
Y si ingresa en la configuración de UEFI, a continuación se muestran algunas capturas de pantalla que obtendrá.
A continuación se muestra la captura de pantalla de UEFI Interactive Shell en la máquina virtual KVM.
Y a continuación se muestra la captura de pantalla de la configuración de OVMF en la máquina virtual UEFI KVM
Crear una máquina virtual con Virtual Machine Manager
La aplicación del administrador de máquinas virtuales proporciona una interfaz gráfica para administrar la virtualización de KVM.
Si es nuevo en la virtualización KVM, se recomienda utilizar el virt-manager (administrador de máquinas virtuales) para configurar su entorno de virtualización.
Para crear una máquina virtual compatible con firmware UEFI mediante la aplicación virt-manager, debe configurarla durante la creación de la propia máquina virtual.
1. En la última ventana al crear una máquina virtual usando virt-manager, verá la ventana de confirmación como se muestra a continuación.
Debe marcar la opción ‘Personalizar configuración antes de instalar’, luego hacer clic en el botón ‘Finalizar’.
2. En la nueva ventana, haga clic en el menú ‘Descripción general’ y vaya a la sección ‘Detalles del hipervisor’.
En la opción Firmware, seleccione ‘UEFI x86_64: …’, luego haga clic en el botón ‘Aplicar’.
Ahora haga clic en el botón ‘Comenzar instalación’ para iniciar la instalación de la máquina virtual.
3. En el proceso de inicio de la máquina virtual, verá el inicio de TianoCore como se muestra a continuación.
4. Después de eso, verá su sistema operativo como se muestra a continuación.
Ahora ha creado con éxito la máquina virtual en la virtualización de KVM y la máquina virtual ahora usa el firmware UEFI en lugar del BIOS predeterminado.
Conclusión
¡Felicidades! Ha aprendido a habilitar la compatibilidad con UEFI en la virtualización de KVM. Además, aprendió a configurar una máquina virtual con la línea de comandos virt-install y la aplicación gráfica virt-manager y a habilitar el firmware UEFI en la máquina virtual.