Ich werde nicht über die Überprüfung Ihrer Hardware- und kompatiblen SD-Kartenlisten schreiben, da Sie höchstwahrscheinlich alle diese bereits überprüft haben. Was ich schreiben werde, ist die dauerhafte Lösung, die es ermöglicht, das Problem im Keim zu ersticken und das Problem dauerhaft zu beheben.
Wenn Sie nicht möchten, dass Ihre SD-Karte beim Betätigen des Netzschalters beschädigt wird, müssen Sie sie im schreibgeschützten Modus verwenden. Wenn auf Ihre SD-Karte nichts geschrieben wird, wird sie nicht beschädigt, egal was Sie tun.
Eine naheliegende (aber nicht funktionierende) Lösung wäre der Versuch, den "Nur-Lese" -Schalter auf der Seite der SD-Karte umzudrehen. Leider funktioniert dies nicht, da der Schaltplan zeigt, dass dieser Schalter nirgends verlegt ist und seine Position im Allgemeinen ignoriert wird.
Ein anderer, subtilerer (aber funktionierender) Ansatz wäre, /etc/fstab
Ihre Partitionen so zu mounten, dass sie schreibgeschützt sind. Der Nachteil dieses Ansatzes ist, dass Ihre Protokolle an einer anderen Stelle geschrieben werden müssen (USB-Stick, RAM-Laufwerk?) Und im Falle eines RAM-Laufwerks die Protokolle während des Neustarts nicht bestehen bleiben. Um dies zu tun:
- Kopieren Sie ein RPi-Image mit einer beliebigen Methode auf Ihre SD-Karte.
- Booten Sie von SD und
raspi-config
startet automatisch. Erweitern Sie nicht das Dateisystem, sondern richten Sie Ihre Zeitzone und Ihre internationalen Einstellungen ein.
Führen Sie aus sudo fdisk /dev/mmcblk0
, drücken Sie 'p', um die aktuelle Partitionstabelle zu drucken. Geben Sie dann die folgenden Befehle ein:
n Create a new partition
[enter] Make a primary partition
[enter] Use the default number
[#] 1 greater than the end of mmcblk0p2
[enter] Expand to the end of the SD card
w Write the partition table and exit
Bearbeiten /etc/fstab
. Es sollte ungefähr so aussehen:
proc /proc proc defaults 0 0
/dev/mmcblk0p1 /boot vfat ro 0 0
/dev/mmcblk0p2 / ext4 ro 0 0
/dev/mmcblk0p3 /home ext4 defaults,errors=remount-ro 0 1
none /var/run ramfs size=1M 0 0
none /var/log ramfs size=1M 0 0
Führen Sie aus sudo partprobe
, um die neue Partition zu erkennen.
- Formatieren Sie Ihre neue Partition mit
sudo mkfs --type ext4 /dev/mmcblk0p3
.
- Starten Sie neu.
Wenn Sie aus irgendeinem Grund Änderungen an Ihrem System vornehmen müssen, können Sie die schreibgeschützten Partitionen mit Schreibzugriff erneut bereitstellen:
sudo mount -o remount,rw /dev/mmcblk0p2