Nie zamierzam pisać o sprawdzaniu list sprzętu i kompatybilnych kart SD, ponieważ najprawdopodobniej już je sprawdziłeś. To, co zamierzam napisać, to trwałe rozwiązanie, które pozwala zlikwidować problem w zarodku i trwale go naprawić.
Jeśli nie chcesz, aby karta SD uległa uszkodzeniu po przestawieniu przełącznika zasilania, musisz użyć jej w trybie tylko do odczytu. Jeśli nic nie zostanie zapisane na karcie SD, nie zostanie uszkodzone bez względu na to, co zrobisz.
Oczywistym (ale nie działającym) rozwiązaniem byłaby próba przestawienia przełącznika „tylko do odczytu” z boku karty SD, niestety to nie działa, ponieważ schematy pokazują, że ten przełącznik nie jest nigdzie poprowadzony, a jego położenie jest generalnie ignorowane.
Innym, bardziej subtelnym (ale działającym) podejściem byłoby zmodyfikowanie /etc/fstab
montowania wszystkich partycji tylko do odczytu. Wadą tego podejścia jest to, że twoje logi muszą być zapisane gdzie indziej (pamięć USB, pamięć RAM?), Aw przypadku napędu RAM logi nie będą się utrzymywać podczas restartu. Aby to zrobić:
- Skopiuj obraz RPi na kartę SD dowolną metodą.
- Uruchom z SD i
raspi-config
uruchomi się automatycznie. Nie „Rozwijaj systemu plików”, po prostu skonfiguruj strefę czasową i ustawienia międzynarodowe.
Uruchom sudo fdisk /dev/mmcblk0
, naciśnij „p”, aby wydrukować bieżącą tablicę partycji. Następnie wprowadź następujące polecenia:
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
Edit /etc/fstab
. Powinno to wyglądać mniej więcej tak:
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
Uruchom, sudo partprobe
aby rozpoznać nową partycję.
- Sformatuj nową partycję za pomocą
sudo mkfs --type ext4 /dev/mmcblk0p3
.
- Restart.
Jeśli z jakiegoś powodu musisz wprowadzić zmiany w systemie, możesz ponownie zamontować partycje tylko do odczytu z dostępem do zapisu:
sudo mount -o remount,rw /dev/mmcblk0p2