Ceci est une ancienne révision du document !
Table des matières
La commande système chroot sous GNU/Linux
Chroot est à la fois un appel système et une commande Unix du même nom qui permet de changer de répertoire racine /
, d'ailleurs la commande chroot signifie change root (ch = change). Cette commande a été ajouté en 1979 à Unix version 7 des laboratoires Bell Labs de l'entreprise AT&T. Cette commande a des similitudes avec des conteneurs tel que LXC avec tout de même une isolation beaucoup moins forte, raison pour laquelle a été créé les conteneurs.
Chroot permet par exemple de réparer un système Linux cassé, par exemple par le biais d'un live USB Linux. Cette commande se trouve par défaut dans le paquets coreutils de GNU mais également sous BusyBox pour les systèmes embarqués.
Dans la suite de ce tuto nous allons utiliser la commande sudo
Utilisation de la commande chroot sous Linux
Comme mentionné précédemment vous pouvez utiliser un live USB Linux pour réparer un système Linux cassé sur votre ordinateur ou bien même avoir un second système Linux complet hors noyau donc l'espace utilisateur au sein d'un système Linux sain (comme LXC).
Pour commencer créer un répertoire dans /mnt
sur le système hôte :
sudo mkdir /mnt/chroot
Monter votre chroot
Monter la partition racine /
du système que vous voulez chrooter :
sudo mount /dev/sda1 /mnt/chroot/
sda1
est à remplacer par votre média de stockage.
Monter les répertoires /dev
et /proc
indispensable pour un chroot :
sudo mount --bind /dev /mnt/chroot/dev
sudo mount -t proc /dev /mnt/chroot/proc
Vous pouvez également monter les répertoires /sys
et /run
:
sudo mount -t sysfs /sys /mnt/chroot/sys
sudo mount --bind /run /mnt/chroot/run
sudo mount -t efivarfs none /sys/firmware/efi/efivars
sudo mount -t /dev/''partition_EFI'' /boot/efi
</note>
Si vous souhaitez également avoir accès à internet dans votre chroot :
sudo cp /etc/resolv.conf /mnt/chroot/etc/resolv.conf
Vous pouvez désormais changer de répertoire /
et aller dans celui de votre chroot :
sudo chroot /mnt/chroot
si la commande échoue, tapez :
sudo chroot /mnt/chroot /bin/bash
Maintenant que vous êtes dans votre chroot vous pouvez en sortir avec cette commande :
exit
Démonter votre chroot
Démonter les répertoires :
sudo umount /mnt/chroot/dev
sudo umount /mnt/chroot/proc
sudo umount /mnt/chroot/sys
sudo umount /mnt/chroot/run
Démonter le chroot lui même :
sudo umount /mnt/chroot
sudo umount -R /mnt/chroot