Chroot

De ArchwikiFR

Le chroot (abréviation de CHanging ROOT) est un processus qui permet de changer la racine en entrant dans un environnement isolé.

Note: Si vous avez atterri sur cette page en cherchant comment installer en chroot, ça se passe plutôt ici.

Pour chrooter dans un système sur lequel vous n'avez pas démarré, il faut préparer un minimum l'environnement. Prenons le cas où vous devez utiliser votre système Arch depuis un autre système GNU/Linux (LiveCD, autre installation, ...); en supposant que vous utilisez le dossier /mnt, vous devez monter au minimum les dossiers suivants:

Astuce: Vous venez de charger un LiveCD, et vous auriez plus de facilités en utilisant votre clavier français :
loadkeys fr
Note: Si vous utilisez LVM, munissez-vous d'un live cd le supportant (celui d'Arch par exemple) et avant les opérations de montage, commencez par lancer:
vgchange -a y
mount /dev/sdXY /mnt
mount -t proc proc /mnt/proc
mount -t sysfs sys /mnt/sys
mount -o bind /dev /mnt/dev
Note: /dev/sdXY étant la partition de votre racine (/).
Astuce: Pour pouvoir accéder à des noms de domaine, il vous faut spécifier le DNS dans l'environnement chrooté :
cp /etc/resolv.conf /mnt/etc/
Astuce: Si vous obtenez cette erreur lors de l'utilisation de pacman :
Erreur : GPGME error: Ioctl() inappropré pour un périphérique

Il est nécessaire de monter ce dossier supplémentaire

mount -t devpts pts /mnt/dev/pts/
Astuce: Si vous avez une partition /boot séparée et si vous comptez faire des opérations dessus (comme générer une image de kernel via mkinitcpio ou modifier des fichiers de démarrage), pensez à la monter également dans /mnt/boot:
mount /dev/sdXZ /mnt/boot
Astuce: Si vous souhaitez lancer des applications graphiques, vous serez peut-être amené à utiliser xhost + pour permettre au chroot d'accéder à X, une fois fini n'oubliez pas d'enlever cette autorisation avec xhost -.

Puis:

chroot /mnt /bin/bash

Une fois les modifications terminées, utilisez exit pour sortir du chroot.

exit

Il faut enfin démonter ce que vous avez monté, en utilisant la commande umount:

Attention: Le démontage se fait dans le sens inverse, /dev/pts avant /dev par exemple.
umount /mnt/proc
umount /mnt/sys
umount /mnt/dev
umount /mnt

Et éventuellement redémarrer:

reboot