Table des matières

chroot

Introduction

La commande chroot signifie change root, c'est à dire changer la racine. Elle permet donc d'« entrer dans » une installation de Linux, sans booter dessus. Nous allons voir comment utiliser la commande chroot pour pouvoir basculer vers un système GNU/Linux (par exemple votre Debian préférée), à partir d'un autre système. Ce second système peut être un Live (cd/usb) ou un autre système GNU/Linux en dual boot.

Vous pouvez par exemle utiliser une live debian, ou la DFiso, mais n'importe quel Live CD GNU/Linux fera l'affaire : Knoppix, Ubuntu, Sidux, etc.

Attention, si votre système est en 64bits, il faudra démarrer avec un Live en 64bits

Deuxième étape: montage, et chroot

Voici en détail les opérations à effectuer pour monter et chrooter son système.

Identification de la partition à chrooter

Il vous faut connaître d'abord ce qu'est un terminal et ce que sont des commandes user et superutilisateur à utiliser dedans.

Ouvrez un terminal et tapez :

lsblk --fs

Cette commande vous permet de lister les partitions présentes sur votre machine. À vous d'identifier la partition racine du système auquel vous voulez accéder.
Dans le cas où l'on a deux systèmes présents sur son ordi (en comptant le live ou le dual-boot), le résultat de la commande ci-dessus pourrait ressembler à ceci :

retour de la commande
NAME                  FSTYPE      FSVER    LABEL      UUID                                   FSAVAIL FSUSE% MOUNTPOINT
sda                                                                                                         
├─sda1                ext4        1.0                 711cca50-9068-4a59-9c39-a6b3947a3250    346,4M    23% /boot
└─sda2                ext4        1.0                 18c3dcf5-7912-47d5-b121-c246482181a1     15,0G    50% /
 
sdb                                                                                                         
├─sdb1                vfat        FAT32               7AD0-5B24                               450,8M     5%
├─sdb2                swap        1                   0d43bb7d-f3a8-4232-969e-ad47f5616923
├─sdb3                ext4        1.0                 160df578-36ff-4dc3-b9a7-a67b0b0ae9b9       17G    45%
└─sdb4                ext4        1.0                 3be277a2-1f2b-44a1-bda6-066cf5bc7a9d    494,9G    40%

/dev/sda2 est la partition racine du système que l'on est en train d'utiliser (on le voit car la colonne mountpoint indique /).

La partition qui nous intéresse ici est /dev/sdb3, car c'est la partition racine de l'autre système. On la reconnaît en général car elle est en ext4 et a une taille comprise entre 15Go et 50Go.

Création d'un répertoire où la partition système sera montée.

On commence donc par créer un répertoire de montage :

mkdir /mnt/plouf

Puis on monte notre partition système dans ce répertoire :

mount /dev/sdb3 /mnt/plouf
Pour monter un système qui tient sur plusieurs partitions ( généralement une partition système plus une partition contenant le /home partition utilisateur ou dans le cas d'utilisation de plusieurs volumes LVM). Il suffit; après avoir monté la partition principale avec la commande ci dessus; de bien monter la seconde partition au bon endroit. Ex : pour un /home séparé : le monter avec la commande mount dans le dossier /mnt/plouf/home/ . ( pas simplement /mnt/plouf !).

Une fois que la partition système est montée, il faut monter les périphériques que le Live CD a trouvé :

mount --bind /dev/ /mnt/plouf/dev
mount --bind /sys/ /mnt/plouf/sys
mount -t proc /proc /mnt/plouf/proc

Entrez alors dans le système et monter les autres partitions :

chroot /mnt/plouf /bin/bash
mount -a

Une fois toutes ces opérations effectuées, vous êtes dans un shell root sur le système auquel vous cherchiez à accéder.

Opérations sur votre système

Une fois votre chroot réalisé, vous pouvez donc apporter des modifications sur votre système.

Vous pouvez, par exemple, utiliser les commandes apt/apt-get/etc. pour installer des paquets ou en enlever. Cela permet de pouvoir récupérer un système où suite à une mise à jour des paquets sont cassés et/ou buggés.

Avec la branche sid, il peut arriver à l'occasion (rarement quand même) qu'une mise à jour de paquets casse complètement le système à notre prochain démarrage. Un chroot nous évite alors une réinstallation du système.

Exemple détaillé de l'utilisation d'un chroot : réinstaller GRUB 2

Vous n'y avez pas accès à internet ?

Par exemple, vous essayez de mettre à jour le système à opérer, mais cela ne fonctionne pas…

Vous tentez sans succès :

ping www.debian-facile.org

Pourtant “ip a” vous montre que votre carte réseau est en fonction “UP” et vous tentez avec succès :

ping 8.8.8.8

Dans ce cas là, il vous faut copier dans la partition racine du système que l'on est en train d'utiliser le contenue de :

cat /etc/resolv.conf

Et le coller dans “/etc/resolv.conf” (dans le système auquel vous avez accédé via “chroot”) :

nano /etc/resolv.conf

Vous devriez à présent accéder a internet et vraquier a vos occupations !

Sortir du chroot

Pour sortir du chroot, il suffit de taper la commande :

exit

Une fois que vous êtes revenu à la console de base, il vous reste à démonter tous vos montages antérieurs :

umount -R /mnt/plouf

Vous pouvez alors redémarrer votre machine et essayer de redémarrer sur le système qui ne bootait plus précédemment.

gimp en chroot

Liens et remerciement :

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !