Ubuntu构建只读文件系统

本文介绍Ubuntu构建只读文件系统。

嵌入式系统使用过程中,有时会涉及到非法关机(比如直接关机,或意外断电),这可能造成文件系统损坏,为了提高系统的可靠性,通常将根文件系统设置为只读,将其他需要读写的数据放置在另外开辟的一个磁盘分区,本文针对嵌入式系统常用的Ubuntu操作系统构建只读文件系统。

1.基本原理

1)OverlayFS简介

OverlayFS(Overlay File System)是一种联合文件系统,它通过叠加多个目录形成一个单一的文件系统试图,其结构如下图。

其中,

a)lowerdir:下层目录,此目录为只读的。

b)upperdir:上层目录,此目录为可读写的。

c)merged:合并目录,此目录为合并上层目录和下层目录叠加形成的统一视图。

2)Overlayroot操作原理

Overlayroot是软件安装包,它使用了上述OverlayFS,它将根文件系统当作OverlayFS的下层目录,换句话说,下层目录是根文件系统的只读挂载,但是系统在运行过程中,有些文件又想要读写,就将他们挂载在上层目录,比如tmpfs,sysfs(驱动操作)及另外划分出来的磁盘分区。

系统允许用户在根文件系统(也就是下层目录)上做写操作,用户也看的见这些更改,但这些更改是临时的,不会实际写入磁盘,重启后更改全部丢失,不会影响到根文件系统。而挂载到上层目录,对他们进行更改操作,这些更改可能会在重新启动后持续存在,如对另外划分出来的磁盘分区进行写操作,重启后更改仍然存在,而对tmpfs进行写操作,重启后会丢失。

2.操作方法

1)安装Overlayroot

输入如下命令:

bash 复制代码
sudo apt-get install overlayroot

2)配置Overlayroot

作为对比,配置前,我们可以查看下系统挂载情况,输入如下命令:

bash 复制代码
mount

结果如下:

可以看出"/dev/sda1"为可读写的。

编辑"/etc/overlayroot.conf",输入如下命令:

bash 复制代码
sudo gedit /etc/overlayroot.conf

可以看出,默认配置为:

bash 复制代码
overlayroot="";

修改为:

bash 复制代码
overlayroot="tmpfs:swap=0,recurse=0"

重启后,查看挂载情况:

可以看出"/dev/sda1"已经变为只读了。

3)修改超时时间

重启时,系统会进入GRUB界面,如下图。

默认等待时间为30s,若需要修改时间,可修改"/boot/grub/grub.cfg"将"timeout"修改为想要的值(需要暂时禁用Overlayroot)。如下图。

4)挂载读写分区

若系统需要保存数据,如日志或数据库等,可重新划分一个磁盘分区,将此分区挂载为可读写的,并修改"/etc/fstab"进行自动挂载,在此不再赘述。

5)禁止Overlayroot

若需要修改根文件系统相关文件,需要禁止Overlayroot,可在GRUB界面,按"e"键,修改传递内核参数,添加"overlayroot=disable",如下图。

注意以上操作只是临时禁止Overlayroot,重启后失效。

若想永久禁止Overlayroot,按上述操作进入系统后,重新编辑"/etc/overlayroot.conf",修改为默认配置:

bash 复制代码
overlayroot="";

总结,本文介绍了Ubuntu构建只读文件系统。

相关推荐
foo1st8 小时前
JDK(Ubuntu 18.04.6 LTS)安装笔记
java·笔记·ubuntu
maotou52613 小时前
Ubuntu22学习记录
linux·ubuntu
放飞自我的Coder15 小时前
【win11 安装WSL2 详解一遍过!!】
linux·ubuntu
蜕变的土豆15 小时前
Ubuntu下软件运行常见异常退出问题汇总分析
linux·ubuntu
lswzw16 小时前
Ubuntu K8s集群安全加固方案
安全·ubuntu·kubernetes
Jtti18 小时前
Ubuntu服务器上如何监控Oracle数据库
服务器·数据库·ubuntu
自学AI的鲨鱼儿20 小时前
Ubuntu / WSL 安装pipx
linux·运维·ubuntu
跳跳糖炒酸奶1 天前
第十五讲、Isaaclab中在机器人上添加传感器
人工智能·python·算法·ubuntu·机器人
阿桨1 天前
【(保姆级教程)Ubuntu24.10下部署Dify】
ubuntu·dify·智能体
该死的碳酸饮料呀1 天前
PLOG安装
linux·ubuntu