Un chroot pour réparer une installation
Un chroot est une opération qui modifie le répertoire root courant pour le processus en cours et les processus enfants. Les applications lancées dans ce chroot n’ont plus accès aux fichiers à l’extérieur du chroot. Cela permet donc d’isoler un processus.
Il y a plusieurs usages possibles pour un chroot; un des usages est de pouvoir modifier ou administrer une distribution inactive. Un exemple? Vous n’arrivez plus à booter votre Linux parce que Grub est corrompu. Vous savez pourtant qu’il suffirait de lancer la commande update-grub pour que tout rentre dans l’ordre. Coment arriver à lancer cette commande comme si votre Linux était actif? La solution est évidemment de lancer un LiveCD, de monter votre installation de Linux et de créer un chroot pour que le root directory devienne celui de votre installation et non plus celui du LiveCD.
Imaginons que le système Linux à réparer se trouve sur sda1. Il faut commencer par monter le disque dans /mnt par exemple:
$ sudo mount /dev/sda1 /mnt
Il faut aussi monter le système de fichiers /dev:
$ sudo mount --bind /dev /mnt/dev/
Maintenant, on peut créer le chroot proprement dit. Il existe une commande pour cela qui s’appelle…chroot !
$ sudo chroot /mnt
A partir de maintenant, sudo n’est plus nécessaire puisque nous sommes dans le chroot avec des droits root. On peut lancer les commandes nécessaires pour réparer notre installation:
# update-grub
Une fois le système réparé, on sort du chroot et on démonte les systèmes de fichiers:
# exit $ sudo umount /mnt/dev $ sudo umount /mnt
Notez que si votre /home est sur une partition séparée, par exemple sda5, il faudra aussi la monter avant de faire le chroot:
$ sudo mount /dev/sda5 /mnt/home
De même si /boot est sur une partition séparée.
Dépendant de ce que vous devez faire dans le chroot, vous serez peut-être amener à monter aussi le système de fichiers /proc ou /sys:
$ sudo mount -t proc /proc /mnt/proc $ sudo mount -t sysfs /sys /mnt/sys
J’ai donné ici l’exemple d’une réparation de Grub dans le chroot mais on peut bien évidemment y faire d’autre chose; installer des paquets, modifier des fichiers de configs, accéder au réseau, toutes choses qui peuvent être utiles pour restaurer votre Linux.
Posted: mars 21st, 2010 under Ubuntu.
Comments: 1