Scénarios de résolution de problèmes Linux : défis et solutions du monde réel

Linux est un système d’exploitation puissant et fiable, mais même les utilisateurs expérimentés rencontrent des problèmes inattendus. Qu’il s’agisse d’un fichier supprimé, d’un mot de passe root oublié, ou d’un système lent, savoir comment dépanner efficacement est essentiel pour devenir un véritable expert Linux.

Ce guide présente des scénarios de résolution de problèmes Linux réels ainsi que des solutions étape par étape, qui sont courantes parmi les administrateurs système, les développeurs et les utilisateurs Linux quotidiens.

Scénario 1 : Vous avez Supprimé Accidentellement un Fichier Important

Vous avez accidentellement supprimé un fichier important en utilisant la commande rm, et maintenant vous devez le récupérer. Contrairement à Windows et macOS, Linux ne dispose pas d’une « Corbeille » intégrée pour les fichiers supprimés depuis le terminal.

Vos options de récupération dépendent du système de fichiers utilisé.

Pour les systèmes de fichiers EXT3/EXT4

Utilisez extundelete, qui est un utilitaire open-source conçu pour récupérer des fichiers supprimés des systèmes de fichiers ext3 et ext4 sous Linux.

sudo apt install extundelete  # Debian-based  
sudo yum install extundelete  # RHEL-based  

Avant de tenter la récupération, démontez la partition pour éviter d’écrire davantage et d’écraser des données supprimées :

sudo umount /dev/sdX

Ensuite, exécutez la commande suivante pour récupérer le fichier supprimé et assurez-vous de remplacer /dev/sdX par la partition réelle où le fichier a été supprimé.

sudo extundelete /dev/sdX --restore-all

Pour les systèmes de fichiers XFS, Btrfs ou NTFS

Si votre système utilise XFS, Btrfs ou NTFS, l’outil testdisk est une meilleure option.

sudo apt install testdisk  # Debian-based  
sudo yum install testdisk  # RHEL-based  

Exécutez testdisk et suivez les invites interactives pour restaurer les fichiers perdus.

sudo testdisk

Conseils de prévention:

    • Utilisez trash-cli: Au lieu de rm, utilisez trash-cli pour envoyer les fichiers dans une corbeille récupérable.
sudo apt install trash-cli  
trash-put myfile.txt  
  • Activez les sauvegardes régulières: Configurez rsync ou Timeshift pour sauvegarder automatiquement les fichiers importants.

Scénario 2: Récupération d’un mot de passe root oublié

Vous avez oublié votre mot de passe root et vous ne pouvez pas effectuer certaines tâches administratives, ce qui signifie que vous ne pouvez pas installer de logiciels, modifier les paramètres du système ou accéder à des fichiers critiques.

Vous pouvez réinitialiser le mot de passe root en démarrant en mode de récupération ou en modifiant le chargeur d’amorçage GRUB.

Utilisation du mode de récupération (Ubuntu/Debian)

Tout d’abord, redémarrez votre système et maintenez Shift pendant le démarrage pour accéder au menu GRUB, puis sélectionnez “Options avancées” → “Mode de récupération” et choisissez “Passer à l’invite de commande root”.

Ici, remontez le système de fichiers racine en mode écriture et réinitialisez le mot de passe root.

mount -o remount,rw /
passwd root

Redémarrez le système.

reboot

Utilisation de rd.break (RHEL/CentOS/Fedora)

Tout d’abord, redémarrez votre système, appuyez sur e dans le menu GRUB et trouvez la ligne commençant par linux et ajoutez rd.break à la fin.

Ensuite, montez le système de fichiers racine et réinitialisez le mot de passe root.

mount -o remount,rw /sysroot  
chroot /sysroot  
passwd root  

Enfin, quittez et redémarrez.

exit  
reboot  

Conseils de prévention:

  • Créez un utilisateur sudo sans mot de passe pour éviter d’être verrouillé hors de l’accès root.
  • Utilisez des clés SSH au lieu de mots de passe pour l’authentification.

Scénario 3 : Vous avez installé un paquet, mais il ne fonctionne pas

Vous avez installé un paquet, mais il dit “commande introuvable” lorsque vous essayez de l’exécuter, ce qui se produit généralement lorsque le binaire n’est pas dans le PATH de votre système, que le paquet n’est pas installé correctement ou qu’il y a une dépendance manquante.

La solution consiste d’abord à vérifier si le paquet est installé ou non.

dpkg -l | grep package-name  # Debian-based  
rpm -qa | grep package-name  # RHEL-based  

s’il manque, réinstallez-le :

sudo apt install package-name  
sudo yum install package-name  

Ensuite, vérifiez si la commande se trouve dans votre PATH système.

which package-name  
echo $PATH

Si le binaire se trouve dans un emplacement non standard, ajoutez-le à votre PATH:

export PATH=$PATH:/usr/local/bin  

Astuces de prévention:

  • Redémarrez le terminal ou exécutez hash -r après l’installation de nouveaux packages.
  • Utilisez des gestionnaires de paquets comme Snap ou Flatpak, qui gèrent mieux les dépendances.

Scénario 4: Votre système manque d’espace disque

Votre système affiche une erreur « No space left on device« , empêchant les mises à jour de logiciels, l’enregistrement et les opérations normales.

Voici comment récupérer de l’espace disque et maintenir le bon fonctionnement de votre système.

Étape 1: Vérifier l’utilisation du disque

La solution consiste à vérifier d’abord combien d’espace est utilisé sur chaque partition de votre système à l’aide de la commande df.

df -h

Étape 2: Trouver et supprimer les fichiers volumineux

Ensuite, localisez les plus gros fichiers consommant de l’espace en exécutant la commande du, qui analysera votre système et listera les 10 plus gros fichiers ou répertoires. Supprimez les fichiers inutiles en utilisant la commande rm ou déplacez-les vers un lecteur externe.

du -ah / | sort -rh | head -10

Étape 3 : Supprimer les journaux inutiles

Les journaux sont essentiels pour le dépannage et la surveillance de l’activité du système, mais ils peuvent croître rapidement et consommer une quantité significative d’espace disque.

Au fil du temps, les anciens journaux peuvent ne plus être nécessaires, ce qui en fait des candidats idéaux pour le nettoyage.

sudo journalctl --vacuum-time=2d  # Deletes logs older than 2 days  
sudo apt autoclean                # Removes outdated package files  

Étape 4 : Supprimer les anciens noyaux (Ubuntu/Debian)

Lorsque vous mettez à jour votre système, surtout sur les distributions Ubuntu ou basées sur Debian, de nouvelles versions du noyau Linux sont souvent installées.

Cependant, les anciens noyaux ne sont pas automatiquement supprimés et avec le temps, ces anciens noyaux peuvent s’accumuler et occuper une quantité significative d’espace disque.

Les supprimer est un moyen sûr et efficace de libérer de l’espace sans affecter la fonctionnalité de votre système.

sudo apt autoremove --purge  

Conseils de prévention:

  • Configurer la rotation des journaux: Utilisez logrotate pour gérer automatiquement les tailles de fichiers journaux et les périodes de rétention.
  • Suivi de l’utilisation du disque: Installez des outils tels que ncdu pour suivre l’utilisation du disque et identifier les gouffres d’espace.
  • Nettoyages réguliers: Planifiez des nettoyages périodiques pour supprimer les fichiers temporaires, les caches et les paquets inutilisés.

Scénario 5: Votre serveur devient soudainement non réactif

Vous gérez un serveur Linux et soudain, il cesse de répondre et vous essayez de vous connecter via SSH, mais la connexion expire ou refuse de s’établir. Vous pourriez même remarquer que le serveur est toujours sous tension, mais ne réagit à aucune commande.

Cette situation peut être causée par divers problèmes, notamment:

  • Utilisation élevée du processeur ou de la mémoire due à des processus défectueux.
  • Goulots d’étranglement E/S disque, où le système est surchargé d’opérations de lecture/écriture.
  • Kernel panics ou plantages système.
  • Pannes réseau, empêchant l’accès à distance.

Pour reprendre le contrôle, suivez ces étapes de dépannage.

Étape 1 : Accéder au serveur localement ou via TTY

Si SSH ne fonctionne pas, essayez d’accéder au serveur directement ou via une session TTY :

  • Sur une machine physique, utilisez la console locale.
  • Sur une machine virtuelle, utilisez la console de l’hyperviseur.
  • Pour les systèmes Linux, passez à une autre session TTY en utilisant Ctrl + Alt + F2 (ou F3, F4, etc.).

Étape 2 : Vérifiez la charge système

Une fois connecté, vérifiez la charge et l’utilisation des ressources du système, qui affichera les moyennes de charge du système sur 1, 5 et 15 minutes. Une valeur de charge supérieure au nombre de cœurs CPU indique une forte demande.

uptime  

Ensuite, utilisez top ou htop pour surveiller les processus en temps réel :

top  
Or
htop

Cherchez les processus consommant une quantité excessive de CPU ou de mémoire.

Étape 3 : Identifier et tuer les processus errants

Pour identifier les processus les plus gourmands en ressources, exécutez :

ps aux --sort=-%cpu | head  

Cela liste les principaux processus consommateurs de CPU, où vous pouvez trouver un processus problématique et le terminer en utilisant :

kill -9 PID  

Remplacez PID par l’identifiant de processus de l’application problématique.

Étape 4 : Vérifiez les journaux système

Si le système est toujours réactif, vérifiez les journaux pour des erreurs :

sudo tail -f /var/log/syslog  
Or
sudo dmesg | tail  

Ces commandes affichent les messages récents du système et les journaux du noyau, ce qui peut aider à identifier des problèmes matériels ou logiciels.

Étape 5 : Redémarrer en toute sécurité en utilisant SysRq

Si le système est complètement gelé, utilisez la combinaison de touches SysRq pour redémarrer en toute sécurité :

echo b > /proc/sysrq-trigger  

Cela déclenche un redémarrage sécurisé, garantissant l’intégrité des données en synchronisant les disques et en démontant les systèmes de fichiers.

Conclusion

Le dépannage est une compétence essentielle pour chaque utilisateur de Linux. Que ce soit pour récupérer des fichiers supprimés, réinitialiser des mots de passe ou corriger des erreurs système, connaître les bonnes commandes peut faire gagner du temps et éviter la frustration.

Avez-vous vos propres conseils de dépannage ? Partagez-les dans les commentaires ! Construisons ensemble une communauté Linux utile.

Source:
https://www.tecmint.com/linux-troubleshooting-tips/