Le menu de récupération Ubuntu: démystifier la récupération du système Linux

N'essayez pas de vous convaincre du contraire: avec toutes les bonnes choses, vous allez passer de mauvais jours avec Linux.

  • Vous (ou les utilisateurs que vous soutenez) allez mal saisir les commandes et détruire définitivement les documents.
  • Vous allez ressentir ce sentiment de naufrage lorsque vous réalisez qu'un élément matériel ou logiciel vraiment important vient de disparaître et a échoué. C'est de la gratitude après tout ce que vous avez fait pendant toutes ces années.

Être correctement sauvegardé signifie que vous pouvez vous éloigner d'un système d'exploitation ou d'un ordinateur qui ne fonctionne pas et tout reconstruire ailleurs. Mais ce sera toujours le plan B. Le plan A consiste à récupérer.

Utilisation du mode de récupération sur Ubuntu

Linux ne vous permet pas de vous connecter normalement (peut-être que le processus de démarrage s'arrête de manière inattendue avant d'afficher l'écran de connexion, par exemple)? Vous aurez besoin de quelques outils d'administration système de base.

Mais attendez: si Linux ne se charge pas, comment allez-vous lancer ces outils? Eh bien, même si Linux ne se charge pas jusqu'à une invite de commande normale, il vous amènera souvent au menu GRUB. De là, vous pouvez utiliser les touches fléchées haut et bas, puis Entrée pour sélectionner un noyau Linux fonctionnant en mode de récupération qui, comme vous le verrez bientôt, ouvrira tout un tas d'astuces.

Comme vous pouvez le voir sur la figure ci-dessous, une fois qu'Ubuntu est chargé en mode de récupération, vous verrez un menu d'outils qui résolvent certains problèmes courants de démarrage. Cela vaut la peine d'essayer chacun qui semble pouvoir résoudre votre problème de racine. «Clean», par exemple, supprimera les fichiers inutilisés si vous pensez que le problème provient d'un disque plein. «Dpkg» tentera de réparer tout progiciel basé sur apt cassé qui pourrait gommer les choses. (L'outil «dpkg» peut nécessiter l'activation préalable de la mise en réseau.)

L'option «root» ouvrira pour vous une session de shell en ligne de commande racine où vous aurez Bash à votre disposition. En général, utiliser une simple session shell pour la récupération plutôt qu'un bureau GUI complet a beaucoup de sens, car moins vous exécutez de services compliqués, plus il est probable que vous puissiez au moins obtenir votre système. fonctionnement. Une fois que vous avez réussi à obtenir une commande de travail rapide, vous pouvez commencer à fouiller pour voir si vous pouvez identifier et corriger le problème.

Mais à tout le moins, vous aurez l'air super cool de le faire.

Mais quels sont ces outils? Vous avez une machine Ubuntu en cours d'exécution? Allez jeter un œil par vous-même. Le code exécutant le menu doit déjà exister quelque part dans un système de fichiers Ubuntu. Utilisez «localiser» pour le trouver.

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

Notez que le script «l10n.sh» définit les variables d'environnement appropriées pour le menu. Si vous naviguez vers le répertoire / lib / recovery-mode /, vous verrez que le fichier «recovery-menu» est le script qui affiche l'interface de menu que vous avez vue ci-dessus. Le répertoire / lib / recovery-mode / options / contient des fichiers pour exécuter chacun des éléments de menu… comme «fsck» qui vérifiera et, si possible, réparera tout système de fichiers cassé.

Puisque, sur la base des chapitres précédents du livre, vous êtes maintenant un expert en script Bash accompli, pourquoi ne pas jeter un œil à chacun des scripts dans le répertoire options / pour voir si vous pouvez comprendre comment ils fonctionnent. Voici le contenu du script «fsck» pour vous aider. Notez la façon dont le script est bien documenté (en utilisant le caractère «#») pour vous aider à comprendre ce qui se passe.

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

Voici quelques choses que vous pouvez essayer par vous-même:

  • Exécutez manuellement le script «propre» sur une machine Debian / Ubuntu. Qu'est-il arrivé?
  • Ensuite, essayez de modifier soigneusement le script / lib / recovery-mode / recovery-menu (faites d'abord une copie de sauvegarde). Peut-être changez-vous simplement quelque chose de simple, comme le titre du menu ou l'une des descriptions de script. Ensuite, redémarrez votre machine et, à partir du menu GRUB, passez en mode de récupération pour voir à quoi elle ressemble.

À quelques variantes et exceptions près, vous devriez pouvoir utiliser ces exemples ailleurs.

Cet article est adapté du chapitre 6 (Outils d'urgence: créer un périphérique de récupération système) de mon livre Manning «Linux in Action» . Il y a beaucoup plus de plaisir d'où cela vient, y compris un cours hybride appelé Linux in Motion qui comprend plus de deux heures de vidéo et environ 40% du texte de Linux in Action . Qui sait… vous pourriez également profiter de mes services Web Learn Amazon en un mois de déjeuners .