Es kommt leider immer wieder einmal vor, dass die SD Karte in einem Raspberry Pi den Geist aufgibt. Bei einem dieser Fälle hat sich das bei mir in der kryptischen Fehlermeldung
dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
geäußert und ich habe untersucht, was es damit auf sich hat.
Verwendetes Material / Lizenzen
- Raspberry Pi (z.B. der Raspberry Pi 4 mit 4GB RAM bei amazon.de als Komplettkit, ca. 95 EUR.).
- Eine für den Raspberry Pi geeignete microSD Karte, am besten mit 16GB oder mehr Speicher. Alleine 2020 habe ich 5 günstige Karten wegen Schreib-/ Lesefehlern verloren und verwende nun nur noch die Samsung PRO Endurance 64GB (z.B. bei amazon.de, ca. 14 EUR).
Das Problem
Mit der obenstehenden Fehlermeldung konnte ich auch mit Unterstützung von Google kaum nützliche Information finden, alle beschriebenen Fehlerbehebungen wollten einfach nichts bringen. In einem recht versteckten Post bin ich dann auf einen Befehl gestoßen, mit dem sich das Logging von dpkg so erhöhen lässt, dass es jeden einzelnen Befehl detailliert ausgibt. Das Kommando lautet:
sudo dpkg --debug=77777 --configure -a
Der Wichtige Part ist der mit den vielen Siebenen. Das ist theoretisch auch dokumentiert in der Hilfe von dpkg:
Praktisch muss man dann erst einmal die Varianten dort bitweise verknüpfen.. und das Ergebnis ist 77777, wenn man alles geloggt haben möchte um zu sehen bei welchem Befehl es genau stehenbleibt. Wo anders heißt das einfach „verbose“ 😉
Ich konnte dadurch sehen, dass das Schreiben in’s Dateisystem zu lange gedauert hat und bin darüber dann auf die defekte SD Karte gekommen.
Am Ende hat mich das zwar auch nicht davor gerettet, die Karte ersetzen zu müssen, aber zumindest habe ich wieder ein wenig gelernt und nach dem Ersetzen der Karte hat das Kommando dann auch die verbliebenen Fehler korrigiert (auch ohne das --debug=77777
).
Bei einem anderen Raspberry war es am Ende eine mangelhafte Stromversorgung (siehe https://photobyte.org/unstable-raspberry-pi-taming-the-power-supply). Das folgende Kommando listet auf, wie oft der Raspberry zu wenig Spannung hatte. Alles andere als eine Null hier ist ein großes Problem!
sudo grep -a Under-voltage /var/log/syslog | wc -l
Schlusswort
Ich freue mich über eure Kommentare, ob euch der Beitrag weitergeholfen hat. Schreibt auch gerne, wenn ihr Fragen habt oder doch etwas unklar geblieben ist. Oder wenn ihr aufbauend darauf spannende weitere Automatisierungs-Projekte umsetzen konntet 🙂
Freiberuflicher IT Berater, Open Source Entwickler und begeisterter Smarthome Nutzer. Das hier ist mein Braindump für Technikthemen, die mich beschäftigen.