Blog

Comment utiliser chroot en cas de problème

Écrit le 27 10 2016 par Kévin MET _

Aujourd'hui je reviens avec un rapide billet sur l'utilisation de chroot en cas de problème. C'est un petit tutoriel orienté débutant mais ça fait toujours du bien de revoir les bases. Et je l'avoue, je ne me souviens jamais des mount à passer avant de faire un chroot pour être sûr d'avoir accès à tout le matériel correctement. A la base, chroot sert à isoler un processus dans un répertoire mais cette utilisation étant assez rare, je n'ai que OpenVPN et bind qui me viennent en tête quand j'écris ce billet, nous allons l'utiliser pour tout autre chose. Nous allons l'utiliser afin de réparer un problème empêchant le démarrage d'un serveur ou d'un PC. Dans le cas d'un serveur, il faudra booter votre système sur un PXE de secours, ce qui s'appelle rescue-pro par exemple chez OVH. Dans le cas d'un PC, il faudra tout simplement booter sur un liveCD.

Pour commencer on va donc créer un répertoire dans lequel nous allons monter notre répertoire racine. Dans notre cas, on va dire que la racine se trouve sur /dev/md1 (un RAID soft donc) et que notre répertoire d'accueil sera /mnt/chroot:


root@rescue:~# mkdir /mnt/chroot
root@rescue:~# mount /dev/md1 /mnt/chroot

Si vous avez une partition /boot à part, il faut également penser à la monter sur le /boot de votre chroot :


root@rescue:~# mount /dev/md2 /mnt/chroot/boot

Il faut ensuite monter les /dev, /proc et /sys pour avoir accès au matos correctement :


root@rescue:~# mount --bind /dev/ /mnt/chroot/dev
root@rescue:~# mount -t proc /proc /mnt/chroot/proc
root@rescue:~# mount -t sysfs /sys /mnt/chroot/sys

Il ne reste plus qu'à lancer la commande chroot pour se retrouver dans son environnement d'origine sans avoir booter sur l'OS de base :


root@rescue:~# chroot /mnt/chroot /bin/bash
root@rescue:/#

Une fois que vous êtes dans le chroot c'est comme si vous étiez vraiment dans votre système de base. Vous pouvez donc lancez des apt-get, update-grub et autres joyeusetés pour résoudre votre problème vous empêchant de booter. Cela est vraiment très pratique quand on a tout flingué et que l'on veut très rapidement réparer sa boulette 😉 Cela peut-être aussi nécessaire lorsque l'on travaille sur un serveur sans KVM pour voir ce qu'il se passe avant le boot et qu'on veut par exemple, supprimer ce putain de fsck qui s'exécute sur /home qui fait 2To et qui empêche le serveur de remonter pendant 1H... Vous l'avez déjà vécu celui-là je suis sûr. Bref, une fois qu'on a finit de réparer, il suffit de sortir du chroot, de démonter la partition root et de rebooter sur le serveur normalement en croisant les doigts.

♥ Partage sur tes réseaux sociaux ♥
Kévin MET
Kévin MET

Auteur de ce blog et gérant de la société MNT-TECH, je publie sur ce blog lorsque le temps me le permet et lorsqu'un sujet qui me parait intéressant n'a pas encore été abordé en français. Toutes les informations techniques présentes sur cette page peuvent être réutilisées moyennant le fait de citer la source.