Réparer une « journal commit I/O error » sur le Raspberry Pi

FramboisesBidouiller un peu avec un Raspberry Pi peut amener parfois à le faire planter, surtout lorsqu’on essaie des choses à tâtons sans vraiment savoir si ce qui est mis en oeuvre va tenir. Parfois on y arrive et on est content, parfois on doit désinstaller ce qui a déjà été installé et remettre le système dans un état cohérent. Malheureusement, il m’est parfois arrivé de perdre le contrôle sur l’engin en faisant quelque manipulation nécessitant beaucoup de ressources et n’aboutissant jamais, ou alors après plusieurs jours de calcul. Dans cette situation, on est obligé d’envisager de retirer le l’alimentation et de tout remettre en marche. Et il y a des expériences plus ou moins chanceuses… en voici une malchanceuse.

La problématique

Il m’est arrivé récemment d’avoir à arrêter le Pi d’une manière qui n’est pas très recommandable, soit en lui coupant le courant, la console ne répondant plus via SSH. En le remettant en marche, j’avais quelques appréhensions sur sa capacité à tout remettre en ordre, mais visiblement tout se passait bien… ou presque. En coupant l’électricité durant l’installation (foireuse) d’une application, j’ai endommagé le système de fichiers, plus précisément le journal du système. En tentant de relancer l’installation, j’ai obtenu une très jolie erreur qui me tenait à peu près ce langage:

[52666.031183] journal commit I/O error

Malheureusement, après une erreur comme celle-ci, il s’avérait que le Raspberry Pi rentrait dans un état incohérent et me faisait perdre l’usage de nombreuses commandes système, dont la commande shutdown qui m’aurait permis de l’arrêter correctement. Fâcheux…

La solution

En recherchant un peu sur Internet une solution au problème que je rencontrais, je suis tombé sur l’article d’une personne qui avait rencontré le même problème mais sur un disque dur externe. Il apparaît que la solution trouvée par cette personne (et trop peu mise en avant à mon goût, d’où cet article) est extrêmement simple à appliquer même sur le disque du système. Voici ce que cela donne en pratique:

  • Si l’erreur se produit sur l’utilisation d’un disque externe, il suffit de le démonter et de le scanner à l’aide de l’utilitaire fdisk (on suppose ici que le volume est sous /dev/sdb1, utiliser la commande fdisk -l pour trouver l’emplacement de montage du volume):
# lister les disques et partitions du système
sudo umount /dev/sdb1

# lancer une analyse du disque
fsck /dev/sdb1
  • Si l’erreur se produit au niveau du système (comme cela a été mon cas), il faut redémarrer le Pi et planifier une vérification du système de fichier en vue d’une réparation:
# l'option 'r' demande le reboot et 'F' une vérification forcée
sudo shutdown -rF now

A propos de WebManiaK

Possédant un Bachelor en informatique de gestion, je suis actuellement employé comme développeur .NET (Java et PHP à mes heures perdues). Je me passionne pour les technologies informatiques et j'utilise donc des outils comme ce blog pour me tenir à jour des dernières nouveautés et publier des billets techniques sur des sujets peu évoqués sur le Web.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*