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 …„
Inhalt
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:
- Du kannst versuchen, den USB-Stick zu reparieren.
- 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