======= 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/efivarssudo 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/chrootsi 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