El menú de recuperación de Ubuntu: desmitificando la recuperación del sistema Linux

No intente convencerse a sí mismo de lo contrario: junto con todas las cosas buenas, tendrá días malos con Linux.

  • Usted (o los usuarios a los que apoya) va a escribir mal los comandos y destruir documentos de forma permanente.
  • Vas a experimentar esa sensación de hundimiento cuando te des cuenta de que una pieza realmente importante de hardware o software acaba de fallar. Eso es gratitud después de todo lo que hiciste durante todos esos años.

Tener una copia de seguridad adecuada significa que puede alejarse de un sistema operativo o computadora que no funciona y reconstruirlo en otro lugar. Pero ese siempre será el Plan B. El Plan A es recuperarse.

Usando el modo de recuperación en Ubuntu

Linux no le permite iniciar sesión normalmente (tal vez el proceso de inicio se detiene inesperadamente antes de mostrar la pantalla de inicio de sesión, por ejemplo). Querrá algunas herramientas básicas de administración del sistema.

Pero espere: si Linux no se carga, ¿cómo va a ejecutar esas herramientas? Bueno, incluso si Linux no se carga hasta un símbolo del sistema normal, a menudo lo llevará al menú de GRUB. Desde allí, puede usar las teclas de flecha hacia arriba y hacia abajo y luego Enter para seleccionar un kernel de Linux que se ejecute en modo de recuperación que, como verá pronto, abrirá una bolsa completa de trucos.

Como puede ver en la figura a continuación, una vez que Ubuntu se carga en modo de recuperación, se le mostrará un menú de herramientas que abordan algunos problemas comunes de arranque. Vale la pena probar cada uno que parezca que podría solucionar su problema de raíz. "Limpiar", por ejemplo, eliminará los archivos no utilizados si sospecha que el problema se debe a un disco lleno. “Dpkg” intentará arreglar cualquier paquete de software basado en apt roto que pueda estar estropeando las cosas. (La herramienta "dpkg" puede requerir que primero habilite la red).

La opción "root" abrirá una sesión de shell de línea de comandos de root para usted donde tendrá Bash a su disposición. En general, usar una sesión de shell simple para la recuperación en lugar de un escritorio con GUI completo tiene mucho sentido, porque cuantos menos servicios complicados tenga en ejecución, más probable será que al menos pueda obtener su sistema corriendo. Una vez que no logran obtener un símbolo del sistema de trabajo, puede empezar a hurgar para ver si puede identificar y solucionar el problema.

Pero al menos, te verás genial haciéndolo.

Pero, ¿cuáles son esas herramientas? ¿Tienes una máquina Ubuntu funcionando? Ve y échale un vistazo. El código que ejecuta el menú ya debe existir en algún lugar dentro de un sistema de archivos de Ubuntu. Utilice "localizar" para encontrarlo.

locate recovery-mode /lib/recovery-mode /lib/recovery-mode/l10n.sh /lib/recovery-mode/options /lib/recovery-mode/recovery-menu /lib/recovery-mode/options/apt-snapshots /lib/recovery-mode/options/clean /lib/recovery-mode/options/dpkg /lib/recovery-mode/options/failsafeX /lib/recovery-mode/options/fsck /lib/recovery-mode/options/grub /lib/recovery-mode/options/network /lib/recovery-mode/options/root /lib/recovery-mode/options/system-summary

Tenga en cuenta que el script "l10n.sh" establece las variables de entorno adecuadas para el menú. Si navega hasta el directorio / lib / recovery-mode /, verá que el archivo "recovery-menu" es el script que muestra la interfaz de menú que vio arriba. El directorio / lib / recovery-mode / options / contiene archivos para ejecutar cada uno de los elementos del menú ... como "fsck" que comprobará y, si es posible, arreglará cualquier sistema de archivos roto.

Dado que, según los capítulos anteriores del libro, ahora es un experto en scripts de Bash, ¿por qué no echar un vistazo a cada uno de los scripts en el directorio options / para ver si puede descubrir cómo funcionan? Aquí está el contenido de la secuencia de comandos "fsck" para comenzar. Tenga en cuenta la forma en que la secuencia de comandos está bien documentada (utilizando el carácter "#") para ayudarlo a comprender lo que está sucediendo.

cat /lib/recovery-mode/options/fsck #!/bin/sh . /lib/recovery-mode/l10n.sh  if [ "$1" = "test" ]; then echo $(eval_gettext "Check all file systems") exit 0 fi # Actual code is in recovery-menu itself  exit 0

Aquí hay un par de cosas que puede probar por su cuenta:

  • Ejecute manualmente el script "limpio" en una máquina Debian / Ubuntu. ¿Que pasó?
  • Luego intente editar cuidadosamente el script / lib / recovery-mode / recovery-menu (primero haga una copia de seguridad). Quizás solo cambie algo simple, como el título del menú o una de las descripciones del guión. Luego reinicie su máquina y, desde el menú de GRUB, ingrese al modo de recuperación para ver cómo se ve.

Con algunas variaciones y excepciones, debería poder hacer un buen uso de esos ejemplos en otros lugares.

Este artículo está adaptado del capítulo 6 (Herramientas de emergencia: construya un dispositivo de recuperación del sistema) de mi libro de Manning “Linux en acción” . Hay mucha más diversión de donde vino esto, incluido un curso híbrido llamado Linux in Motion que se compone de más de dos horas de video y alrededor del 40% del texto de Linux en acción . Quién sabe ... también puede disfrutar de mis servicios web Learn Amazon en un mes de almuerzos .