Cómo reparar el error de arranque de Linux en el BIOS

Publicado: 2022-09-28
Computadora portátil sobre un fondo azul que muestra un símbolo del sistema de Linux.
fatmawati achmad zaenuri/Shutterstock.com

Se sabe que las actualizaciones de GRUB hacen que las computadoras Linux se inicien en la configuración BIOS o UEFI. La solución para esto aprovecha un útil truco de recuperación del sistema que realmente debería conocer.

Un estudio de caso: GRUB 2:2.06.r322

Una actualización del sistema para las distribuciones de Linux basadas en Arch y Arch en el verano de 2022 incluyó una nueva versión de GRUB. GRUB significa gr y cargador de arranque unificado.

Un gestor de arranque es una aplicación que inicia el proceso de arranque cuando se enciende la computadora. Se deben iniciar varias herramientas y utilidades de software, desde la partición correcta y en el orden correcto, para finalmente dar como resultado un sistema operativo operativo y accesible. GRUB inicia esa cascada de eventos.

Si tiene más de un sistema operativo instalado en su computadora, GRUB proporciona un menú para que pueda seleccionar qué sistema operativo usar. Uno de los cambios en el código de GRUB 2:2.06.r322 agregó soporte para una nueva opción de GRUB, --is-supported . La opción se utiliza para indicar si está presente o no una capacidad de inicio de firmware. Si es así, GRUB agrega una entrada al menú de inicio para permitirle iniciar la configuración de EUFI.

Se hizo referencia a la nueva opción en un script llamado "30_uefi-firmware.in". La diferencia para este archivo muestra que se eliminó una declaración if y se agregaron dos líneas.

Una de las nuevas líneas fue un reemplazo de la instrucción if . La otra línea nueva contiene fwsetup --is-supported . El "fw" en "fwsetup" significa firmware. Pero debido a que esa línea está por encima de la nueva instrucción if , siempre se ejecutará. Si estuviera dentro del cuerpo de la declaración if , solo se ejecutaría cuando la prueba en la declaración if se resolviera como verdadera.

¿Qué es UEFI y en qué se diferencia de BIOS?
RELACIONADO ¿Qué es UEFI y en qué se diferencia del BIOS?

Esto causó problemas en muchas computadoras UEFI, pero no en todas. Dependía de si la versión de GRUB que ya tenía instalada admitía este comando. Las máquinas afectadas harían una de dos cosas. Entrarían en un bucle de arranque donde el proceso de arranque nunca se completaría sino que se reiniciaría continuamente, o la computadora arrancaría directamente en la configuración del firmware UEFI. De cualquier manera, no había forma de obligar a su computadora a iniciar Linux.

Cuando te enfrentas a situaciones como esta, siempre existe la opción nuclear de hacer una reinstalación completa. Eso funcionará, pero dependiendo de cómo se haya particionado su disco duro, sin una copia de seguridad reciente, puede perder datos.

El método de bajo impacto utiliza chroot y un Live USB o Live CD/DVD. Esta es una buena técnica para comprender y tener bajo la manga todo tipo de fallas del sistema cuando no puede iniciar o iniciar sesión en su computadora Linux.

La técnica que usaremos

Para utilizar esta técnica, debe tener un USB de arranque o un CD/DVD con una distribución de Linux, que se inicie en una instancia de Linux en vivo. Por lo general, estos se denominan Live USB o Live CD/DVD. Todas las distribuciones principales admiten esta función.

Cómo crear una unidad USB de Ubuntu en vivo con almacenamiento persistente
RELACIONADO Cómo crear una unidad USB de Ubuntu en vivo con almacenamiento persistente

No vamos a instalar nada, por lo que los medios en vivo no tienen que ser la misma distribución que tiene instalada en su computadora. Podría usar un Ubuntu USB para reparar una computadora EndeavourOS, por ejemplo. Si no tiene acceso a ningún medio en vivo, necesitará usar otra computadora para descargar una imagen y escribirla en una memoria USB o en un CD/DVD.

Cuando inicie desde los medios en vivo, podrá montar y acceder a su sistema de archivos existente. Su sistema de archivos instalado aparecerá como parte del sistema de archivos de Linux que se inició desde los medios en vivo. Eso es genial. Si podemos acceder a él, tenemos la posibilidad de repararlo. Pero plantea un problema.

Cómo usar el comando chroot en Linux
RELACIONADO Cómo usar el comando chroot en Linux

La raíz de este sistema de archivos híbrido es la raíz del sistema de archivos multimedia en vivo, no la raíz de su sistema de archivos instalado. Para hacer que las rutas de archivo configuradas en su sistema Linux hagan referencia a sus ubicaciones de destino correctas, en algún lugar dentro de su sistema de archivos, y no en algún lugar relativo a la raíz del Linux en vivo, necesitamos usar chroot para establecer una nueva raíz que apunte a la raíz de su sistema de archivos instalado . En otras palabras, las rutas que comienzan con "/" utilizarán la raíz de su sistema de archivos como punto de partida.

La computadora de prueba que usamos para esto usa el sistema de archivos ext4 , pero también puede usar esta técnica en otros sistemas de archivos. Solo tiene que identificar qué particiones o volúmenes necesita montar y dónde montarlos. Los principios son los mismos.

Poniéndolo en práctica

Creamos una unidad USB de arranque y arrancamos nuestra computadora dañada desde allí. La distribución que usamos fue EndeavourOS. Los medios en vivo de EndeavourOS se inician en el entorno de escritorio XFCE 4.

Los medios en vivo de EndeavourOS se iniciaron en el entorno de escritorio XFCE

Para identificar qué particiones contienen la raíz de su sistema de archivos y cuál es la partición de arranque, abra una ventana de terminal y use el comando fdisk . Estamos usando la opción -l (listar partición). Necesitarás usar sudo también.

 sudo fdisk -l 

Usando el comando sudo fdisk -l para listar particiones y dispositivos

Desplácese por la salida hasta que vea las entradas etiquetadas como "Sistema EFI" y "Sistema de archivos Linux".

El resultado del comando sudo fdisk -l con las particiones raíz y de arranque resaltadas

En esta computadora, ambos están en el disco duro sda . Están en las particiones uno y dos, como lo indican las etiquetas de partición /dev/sda1 y /dev/sda2 .

En su computadora, pueden estar en diferentes discos duros y particiones. Tenga cuidado de anotar las particiones en las que están, necesitaremos usarlas en los siguientes comandos.

Necesitamos montar los sistemas de archivos en estas particiones adjuntándolos al sistema de archivos en vivo. El comando de mount lo hará por nosotros. Recuerde, es probable que sus etiquetas de partición sean diferentes, así que asegúrese de usar las de los resultados de su comando fdisk .

 sudo mount /dev/sda2 /mnt
 sudo mount /dev/sda1 /mnt/boot/efi 

Montaje de los sistemas de archivos raíz del sistema de archivos y de arranque

Para hacer que la raíz efectiva del sistema de archivos comience en la raíz de su sistema de archivos instalado real, usaremos chroot para configurar la raíz para que sea el punto de montaje “/mnt”. Aquí es donde la raíz de su sistema de archivos instalado se injerta en el sistema de archivos en vivo.

 sudo chroot /mnt 

Usando el comando chroot para crear una nueva raíz efectiva

Tenga en cuenta que el símbolo del sistema cambia para mostrar que ahora ha iniciado sesión efectivamente como root y que se encuentra en el directorio raíz "/" del sistema de archivos de su computadora.

Podemos probar esto fácilmente cambiando al directorio "/ home" y verificando qué directorios existen dentro de él.

 cd /casa
 ls 

Usando ls para listar cuentas de usuario

Debería ver un directorio para cada usuario configurado en su computadora, incluido uno para su propia cuenta de usuario. Esta computadora tiene un solo usuario, llamado "dave". Si hubiéramos usado cd /home antes de usar el comando chroot , habríamos ingresado al directorio "/home" del sistema de archivos en vivo.

Para que quede claro, ahora está accediendo a su sistema de archivos real como usuario raíz , así que tenga cuidado.

Para solucionar el problema con GRUB 2:2.06.r322, todo lo que teníamos que hacer era ejecutar el comando grub-install .

 grub-instalar 

Ejecutar el comando grub-install para reparar el error de inicio de GRUB en BIOS

Por lo general, no se recomienda ejecutar grub-install ciegas de esta manera. En este caso, es lo que se requería.

Reparar o Reemplazar

Si está tratando de solucionar un problema diferente, deberá consultar los foros de su distribución para encontrar la solución adecuada para su problema. Si se trata de una queja generalizada, pronto encontrará una solución.

Como mínimo, ahora que puede acceder a su sistema de archivos, puede copiar sus datos en algún medio extraíble. Si decide realizar una reinstalación completa, no perderá datos.

RELACIONADO: Cómo copiar archivos usando el comando "instalar" en Linux