RedMatic: „Error loading context store“ nach Stromausfall

Ab und an kommt es vor, dass meine RaspberryMatic „hart“ ausgeschaltet wird – der Strom ist weg. Beim Hochfahren startet RedMatic nicht mehr, weil der Context Store nicht gelesen werden kann. Die Fehlermeldung in /var/log/messages ist „Error loading context store: Error: EIO: i/o error, read at …

Ursache

Der Context Store befindet sich bei mir auf einem USB-Stick, der an der RaspberryMatic angeschlossen ist. Durch den Stromausfall ist der Context Store nicht ordnungsgemäß geschrieben worden und somit korrupt.

Behebung

Du hast zwei Möglichkeiten:

  1. Du kannst versuchen, den USB-Stick zu reparieren.
  2. Oder du machst kurzen Prozess und löscht den Context Store. Damit sind zwar nach dem Start von RedMatic einige Status unbekannt, diese füllen sich jedoch mit der Zeit wieder.

Einwahl auf der RaspberryMatic

Zunächst wählst Du dich per SSH (bspw. mit PuTTY) auf der RaspberryMatic ein. Wie der SSH-Server eingerichtet wird kannst du dem Artikel „per Editor unlöschbaren Node entfernen“ entnehmen.

Variante 1: Reparaturversuch

Dazu stecke ich den USB-Stick an meinen Linuxrechner und führe dort den normalen fsck-Befehl aus. Den Pfad /dev/sdd1 musst Du anpassen, so dass er auf deinen USB-Stick zeigt.

sudo fsck -a -t vfat /dev/sdd1

Falls eine Reparatur erfolgreich war, kann der USB-Stick wieder in die CCU* eingebunden und die RedMatic gestartet werden.

Variante 2: Context Store Löschen

USB-Stick beschreibbar einbinden

Der USB-Stick ist nach einem Stromausfall im Fehlerfall möglicherweise nur lesend eingebunden. Das findest Du heraus, indem du Dir mit dem Befehl mount anschaust, wie der USB-Stick aktuell eingebunden ist (in meinem Fall hängt dieser an /media/usb1, die Einrichtung des Context Stores ist auch im Beitrag „RedMatic auf der RaspberryMatic installieren“ beschrieben). Beachte hierbei das in der runden Klammer stehende „ro„, welches für „read only“ steht.

root@ccu:/media/usb1# mount
[...]
/dev/sda1 on /media/usb1 type vfat (ro,nodev,noexec,noatime,nodiratime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)

Damit Du den USB-Stick wieder beschreiben kannst, musst Du ihn neu einbinden:

mount -o remount,rw /dev/sda1 /media/usb1/

Nun ist der USB-Stick beschreibbar.

root@ccu:/media/usb1# mount
[...]
/dev/sda1 on /media/usb1 type vfat (rw,noatime,nodiratime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)

Context Store löschen

Ich empfehle Dir, den Context Store nicht zu löschen, sondern umzubenennen – man weiß ja nie, was vllt noch wichtig und rettbar ist.

mv /media/usb1/context /media/usb1/context~

Nach dem Umbenennen bietet es sich an, die CCU* noch mal neu zu starten. Zum einen erkennt man dann, ob alles geklappt hat und zum anderen wird RedMatic gleich mit gestartet.

Falls das Umbenennen nicht funktioniert und der USB-Stick dann wieder nur lesend eingebunden ist, bleibt Dir nur die Wahl zwischen einem Reparaturversuch oder dem Formatieren.

Updates

05.08.2021: Ergänzung um einen Reparaturversuch

Sag mir deine Meinung! (Kommentar-Regeln)

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.