Como recuperar Arch Linux después de una actualización que provoca el sistema no inicie

Escrito por picodotdev el .
gnu-linux planeta-codigo software-libre
Comentarios

Instalar un sistema GNU/Linux es sencillo y está muy bien, también es importante saber como intentar recuperarlo cuando una actualización de software provoca que el sistema no se inicie con normalidad hasta el entorno de escritorio gráfico, el motivo puede ser incluso un kernel panic. El objetivo de la recuperación es corregir el problema del inicio, si no es posible, recuperar los valiosos documentos, imágenes, vídeos u otros archivos antes de finalmente llegar al punto de reinstalar el sistema para devolverlo a un estado correcto aunque quizá perdiendo los datos que tuviese.

Arch Linux

Estás contento con Arch Linux y en gran medida despreocupado de las versiones de las aplicaciones ya que sabes que al ser una distribución rolling release, siempre tienes la última versión de todos los paquetes cada vez que haces una actualización completa del sistema. Un día realizas la periódica actualización o has visto una nueva versión de un paquete ya sea una nueva versión del kernel o mesa que pueden contener importante mejoras en el sistema gráfico que quieres aprovechar o una nueva versión de una aplicación con nuevas características relevantes como podría se LibreOffice o VLC. Inicias la actualización del sistema como tantas otras veces has hecho. Termina aparentemente bien con todos los paquetes actualizados y sin ningún mensaje de error. Reinicias el equipo para que la actualización de algunos paquetes tengan efecto como el caso del kernel. Sin embargo, ¡sorpresa! el sistema no inicia como normalmente, no llega al inicio de sesión del entorno de escritorio ni siquiera tienes acceso a una terminal basada en consola, el error parece un kernel panic. Reinicias una segunda vez, el mismo error. Parece que está todo perdido, piensas en los importantes archivos que tienes en el sistema de almacenamiento persistente, disco duro o SSD, ¡no tienes una copia completamente reciente!, el corazón te empieza a latir con fuerza.

Por suerte, habiendo estado usando Arch Linux de forma ininterrumpida durante los 8 años esto solo me ha pasado una vez y por culpa mía después de actualizar Grub al ejecutar un comando erróneo, durante todos esos años he tenido importantes actualizaciones como varias versiones de GNOME, systemd y el kernel. El caso era el que he descrito anteriormente, el sistema no iniciaba dado que Grub es de las primeras cosas necesarias para iniciar el sistema cualquier problema en él origina esta situación. Otros paquetes de especial importancia son el kernel, los controladores gráficos, mesa, systemd, una nueva versión del entorno de escritorio, … Por una actualización a una nueva versión de VLC el sistema no va a dejar de iniciarse al lo sumo será VLC el que no inicie y es de más sencillo de solucionar volviendo a una versión anterior correcta con un simple downgrade de paquete.

Antes de una actualización conviene revisar los paquetes que se van a actualizar y fijarse en los especialmente sensibles como he comentado, también conviene estar suscrito al feed de noticias de Arch, a veces la actualización del sistema requiere una intervención manual y en ese feed siempre comentan los detalles y en qué consiste la intervención manual incluso ponen los comandos necesarios a ejecutar. Para que el daño sea el menor posible en caso de completo desastre es imprescindible hacer copias de seguridad de forma regular, una cosa es un fallo de software otra es un fallo de hardware que si se produce en la unidad de almacenamiento los datos es muy posible que queden irrecuperables. Los fallos en el hardware no son tan extraños, el hardware es reemplazable por un módico precio pero los datos no, por todo ¡haz copias de seguridad regularmente! Avisado estás.

De modo que saber cómo recuperar el sistema es algo necesario llegado el caso. En Arch Linux la forma que conozco es usando una imagen de instalación de Arch Linux y montar el sistema de archivos para hacer las modificaciones necesarias para recuperar el sistema que es probable que consistan en desactualizar paquetes por versiones anteriores. Dependiendo de los mensajes de error que proporcione el sistema en el inicio fallido las acciones a realizar para arreglarlo serán unas u otras, seguramente en los foros de Arch Linux otros usuarios ya hayan pedido ayuda con el mismo o parecido error.

Los comandos concretos para montar el sistema de archivos depende de la configuración propia: de las particiones creadas, de si se está utilizando LVM o de si se está usando cifrado. Cuando escribí el script de instalación desatendido, automatizado y personalizable para Arch Linux pensé al mismo tiempo en el caso de uso de una hipotética recuperación, escribí un script para iniciar la recuperación.

Una vez iniciado el sistema con la imagen ISO de instalación de Arch Linux este script contiene los comandos para iniciar la recuperación, los pasos de su uso son los siguientes:

En el paso vim alis-recovery.conf se modifica la configuración según el sistema a recuperar. Básicamente se dice en qué unidad está el sistema de archivos de Arch Linux, si utiliza LVM y está cifrado. El script de recuperación está adaptado al propio script de instalación, no cubre la infinidad de casos personalizados que cada usuario por su cuenta puede realizar o existir pero sirve en cualquier caso como guía de cómo iniciar la recuperación.

El contenido completo del propio script de recuperación es el siguiente, no es más que un script de bash con los mismos comandos que serían necesarios para realizar la recuperación manualmente de forma interactiva.

El código fuente completo del ejemplo puedes descargarlo del repositorio de ejemplos de Blog Bitix alojado en GitHub.