======= 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 [[wiki:os:gnu_linux:tutos:admin: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
Sur un système Linux **UEFI** il peut-être nécessaire de monter : sudo mount -t efivarfs none /sys/firmware/efi/efivars
sudo mount -t /dev/ /boot/efi
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
Vous pouvez également démonter votre chroot en une seule commande : sudo umount -R /mnt/chroot