我不会写有关检查硬件和兼容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