TerminalDans nos deux précédents articles, nous avons vu en détail le lancement d’une console de secours sur une machine locale ou un serveur dédié. Dans le cas d’une panne bénigne comme par exemple une coquille dans un fichier de configuration, je pourrais tout simplement monter la partition correspondante, éditer le fichier qui pose problème, démonter la partition et redémarrer. Or, dans certains cas, les choses se compliquent un peu, et la réparation cohérente du système endommagé nécessite que je l’utilise. C’est le fameux problème de la poule et de l’oeuf.

Voici quelques cas de figure courants.

  • Effectuer un downgrade d’un paquet problématique.
  • Réinitialiser un mot de passe oublié.
  • Réinstaller le chargeur de démarrage.
  • Reconstruire le disque mémoire initial (initrd).

La commande chroot (change root) permet de changer le répertoire racine vers un nouvel emplacement.

Démarrez la console de secours…

La première chose à faire, c’est d’identifier les différentes partitions. Dans l’exemple ci-dessous, le système à dépanner est constitué d’une partition principale et d’une partition /boot.

# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
...
sda      8:0    0 931,5G  0 disk 
├─sda1   8:1    0   500M  0 part 
├─sda2   8:2    0   927G  0 part 
└─sda3   8:3    0     4G  0 part [SWAP]

Je vais utiliser le point de montage /mnt pour rendre mon système accessible.

# mount -v /dev/sda2 /mnt/
mount: /dev/sda2 mounted on /mnt.
# mount -v /dev/sda1 /mnt/boot/
mount: /dev/sda1 mounted on /mnt/boot.

Avant d’effectuer le grand saut, je vais lier les systèmes de fichiers virtuels /proc, /dev et /sys de mon environnement de secours à mon système installé.

# mount -v -t proc proc /mnt/proc/
mount: proc mounted on /mnt/proc.
# mount -v -t sysfs sys /mnt/sys/
mount: sys mounted on /mnt/sys.
# mount -v -o bind /dev /mnt/dev/
mount: /dev bound on /mnt/dev.
# mount -v -t devpts pts /mnt/dev/pts/
mount: pts mounted on /mnt/dev/pts.

InfoUn système de fichiers virtuel est créé « à la volée » par le système lors du démarrage. Une fois que le système de fichiers est éteint, il n’en reste pas la moindre trace sur le disque dur.

À présent, nous pouvons basculer vers le système installé. Notez au passage que nous spécifions l’interpréteur de commandes en argument.

# chroot /mnt /bin/bash

À partir de là, je peux procéder aux opérations de maintenance de mon système défaillant. Une fois que mon intervention est terminée, je quitte le système installé pour revenir dans le système de secours.

# exit

Je démonte une à une les partitions du système installé, dans l’ordre inverse du montage.

# umount -v /mnt/dev/pts/
umount: /mnt/dev/pts/ unmounted
# umount -v /mnt/dev/
umount: /mnt/dev/ unmounted
# umount -v /mnt/sys/
umount: /mnt/sys/ unmounted
# umount -v /mnt/proc/
umount: /mnt/proc/ unmounted
# umount -v /mnt/boot/
umount: /mnt/boot/ unmounted
# umount -v /mnt/
umount: /mnt/ unmounted

À partir de là, on peut arrêter la console de secours.


La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

 

Catégories : Serveur

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *