Я не собираюсь писать о проверке ваших HW и совместимых списков SD-карт, потому что вы, скорее всего, уже проверили все это. Я собираюсь написать постоянное решение, которое позволяет устранить проблему в зародыше и навсегда решить проблему.
Если вы не хотите, чтобы ваша SD-карта сломалась при щелчке переключателя питания, вы должны использовать ее в режиме только для чтения. Если на SD-карту ничего не записано, она не будет повреждена, что бы вы ни делали.
Очевидным (но нерабочим) решением будет попытка щелкнуть переключателем «только для чтения» на боковой стороне SD-карты, к сожалению, это не работает, поскольку на схемах показано, что этот переключатель нигде не маршрутизируется и его положение обычно игнорируется.
Другой, более тонкий (но работающий) подход - модифицировать ваш так, /etc/fstab
чтобы монтировать все ваши разделы только для чтения. Недостатком этого подхода является то, что ваши журналы должны быть записаны где-то еще (USB-накопитель, RAM-накопитель?), И в случае RAM-накопителей журналы не сохранятся во время перезагрузки. Сделать это:
- Скопируйте изображение RPi на свою SD-карту любым удобным для вас способом.
- Загрузитесь с SD и
raspi-config
запустите автоматически. Не «Расширяйте файловую систему», просто установите часовой пояс и международные настройки.
Выполнить sudo fdisk /dev/mmcblk0
, нажмите «p», чтобы напечатать текущую таблицу разделов. Затем введите следующие команды:
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
Редактировать /etc/fstab
. Это должно выглядеть примерно так:
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
Запустите, sudo partprobe
чтобы распознать новый раздел.
- Отформатируйте новый раздел с помощью
sudo mkfs --type ext4 /dev/mmcblk0p3
.
- Перезагрузка.
Если по какой-либо причине вам нужно внести изменения в вашу систему, вы можете перемонтировать разделы только для чтения с правами записи:
sudo mount -o remount,rw /dev/mmcblk0p2