Actus Circuit Libre
Posté le
🐧 Linux

Utiliser Chroot pour réparer Linux

Auteur
Utiliser Chroot pour réparer Linux

Cette procédure permet d'accéder à un système Linux installé depuis un environnement Live en utilisant un chroot. Elle est particulièrement utile pour effectuer des opérations de maintenance ou de dépannage lorsque le système ne démarre plus correctement : réparation de GRUB, correction de paquets cassés, réinitialisation d'un mot de passe, modification de fichiers de configuration, etc. Une fois le système monté et le chroot établi, les commandes s'exécutent comme si vous étiez démarré directement sur l'installation concernée.

Prérequis

  • Démarrer depuis une clé USB Linux Live
  • Connaître le disque cible (/dev/sdX ou /dev/nvmeXnY)
  • Session root ou sudo disponible

1. Identifier la partition système

lsblk -f
# ou
sudo fdisk -l

Repérer la partition / (ext4, btrfs…) et la partition /boot/efi si UEFI. Exemple : /dev/sda2 = racine, /dev/sda1 = EFI.


2. Monter la partition racine

sudo mkdir -p /mnt/system
sudo mount /dev/sdXY /mnt/system

# Si partition EFI (UEFI)
sudo mount /dev/sdXZ /mnt/system/boot/efi

Remplacer /dev/sdXY par la partition identifiée à l'étape 1.


3. Monter les systèmes de fichiers virtuels (obligatoire)

sudo mount --bind /dev     /mnt/system/dev
sudo mount --bind /dev/pts /mnt/system/dev/pts
sudo mount --bind /proc    /mnt/system/proc
sudo mount --bind /sys     /mnt/system/sys
sudo mount --bind /run     /mnt/system/run   # optionnel mais utile

Ces montages bind donnent au chroot accès aux périphériques, processus et sysfs du kernel Live — indispensable pour apt, update-grub, dpkg, etc.


4. Copier resolv.conf (réseau)

sudo cp /etc/resolv.conf /mnt/system/etc/resolv.conf

Permet à apt de résoudre les noms DNS depuis le chroot. Peut être ignoré si pas besoin de réseau.


5. Entrer dans le chroot

sudo chroot /mnt/system /bin/bash

# Vérifier qu'on est dans le bon système
cat /etc/os-release
uname -a

Le prompt change. On est maintenant root dans le système cible.


6. Actions courantes depuis le chroot

Réinstaller / réparer GRUB (UEFI)

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=mint
update-grub

Réinstaller GRUB (BIOS/MBR)

grub-install /dev/sdX
update-grub

Réparer les paquets cassés

apt update
apt --fix-broken install
dpkg --configure -a

Réinitialiser un mot de passe

passwd nom_utilisateur

Éditer fstab ou fichiers de config

nano /etc/fstab

7. Quitter le chroot

exit

Ou Ctrl+D. On revient dans le Live.


8. Démonter proprement

sudo umount /mnt/system/run
sudo umount /mnt/system/sys
sudo umount /mnt/system/proc
sudo umount /mnt/system/dev/pts
sudo umount /mnt/system/dev
sudo umount /mnt/system/boot/efi  # si UEFI
sudo umount /mnt/system

!!info Respecter l'ordre : démonter les enfants avant les parents. !!


Problèmes fréquents

Erreur Cause probable Solution
chroot: failed to run command '/bin/bash' Mauvaise architecture ou partition mal montée Vérifier lsblk, remonter
grub-install: cannot find EFI directory Partition EFI non montée Monter /dev/sdXZ sur /mnt/system/boot/efi
apt: unable to resolve host resolv.conf absent ou réseau Live inactif Refaire l'étape 4, vérifier le réseau
dpkg: error processing Paquets en état intermédiaire dpkg --configure -a puis apt --fix-broken install
target is busy au umount Ordre de démontage incorrect Respecter l'ordre étape 8, ou umount -l en dernier recours

Cas particuliers

Partition chiffrée (LUKS) — déverrouiller avant de monter :

cryptsetup luksOpen /dev/sdXY crypt_root
sudo mount /dev/mapper/crypt_root /mnt/system

LVM — activer les volumes avant de monter :

vgchange -ay

9. Un problème ? Une solution

Problème rencontré Action possible depuis le chroot Commandes courantes
Système ne démarre plus Vérifier et corriger la configuration journalctl -xb · nano /etc/*
GRUB endommagé ou absent Réinstaller et régénérer GRUB grub-install /dev/sdX · update-grub
Démarrage UEFI défaillant Réinstaller GRUB en mode UEFI grub-install --target=x86_64-efi --efi-directory=/boot/efi · update-grub
Noyau Linux défectueux Réinstaller ou changer de noyau apt install --reinstall linux-image-*
Mise à jour interrompue Finaliser les opérations en attente dpkg --configure -a
Paquets cassés ou dépendances manquantes Réparer le gestionnaire de paquets apt --fix-broken install · apt update
Mot de passe oublié Réinitialiser le mot de passe passwd utilisateur
Erreur dans /etc/fstab Corriger les points de montage nano /etc/fstab
Service système défaillant Activer ou reconfigurer un service systemctl enable service · systemctl restart service
Configuration réseau incorrecte Modifier les paramètres réseau nano /etc/network/interfaces · nano /etc/netplan/*.yaml
Fichier de configuration corrompu Modifier ou restaurer la configuration nano /etc/...
Initialramfs corrompu Régénérer l'image d'initialisation update-initramfs -u -k all
Modules noyau manquants Régénérer les dépendances modules depmod -a
Analyse des journaux Diagnostiquer les erreurs de démarrage journalctl -xb · dmesg
Utilisateur bloqué ou droits incorrects Modifier les groupes et permissions usermod -aG groupe utilisateur · chown · chmod