Betrieb von IP-Symcon auf Read-Only RPi Rasbian Jessy zum Schonen der SD-Karte

Hallo zusammen,

nachdem meine SD-Karte bereits nach 4 Monaten abgeraucht ist und das beim RPi wohl häufiger der Fall ist, wollte ich versuchen alles nur auf Read-Only laufen zu lassen um die Karte zu schonen. Ich finde das eine bessere Alternative als regelmäßig neue Karten kaufen zu müssen. Das hier ist teilweise ein Tutorial, teilweise eine Frage, weil derzeit noch nicht alles läuft.

Beim Umstellen von Raspbian auf Read-Only bin ich den folgenden beiden Tutorials gefolgt (english):
Protect your Raspberry PI SD card, use Read-Only filesystem – Charles’s Blog
K3A » How to make RaspberryPi truly read-only, reliable and trouble-free

Zusätzlich muss für Jessie die folgende Zeile in /etc/fstab eingefügt werden, damit /tmp funktioniert:

tmpfs /tmp tmpfs mode=1777,nosuid,nodev 0 0

Die Beschreibung in den Artikeln führt zu einem System, welches nicht auf die SD schreibt. Wenn man etwas umkonfigurieren will, Pakete installieren etc., kann man im laufenden Betrieb die SD auf read/write ummounten. Log-Dateien, DHCP-Leases etc. werden alle im Ram gespeichert, bis das System neustartet.

Natürlich soll IP-Symcon trotzdem die Möglichkeit zum Schreiben haben, daher installiere ich es lokal und manuell auf eine USB-Platte (o. Netzlaufwerk), welche weniger anfällig als SD-Karten sind.

/path-to-usb muss hier durch den Ort ersetzt werden an dem der USB-Stick eingebunden ist.

sudo bash # Spart die folgenden Sudos
mount -o remount,rw /  #Platte schreibbar mounten

# IP Symcon Quelle hinzufügen
echo deb http://apt.ip-symcon.de/ stable rpi >> /etc/apt/sources.list 
wget -qO - http://apt.ip-symcon.de/symcon.key | apt-key add -

apt-get update

# Symcon laden und local entdecken
apt-get install libssh2-1curl libexpat1 libfreetype6 libjpeg62-turbo libmcrypt4
cd /path-to-usb/
apt-get download symcon
mkdir symcon
dpkg -x symcon*.deb symcon

# Symcon mit dem System verknüpfen
ln -s /path-to-usb/symcon/usr/share/symcon /usr/share/symcon
mkdir -p /path-to-sub/symcon/var/{tmp,lib,log}/symcon
ln -s /path-to-usb/symcon/var/tmp/symcon /var/tmp/symcon
ln -s /path-to-usb/symcon/var/lib/symcon /var/lib/symcon
ln -s /path-to-usb/symcon/var/log/symcon /var/log/symcon

exit # Exit sudo mode

Nun muss nur noch in /path-to-usb/symcon/etc/init.d/symcon in Zeile 25 /usr/bin/symcon durch /path-to-usb/symcon/usr/bin/symcon ersetzt werden und /path-to-usb/symcon/etc/init.d/symcon nach /etc/init.d kopiert werden.
Außerdem müssen wir beide noch ausführbar machen:

sudo chmod +x /etc/init.d/symcon /path-to-usb/symcon/usr/bin/symcon

Jetzt noch die SD wieder auf read-only setzen und testen:


sudo mount -o remount,ro /
sudo /path-to-usb/symcon/usr/bin/symcon

Fertig.

Nun zu meinen Gedanken und Problemen:

Die Probleme derzeit sind:

[ol]
[li]Der License-Key wird nicht gespeichert. Der Log liefert keine Auskunft wohin Symcon das speichern will. Weiß da jemand was?
[/li][li]Der Webserver ist nicht erreichbar. Kann jedoch sein, dass das am Demo-Modus liegt. Die Konsole kommuniziert ja auch über Port 3777 und funktioniert.
[/li][/ol]

Meine weiteren Gedanken:

[ol]
[li]Logs und Tmp von IP-Symcon kann man wohl auch auf /tmp symlinken
[/li][li]Vermutlich wird symcon ein apt-get upgrade nicht überleben, ich weiß nicht, wie das auf die Symlinks reagiert.
[/li][li]Ich habe ein bisschen über chroot gelesen und überlegt damit den Root für die Installation der Pakete umzulegen, hab mich da aber noch nicht genug eingelesen.
[/li][li]Alternativ kann man nur /boot auf der SD-Karte lassen und alles andere vom anderen Medium booten.
[/li][/ol]

Ich habe übrigens mehrfach gelesen, dass USB-Sticks verlässlicher als SD-Karten sein sollen, konnte aber keine Nachweise finden. Die einzige vernünftige Erklärung war, dass SD-Karten darauf optimiert seien wenige große Datenmengen zu schreiben (also Fotos). Ob das stimmt, im Vergleich zum USB-Stick weiß ich nicht.