当前位置: 首页 > news >正文

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

输入如下命令:

sudo apt-get install overlayroot

2)配置Overlayroot

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

mount

结果如下:

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

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

sudo gedit /etc/overlayroot.conf

可以看出,默认配置为:

overlayroot="";

修改为:

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",修改为默认配置:

overlayroot="";

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

http://www.lryc.cn/news/436473.html

相关文章:

  • 【黑金系】金融UI/UX体验设计师面试作品集 Figma源文件分享
  • Golang | Leetcode Golang题解之第392题判断子序列
  • Liunx常用指令
  • CSS基础:浮动(float)如何使用清楚以及代替方法
  • margin重叠该怎么解决?
  • Linux学习笔记(黑马程序员,前四章节)
  • tekton pipeline resources
  • 使用Python实现多个PDF文件的合并
  • 微擎忘记后台登录用户名和密码怎么办?解决方法
  • blender我的对称模型好像中点被我不小心移动了 我现在如果雕刻 两边修改的地方不是对称的 我该怎么办
  • 数据库——MySQL概述
  • 云服务器部署DB-GPT项目
  • 基于锂电池的多路直流电源模块设计
  • 蓝奏云网盘搜索网页版PHP源码
  • CocosCreator面试真题详解
  • 线性代数 第七讲 二次型_标准型_规范型_坐标变换_合同_正定二次型详细讲解_重难点题型总结
  • 国内外网络安全政策动态(2024年8月)
  • 重心映射:坐标系统与边界处理策略
  • python-网页自动化(二)
  • QT实战 商城客户端开发
  • 使用Java增删改查数据库
  • NAND发货量增长放缓,2024 Q2营收增长14%
  • 2024年9月13日 十二生肖 今日运势
  • Maven 常见问题以及常用命令
  • 自定义分区
  • 计算机三级 - 数据库技术 - 第十四章 数据仓库与数据挖掘 笔记
  • 低代码移动端集成:简化开发、提升用户体验的利器
  • Redis入门1
  • SHT20温湿度传感器的C语言驱动
  • 系统架构师考试学习笔记第四篇——架构设计实践知识(16)层次式架构设计理论与实践