Cuentos de la Sysadmin: Volcado en la línea de mando de Grub

Hoy tengo una historia de misterio, de horror y de esperanza. El encanto de un nuevo núcleo y paquetes era demasiado para resistirse, así que me encontré actualizando a Fedora 30. Todos los paquetes se habían descargado, todo lo que quedaba era dejar que DNF reiniciara la máquina e instalara todos los nuevos paquetes. Empecé el proceso y me fui a buscar una taza de café: negro, y más oscuro que la mancha que esta línea de trabajo deja en el alma. Después de que el tiempo suficiente había transcurrido, volví, esperando la cálida luz de un escritorio recién actualizado. En cambio, lo único que me saludó fue la dura oscuridad de una línea de mando de la comida. Algo estaba mal, y era malo.

(Aparte del lector, tuve esta experiencia en dos máquinas diferentes, que surgió de dos problemas de raíz diferentes. Uno era un ajuste de la configuración y el otro un problema de permisos inusual).

¿Cómo se recupera el joven administrador de sistemas Linux de un problema de este tipo? La línea de comandos grub es un misterio inescrutable para los no iniciados, pero una vez que entienda lo básico, no es terriblemente difícil arrancar su sistema e intentar restaurar el proceso de arranque normal. Esto depende de lo que se haya roto, por supuesto. Si el disco que contiene su partición raíz se ha roto, entonces lo siento, este artículo no le ayudará.

Para poder arrancar el sistema, ¿qué es lo que tiene que pasar exactamente? ¿Cómo funciona el arranque de Linux, incluso? Dos componentes necesitan ser cargados en la memoria: el kernel y los initramfs. Una vez que estos dos elementos se cargan en memoria, grub realiza un salto al código del kernel, que toma el control y termina el arranque de la máquina. Hay un detalle más importante que nos preocupa: el núcleo necesita saber dónde encontrar la partición raíz. Esto es típicamente parte de los parámetros del núcleo, especificados en la línea de arranque del núcleo.

Cuando se trabaja con un shell desconocido, el comando help es un buen punto de partida. grub se ejecuta en un entorno muy limitado, y la ejecución del comando help desplaza la mayor parte del texto fuera de la pantalla. Hay una variable de entorno que ayuda aquí, habilitando la salida paging:set pager=1.


Encontrar lo que estás buscando

Es tu amigo. ¿No sabes qué unidad es cuál? lsis al rescate. grub utiliza una nomenclatura única para acceder a las particiones. Puede que vea entradas como (HD0,0) o (hd0,msdos1). Un grub moderno incluso le permitirá listar los archivos y carpetas contenidos en esa partición usando un comando como ls (hd0,msdos1)/.

Queremos empezar averiguando qué partición almacena los archivos del kernel y del initrd. Esos archivos pueden estar en una carpeta de arranque, o sólo en una de las particiones. El kernel se llama generalmente vmlinuz-kernel_version.architecture así que por ejemplo: vmlinuz-5.3.7-200.fc30.x86_64. El initrd que necesitamos coincidirá con la versión del núcleo. Algo así como initramfs-5.3.7-200.fc30.x86_64.img.

La última información necesaria, la ubicación del sistema de archivos raíz, puede ser un poco más difícil de encontrar. Mientras busca en las particiones, puede encontrar una con una disposición del sistema de ficheros raíz, que contenga el arranque, la papelera, etc, home, etc. Es probable que pueda averiguar cómo llamará el núcleo a la partición basándose en el nombre en grub.

hd0 es probablemente sda, hd1 es probablemente sdb. La segunda mitad del nombre de grub le dice qué partición es, así que (hd0,msdos1)es probablemente sda1.


Poniéndolo todo junto

Para arrancar realmente, emitimos tres comandos en grub. El primer comando establece la imagen del kernel y cualquier opción de arranque del kernel. La única opción requerida es establecer la ubicación de la raíz:linux (hd0,msdos1)/boot/vmlinuz-4.19.0-6-amd64 root=/dev/sda1

A continuación establecemos la opción initrd:initrd (hd0,msdos1)/boot/initrd.img-4.19.0-6-amd64

Una vez que esas opciones están establecidas, podemos decirle a grub que intente arrancar el núcleo. Es un simple comando:boot

Asumiendo que establezcamos las opciones correctas, y que el sistema no esté por lo demás terriblemente roto, eso debería arrancar su máquina de nuevo a la normalidad. Es hora de solucionar los problemas que causaron que Grub se descarrilara para empezar. Eso, sin embargo, es para otra ocasión.

Ya que estamos aquí, hay algunos otros trucos que vale la pena saber sobre la comida y el arranque. El más útil es probablemente el modo monousuario, que se activa añadiendo un «1» a las opciones de arranque.

linux (hd0,msdos1)/boot/vmlinuz-4.19.0-6-amd64 root=/dev/sda1 1

En algunas distribuciones, esto incluso evita la necesidad de saber una contraseña de root, lo cual es útil si se encuentra bloqueado en un sistema. Muchos sistemas modernos todavía requieren registrarse como root para proceder. Aún así, el modo monousuario es útil para solucionar otros problemas de arranque y del sistema.

Un truco más para tener en la manga es la capacidad de poner en la lista negra a un conductor. Añadir a la lista negra amdgpu, por ejemplo, evitaría que se cargara el controlador amdgpu, independientemente del hardware presente. Si un controlador defectuoso o mal configurado está causando un fallo durante el arranque, ponerlo en la lista negra probablemente le permitirá arrancar con éxito.

Esperemos que esto sea suficiente para darle la ventaja la próxima vez que esté depurando un problema de arranque de Linux, y añada un par de herramientas a su repertorio. Feliz pirateo.

El rediseño ordenado de la placa utiliza PCBs flexibles, sin cables

El rediseño ordenado de la placa utiliza PCBs flexibles, sin cables

El retrabajo del PCB con el propósito de arreglar problemas de diseño desafortunados tiende a involucrar ciertas cosas: alambres delgados ...
Leer Más
Un novato toma el desafío de SMD en Supercon

Un novato toma el desafío de SMD en Supercon

Los que visitan por primera vez Disneyworld suelen pensar ingenuamente que van a "hacer" el parque en tres días: un ...
Leer Más
La Fuerza Aérea de los EE.UU. dice que están desarrollando un motor a reacción de código abierto; nosotros decimos que nos muestren el diseño

La Fuerza Aérea de los EE.UU. dice que están desarrollando un motor a reacción de código abierto; nosotros decimos que nos muestren el diseño

Las economías de escala generalmente dictan que cualquier cosa producida en cantidades suficientemente grandes se convertirá eventualmente en barata. Pero ...
Leer Más
Santa Claws: Afila tus habilidades por una buena causa

Santa Claws: Afila tus habilidades por una buena causa

¿Quieres hacer algo bueno en esta temporada de fiestas sin dejar tu sofá o estación de batalla? Pues acércate y ...
Leer Más
Frentes Yosys para Xilinx ISE

Frentes Yosys para Xilinx ISE

Siempre nos maravillamos de cómo las herramientas de código abierto pueden superar a menudo a sus homólogos comerciales. Yosys, la ...
Leer Más
¿Qué tan seguro es ese baño ultrasónico para la remoción del flujo?

¿Qué tan seguro es ese baño ultrasónico para la remoción del flujo?

¿Cómo se limpia el flujo residual de las tablas? Hay muchas maneras de hacer el trabajo, desde "para qué molestarse" ...
Leer Más
radio ww2

La radio de los aviones de la Segunda Guerra Mundial

Toda mi vida me han hablado de las antiguas tiendas de excedentes del Ejército y la Marina donde se podían ...
Leer Más
Estas lecciones se aprendieron en el diseño del recinto, pero van mucho más allá

Estas lecciones se aprendieron en el diseño del recinto, pero van mucho más allá

Foaly] ha estado trabajando duro en la fabricación de una cámara de largo alcance de código abierto a distancia, y ...
Leer Más
La historia del aceleramiento: Metal Mercurial

La historia del aceleramiento: Metal Mercurial

De todos los metales conocidos, el mercurio es probablemente uno de los más famosos, aunque sólo sea por su forma ...
Leer Más
Una pequeña terminal para sus necesidades de acceso en serie

Una pequeña terminal para sus necesidades de acceso en serie

Algunos equipos informáticos se han desvanecido sin dejar rastro, por ejemplo un módem no es un dispositivo que detenga a ...
Leer Más
Mueble para impresora 3D de código abierto apilable

Mueble para impresora 3D de código abierto apilable

Una de las desafortunadas realidades de la impresión en 3D con FDM de escritorio es que los factores ambientales, como ...
Leer Más
La piel robótica ve cuando (y cómo) la estás tocando

La piel robótica ve cuando (y cómo) la estás tocando

Las cámaras son cada vez menos visibles. Ahora se esconden bajo la piel de los robots. Un equipo de investigadores ...
Leer Más
ESP32 Muestreo de audio con interrupciones e IRAM

ESP32 Muestreo de audio con interrupciones e IRAM

Interrumpir mientras alguien habla es grosero para los humanos, pero inteligente para las computadoras. Ivan Voras] muestra cómo usar las ...
Leer Más
Bruselas mira hacia la prohibición del transporte de combustibles fósiles ya en 2035

Bruselas mira hacia la prohibición del transporte de combustibles fósiles ya en 2035

Muchas ciudades del mundo luchan rutinariamente contra el smog. Además de ser antiestético, la fuerte contaminación atmosférica tiene graves efectos ...
Leer Más
Cuentos de la Sysadmin: Volcado en la línea de mando de Grub

Cuentos de la Sysadmin: Volcado en la línea de mando de Grub

Hoy tengo una historia de misterio, de horror y de esperanza. El encanto de un nuevo núcleo y paquetes era ...
Leer Más
Construya un fotomatón DSLR de la manera más fácil

Construya un fotomatón DSLR de la manera más fácil

Es un hecho bien conocido en las sociedades capitalistas que cualquier producto o servicio, si se usa en una boda, ...
Leer Más
Sleeper PlayStation esconde un Pi 4 de Raspberry

Sleeper PlayStation esconde un Pi 4 de Raspberry

[Andreas Wilcox] quería darle a su hermano un regalo de cumpleaños que reflejara el amor que compartían por los primeros ...
Leer Más
La impresora 3D y el CNC hacen que esta calculadora rusa sea bilingüe

La impresora 3D y el CNC hacen que esta calculadora rusa sea bilingüe

Seamos claros desde el principio: probablemente hay soluciones más obvias al problema de usar una calculadora rusa cuando no se ...
Leer Más
Detrás de las puertas de Amazon hay una biblioteca

Detrás de las puertas de Amazon hay una biblioteca

Algunas personas aman el Amazonas, mientras que otras piensan que se ha vuelto demasiado grande e invasiva. Pero tienes que ...
Leer Más
El reloj de la fecha no requiere (casi) ninguna interacción

El reloj de la fecha no requiere (casi) ninguna interacción

Muchas ofertas comerciales de tecnología dirigida a ayudar a los ancianos parecen hacer un buen trabajo en la superficie, pero ...
Leer Más
DeepPCB enruta sus PCBs de KiCAD

DeepPCB enruta sus PCBs de KiCAD

Los ordenadores pueden escribir poesía, aunque no necesariamente pueden escribir buena poesía. Lo mismo puede decirse del enrutamiento de las ...
Leer Más
Hacking de estilo cinematográfico con una pared de Hexágono Luminoso

Hacking de estilo cinematográfico con una pared de Hexágono Luminoso

A lo largo de los años, los medios de comunicación han logrado reunir algunas representaciones visuales bastante ridículas de la ...
Leer Más
Un Arduino basado en STM32F4 en el factor de forma de la pluma

Un Arduino basado en STM32F4 en el factor de forma de la pluma

[minh7a6] ama la Pluma de Adafruta, pero ve un poco de espacio para mejorar. Primero es el asunto de la ...
Leer Más
Tableros alargados eléctricos de construcción rápida utilizando componentes estándar.

Tableros alargados eléctricos de construcción rápida utilizando componentes estándar.

Construir cosas geniales completamente desde cero es indudablemente satisfactorio y constituye un excelente poste Digital Lithium, pero generalmente implica unos ...
Leer Más
Ya era hora de que viéramos otro reloj con espejo infinito

Ya era hora de que viéramos otro reloj con espejo infinito

¿Ya has hecho un espejo infinito? En este momento son más o menos un proyecto de rito de paso. Pero ...
Leer Más
Robot Vs. Superbug

Robot Vs. Superbug

El trabajo en una universidad o en un laboratorio de investigación sobre problemas interesantes y complicados de las ciencias tiene ...
Leer Más
El ArrBot es una forma rápida de salir adelante en un nuevo campo de la robótica

El ArrBot es una forma rápida de salir adelante en un nuevo campo de la robótica

[Junglist] señala correctamente que la robótica agrícola está en camino de ser la próxima gran cosa (TM) y presenta su ...
Leer Más
La tarjeta de interfaz universal viene al rescate de proyectos más grandes

La tarjeta de interfaz universal viene al rescate de proyectos más grandes

Tan pronto como un proyecto involucra otros ensamblajes, partes o módulos, las cosas se complican. Dispositivos como ventiladores, unidades de ...
Leer Más
El desmontaje del dongle del tablero de mandos revela el hardware necesario para reducir las millas

El desmontaje del dongle del tablero de mandos revela el hardware necesario para reducir las millas

El progreso y la proliferación de las computadoras en las aplicaciones automotrices casi han convertido al mecánico de árboles de ...
Leer Más
Alimentación de filamentos y electrones a través de un conector D-Sub personalizado

Alimentación de filamentos y electrones a través de un conector D-Sub personalizado

A veces olvidamos que las impresoras 3D son sólo plataformas CNC con un hotend acoplado, y que hay toda una ...
Leer Más

Deja un comentario