Raspberry Pi startet nicht mehr – A start job is run-in for /dev/disk/by-uuid/xxxxxxx

Photo by Karla Hernandez on Unsplash

Ich hatte seit einigen Wochen ein Problem mit meinem Raspberry Pi. Der kleine PC ist in fast regelmäßigen Abständen einfach stehen geblieben. So hat es für mich jedenfalls ausgeschaut. Es gab keinen Hinweis in den Log Files auf ein Fehlverhalten eines Dienstes oder eines Programms.

Auf dem Raspberry Pi läuft seit ein paar Jahren eine Nextcloud, also sind Ausfälle der kleinen Server nicht erwünscht, weshalb ich automatische Backups erstelle und auch die SD-Karte tausche ich in regelmäßigen Abständen, so alle zwei Jahre, austausche.

Das Problem

In regelmäßigen Abständen, also eigentlich immer an den gleichen Wochentagen blieb mein Raspberry Pi einfach stehen. Es war kein Zugriff per SSH mehr möglich und die Nextcloud nicht mehr erreichbar. Da der kleine PC Headless läuft war eine genauere Fehleranalyse auf einem Monitor nicht möglich.

Ich habe deshalb den Pi an einen Monitor angeschlossen und neugestartet. Zuvor habe ich alle Peripheriegeräte angeschlossen und wieder neu angesteckt.

Das komische, der Pi bootete. Bei ein paar Versuchen gab es keine Probleme, der kleine PC startete ohne Vorkommnisse und war dann schließend per SSH erreichbar. Die Nextcloud funktionierte.

Also habe ich fleißig weiter neugestartet und siehe da, nach einige mehr Versuchen startete der Pi in den Recovery Mode.

Die Fehlermeldung auf dem Monitor zeigte:

A start job is run-in for /dev/disk/by-uuid/xxxxxxx

Danach bootete der Pi in den Recovery Mode.

Jetzt war auch klar, weshalb nichts in den Log Files aufgetaucht ist. Es wurde der Recovery Mode gestartet. Nach einem Neustart des Pis waren diese Protokolle dann wieder weg und eine Fehlersuche ohne einen angeschlossenen Monitor aussichtslos. Headless war das Problem gar nicht zu entdecken!

Die Lösung

Zusätzlich neben einer normalen Festplatten, auf der die Daten und das temporäre Upload-Verzeichnis für die Nextcloud liegen, habe ich noch zwei USB-Sticks an den Pi angeschlossen.

Auf einem speichere ich automatisch eine komplette Kopie der SD-Karte, um eben schnell und einfach die Karte tauschen zu können. Wie das funktioniert, habe ich hier beschrieben: Nextcloud – SD-Karte schnell und einfach ersetzen

Zum Codeberg-Repo https://codeberg.org/strobelstefan.org/imagebackup

Der zweite USB-Stick ist für das Speichern der Nextcloud-Konfiguration und für den Dump der MariaDB vorgesehen. Auf dem gleiche USB-Stick lasse ich auch jeden Tag einen Export der Kalender erstellen. Nextcloud – Datensicherung von Kalendern und Adressbüchern automatisch erstellen

Zum Codeberg-Repo: https://codeberg.org/strobelstefan.org/kalenderbackup

Nachdem also der Monitor angeschlossen war, konnte ich die Fehlermeldung sehen

A start job is run-in for /dev/disk/by-uuid/xxxxxxx

Quick Fix

Das Problem war der USB-Stick für die MariaDB-Dumps. Er wurde nicht gefunden und das System bootete in den Recovery Mode. Anscheinend hat der Stick nach Jahren im Dienst den Geist aufgegeben, aber eben auch nicht immer.

Also Stick ersetzen und Problem behoben.

So leicht war es dann aber doch nicht. Es musste eine nachhaltige Lösung her, damit so was nicht mehr auftaucht.

Nachhaltige Lösung

Das eigentliche Problem an der ganzen Geschichte war, dass ich den USB-Stick über die /etc/fstab bereits beim Booten des Pis habe einbinden lassen.

UUID=xxxxxxxx /mnt/nextcloud ntfs defaults,auto,umask=000,users,rw 0 0

Damit der Pi auch bei einem Fehler mit dem externen Speicher ohne Probleme startet, habe ich die Zeile minimal abgeändert:

UUID=xxxxxxxx /mnt/nextcloud ntfs defaults,noauto,umask=000,users,rw 0 0

Der Unterschied ist das kleine no. Dadurch wird der USB-Stick nicht automatisch beim Start des Pis eingebunden. In meinen Skripten für die Sicherung habe ich eine kleine Änderung vorgenommen, damit es weiterhin funktioniert. (Die Änderung habe ich bereit in den Dateien in den Codeberg-Repos vorgenommen.)

Also es ist nicht immer die SD-Karte schuld, wenn es Problem beim Booten eines Raspberry Pi gibt, sondern es kann auch ein USB-Stick sein.

Eine Schritt für Schritt Anleitung zur eigenen Nextcloud findest du in meinem Git-Repository auf Codeberg https://codeberg.org/strobelstefan.org/nextcloud-installation-configuration/src/branch/main/nextcloud-installation.md

Photo by Karla Hernandez on Unsplash


Gib mir gerne einen Kaffee ☕ aus!

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.

PayPal Logo


liberapay.com/strobelstefan.org


Kaffee via Bitcoin

bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj


WLAN auf dem Raspberry Pi einrichten

Auf meinem Raspberry Pi wollte ich ein WLAN einrichten, um den Mini-Computer als mobile Abspielstation von Radiostreams und als TOR-Zugangspunkt zu verwenden.

Da ich bei mir zu Hause einen FRITZ!WLAN USB Stick N herumliegen habe, wollte ich diesen auf meinem Raspberry Pi einrichten. Als Betriebssystem habe ich Raspbian installiert, das leider keine Unterstützung für diesen Stick mitbringt. AUs diesem Grund war es mir leider nicht möglich den Stick so einzurichten, dass er dauerhaft eine stabile Verbindung zum Router aufbauen und diese auch halten konnte. Der AVM-Stick wird zwar vom Betriebssystem erkannt, wenn man sich die angeschlossenen USB-Geräte via lsusb ausgeben lässt, jedoch ist es nicht möglich eine konstante Verbindung aufzubauen. Wer doch sein Glpck mit dem AVM-Stick versuchen möchte, dem hilft vielleicht die Anleitung aus dem ubuntuusers.de-Wiki ( ➡ http://wiki.ubuntuusers.de/Fritz!WLAN_USB_Stick-N).

Ich habe mich deshalb entschieden einen neuen Stick zu kaufen. Im Internet gbt es diverse Listen, die WLAN-Sticks auflisten, die von Raspbian unterstützt werden. Ich habe mich für den EDIMAX EW-7811Un entschieden, der ohne Konfiguration verwendet werden kann. ( ➡ http://edimax-de.eu/de/produce_detail.php?pd_id=297&pl1_id=1&pl2_id=44)

Der Stick kann bei laufendem Betrieb an den Raspberry angeschlossen und sofort verwendet werden. Über die grafische Oberfläche lässt sich das WLAN auswählen und der Zugangsschlüssel eingeben.
Wer den Pi ohne externen Monitor verwendet, kann das grafisch auch alles über VNC lösen. Eine Anleitung hierfür findet ihr im Beitrag ➡ VNC auf dem Raspberry Pi.

Nun gibt es aber ein Problem, die Konfiguration wird nicht gespeichert. Schaltet ihr den Pi aus, dann müsst ihr beim nächsten Hochfahren wieder euer WLAN auswählen und den Netzwerkschlüssel eingeben. Da dies ziemlich umständlich ist, kann man die WLAN-Informationen direkt in ein Skript schreiben, damit sich der Pi beim Hochfahren automatisch damit verbindet.

Bevor es losgeht, prüft erst einmal, wie die WLAN-Schnittstelle heißt. Dazu gibt man auf der Konsole den Befehl ein:

ifconfig


Neben der (wahrscheinlich) aktiven LAN-Schnittstelle sollte der Name der WLAN-Schnittstelle ausgegeben werden, z.B. wlan0.

Nachdem ihr nun den Namen kennt, wechselt ihr in das Verzeichnis, dass die Datei interfaces beinhaltet:

cd /etc/network


Dort sollte bereits die Datei interfaces vorhanden sein. Mit dem Befehl ls, könnt ihr das prüfen. Bevor wir die Date editieren, legen wir ein Backup im gleichen Verzeichnis an:

sudo cp interfaces interfaces-bak

Nun gehts ans editieren

sudo nano interfaces


In die Datei tragt ihr die folgenden Zeilen ein:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid "DEIN-WLAN-NAME"
wpa-psk "DEIN-WLAN-SCHLÜSSEL"

Die neue Konfiguration muss nun noch eingelesen werden:

sudo /etc/init.d/networking restart

Das wars, damit sollte euer Raspberry Pi über den neuen WLAN-Stick in euer Netzwerk kommen.