logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

chroot

  • Objet : Utilisation de la commande chroot pour accéder à une installation gnu/linux depuis une autre
  • Niveau requis :
  • Commentaires : Cela peut être très utile si un système ne démarre plus à cause d'un problème de grub, ou de noyau, etc.
  • Suivi :
  • Commentaires sur le forum : c'est ici 1)

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 !
doc/systeme/chroot.txt · Dernière modification: 11/06/2023 14:33 par Croutons

Pied de page des forums

Propulsé par FluxBB