Я не збираюся писати про перевірку ваших HW та сумісних списків SD карт, тому що ви, швидше за все, вже перевірили все це. Те, що я збираюся написати, - це постійне рішення, яке дозволяє занести проблему в зародок і назавжди виправити проблему.
Якщо ви не хочете, щоб ваша SD-карта зламалася, коли ви перемикаєте вимикач живлення, вам доведеться використовувати її в режимі лише для читання. Якщо на SD-картці нічого не буде записано, вона не пошкодиться незалежно від того, що ви робите.
Очевидним (але непрацюючим) рішенням буде спроба переключити перемикач "лише для читання" на стороні SD-карти, на жаль, це не працює, оскільки схеми показують, що цей перемикач нікуди не направлений, і його положення взагалі ігнорується.
Іншим, більш тонким (але працюючим) підходом буде модифікація вашого /etc/fstab
монтажу всіх ваших розділів лише для читання. Недоліком такого підходу є те, що ваші журнали повинні бути записані десь в іншому місці (USB-накопичувач, 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