Nach einem routinemäßigen
sudo apt-get update && sudo apt-get upgrade
hatte es sich zunächst „ausgepied“. Bis auf die rote LED zeigte mein Pi nach dem Reboot keine Lebenszeichen mehr.
In diesem Artikel beschreibe ich kurz und dreckig, wie ich meinen Raspberry Pi nach missglücktem Update wiederbelebt habe, ohne ihn komplett neu installieren zu müssen.
Das Problem
Das Problem trat auf, als ich meinem Pi nach einem Routine-Update neugestartet habe. Ein Blick in die Datei /var/log/apt/term.log zeigt die letzte Update-Ausgabe:
Vorbereitung zum Ersetzen von gnupg 1.4.12-7+deb7u3 (durch .../gnupg_1.4.12-7+deb7u4_armhf.deb) ...
Ersatz für gnupg wird entpackt ...
Trigger für man-db werden verarbeitet ...
Trigger für install-info werden verarbeitet ...
gnupg (1.4.12-7+deb7u4) wird eingerichtet ...
raspberrypi-bootloader (1.20140618-1) wird eingerichtet ...
Memory split is now set in /boot/config.txt.
You may want to use raspi-config to set it
Keine Umleitung »Umleitung von /boot/bootcode.bin durch rpikernelhack«, keine entfernt.
Keine Umleitung »Umleitung von /boot/fixup.dat durch rpikernelhack«, keine entfernt.
Keine Umleitung »Umleitung von /boot/fixup_cd.dat durch rpikernelhack«, keine entfernt.
Keine Umleitung »Umleitung von /boot/fixup_x.dat durch rpikernelhack«, keine entfernt.
»Umleitung von /boot/kernel.img zu /usr/share/rpikernelhack/kernel.img durch rpikernelhack« wird entfernt
»Umleitung von /boot/kernel_cutdown.img zu /usr/share/rpikernelhack/kernel_cutdown.img durch rpikernelhack« wird entfernt
»Umleitung von /boot/kernel_emergency.img zu /usr/share/rpikernelhack/kernel_emergency.img durch rpikernelhack« wird entfernt
»Umleitung von /boot/start.elf zu /usr/share/rpikernelhack/start.elf durch rpikernelhack« wird entfernt
»Umleitung von /boot/start_cd.elf zu /usr/share/rpikernelhack/start_cd.elf durch rpikernelhack« wird entfernt
»Umleitung von /boot/start_x.elf zu /usr/share/rpikernelhack/start_x.elf durch rpikernelhack« wird entfernt
libraspberrypi0 (1.20140618-1) wird eingerichtet ...
libraspberrypi-bin (1.20140618-1) wird eingerichtet ...
libraspberrypi-dev (1.20140618-1) wird eingerichtet ...
libraspberrypi-doc (1.20140618-1) wird eingerichtet ...
Log ended: 2014-06-26 21:00:56
Leider hat mir diese Ausgabe nicht wirklich geholfen, die Fehlerursache genau zu identifizieren. Da der Pi jedoch den Bootvorgang verweigerte, musste der Fehler irgendwo in der Partition /boot liegen.
Meine Lösung
Diese Lösung mag nicht die Beste sein. Jedoch hat sie funktioniert. ;-) Ich benötigt dafür ein Ubuntu-System mit Cardreader. (Ein anderes Linux wird es sicherlich auch tun.)
- Aktuelles Raspbian Image von www.raspberrypi.org herunterladen.
- Zip-Archiv entpacken und das enthaltene Image im Ubuntu Filesystem einhängen.
- SD-Karte des Raspberry Pi einlegen und die enthaltenen Partitionen ebenfalls einhängen.
- Nun vergleichen wir den Inhalt der beiden /boot-Partitionen.
Bei dem Vergleich fiel mir auf, dass die folgenden vier Dateien in der /boot Partition meiner SD-Karte fehlten:
-rwxr-xr-x 1 root root 17824 Jun 19 21:59 bootcode.bin
-rwxr-xr-x 1 root root 2090 Jun 19 21:59 fixup_cd.dat
-rwxr-xr-x 1 root root 5845 Jun 19 21:59 fixup.dat
-rwxr-xr-x 1 root root 8822 Jun 19 21:59 fixup_x.dat
Diese habe ich dann einfach aus dem gemounteten Image auf die /boot-Partition der SD-Karte kopiert, die SD-Karte wieder in meinen Raspi gesteckt, ihn eingeschaltet und mich gefreut. Der Pi bootet wieder. Meine Daten und installierten Dienste funktionieren alle noch wie gewohnt. Mission accomplished. :-)