Lebensdauer der SD-Karten

Die Lebensdauer von SD-Karten hängt stark von der Anzahl der Schreibzugriffe ab. Da mir nach intensiver Nutzung schon mehrere Karten abgeraucht sind, habe ich mir Gedanken über eine Verlängerung der Lebensdauer gemacht. Das richtige Filesystem, zum Beispiel F2FS,  ist schon einmal die halbe Miete. Denkbar ist natürlich auch, ganz auf die lästige und störanfällige SD-Karte zu verzichten und über das Netzwerk zu booten.

Darüber hinaus ist mir in den Sinn gekommen, Verzeichnisse mit regelmäßigem Schreibzugriff als Ramdisk anzubinden. Dadurch wird der Inhalt natürlich flüchtig und ist nicht bootresistent. Das ist jedoch abhängig vom Inhalt nicht so tragisch. Logdateien unterliegen vielen Schreibzugriffen. Als Beispiel habe ich die Systemlogs und die Kodi-Logfiles auf meinem Raspberry Pi jeweils in eine Ramdisk gelegt. Dazu müssen lediglich Einträge in der Datei /etc/fstab vorgenommen werden.

tmpfs     /var/log              tmpfs   size=5M,noatime,mode=0775           0     0
tmpfs     /home/pi/.kodi/temp   tmpfs   size=5M,noatime,uid=1000,gid=1000   0     0

Die 1000 steht jeweils für die Group-ID und die User-ID des Benutzers, unter dem Kodi läuft.

Nach einem Neustart des Systems sind alle Logfiles flüchtig in der Ramdisk.

Ich persönlich habe teilweise noch andere Verzeichnisse in den Speicher gelegt, z. B.:

tmpfs     /tmp                  tmpfs   size=5M,noatime,mode=1777           0     0

Aufgepasst: Es sollte im Einzelfall geprüft werden, ob der Inhalt der Datei im jeweils flüchtigen Dateisystem wirklich rein beschreibender Natur, also z. B. ein Logfile ist. Beispielsweise findet sich im Logverzeiochnis der Hausautomation fhem die Datei fhem.save, in der z. B. Statusinformationen bootresistent gespeichert werden sollen. Diese Datei sollte mit dem globalen Attribut statefile in der Datei fhem.cfg unbedingt an einem anderen Ort gespeichert werden.

Zum Zweck der längeren Lebensdauer des Speichermediums halte ich es außerdem für sinnvoll, das Swapping des Systems auf das physikalische Speichermedium komplett zu unterbinden (was das System bei Erkennen einer SD-Karte als Speichermedium eigentlich sowieso unterlassen sollte):

$ sudo apt-get purge dphys-swapfile

Bei Bedarf kann als Ersatz für ein Swapfile auf der SD-Karte ein komprimiertes Swapfilesystem im Hauptspeicher des Raspberry Pi genutzt werden. Dafür eignen sich insbesondere Systeme mit relativ wenig CPU-Last und viel Bedarf an flüchtigem Speicher. Im folgenden Beispiel werden 64 MB Swap im Zram angelegt. Sie können aber auch z. B. die Hälfte Ihres physikalischen Hauptspeichers verwenden.

root@radio:~# modprobe zram
root@radio:~# echo $(( 64 * 1024 * 1024 )) > /sys/block/zram0/disksize
root@radio:~# mkswap /dev/zram0
Setting up swapspace version 1, size = 64 MiB (67104768 bytes)
no label, UUID=a3821336-aefb-4be9-977b-6248c8281e8c
root@radio:~# swapon /dev/zram0
root@radio:~# swapon -s
Filename Type Size Used Priority
/dev/zram0 partition 65532 0 -1

Um die Änderungen bootresistent zu machen, fügen Sie der Datei /etc/rc.local diese Zeilen hinzu:

modprobe zram
echo $(( 64 * 1024 * 1024)) > /sys/block/zram0/disksize
mkswap /dev/zram0
swapon /dev/zram0

last change: 2021-01-09
Previous page: Raspberry Pi Next page: rsync