- Posté le
- • 🐧 Linux
Utiliser Chroot pour réparer Linux
- Auteur
-
-
- Utilisateur
- Thibaud
- Billets de cet auteur
- Billets de cet auteur
-
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/sdXou/dev/nvmeXnY) - Session root ou
sudodisponible
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 |