将文件系统设置为只读,可防止非正常关机(拔电源)导致的系统损坏

在你看不见的系统后台里,有很多乱七八糟的软件服务在跑着,他们会时不时的对sd卡内的文件做修改。假如某个文件正在写入时你突然拔电源,那这个文件可就损坏了。如果是某个软件的配置文件被损坏,会导致程序运行出问题。要是系统的重要文件被损坏,那就会导致开不了机,只能重烧镜像了。

可以试试把文件系统挂载为只读,这样任何程序都无法对sd卡进行写入。很多跑linux的产品都是这样做的,需要保存数据就单独挂载一个私人的可写入的路径,然后就可以安心拔电源,不担心损坏系统文件。

将文件系统设置为只读

注意,此状态下无法使用桌面,因为桌面相关服务需要往用户路径下写入数据。

/etc/fstab这个文件用于设置怎么挂载sd卡到文件系统,只需要修改这个文件即可。首先打开他,可以看到有如下内容

简单介绍一下这文件的内容。
第一行中的PARTUUID=7ad46142-02 用于指代sd卡分区2,/ 是指将该分区挂载到系统的根路径,ext4 是声明该分区的格式,后面的是挂载时具体的参数设置
第二行的PARTUUID=7ad46142-01指代sd卡分区1,将其挂载到 /boot 这个文件夹

  1. 修改将分区2挂载到/的这一行。给挂载参数增加一个ro,系统就会以只读模式来挂载该分区
  2. 本文件末尾增加一行如下内容,因为很多软件需要往 /tmp 写入一些临时文件,需要单独将其挂载为一个可写的由系统提供的tmpfs
    tmpfs /tmp tmpfs defaults,nosuid
    

修改后的内容如下

重启后即可生效。

验证只读
我们将整个 / 路径都挂载为只读,所以无法在用户目录下创建文件。
但刚刚没有修改 /boot 这个文件夹的写入权限,所以这个路径仍然是可以写入的。

如何恢复

现在连 /etc/fstab 文件都变为只读的了。如果想修改,需要运行以下命令,重新将整个 / 路径都挂载为可读写状态。就可以重新编辑 /etc/fstab 文件了

sudo mount -o remount,rw /

验证恢复可读写