返回> 网站首页 

overlayroot使用指南:为Linux根文件系统加上"重启即还原"

yoours2026-10-18 18:51:01 阅读 14

简介一边听听音乐,一边写写文章。

一、介绍

    在嵌入式设备或任何需要“折腾坏了重启就好”的场景中,overlayroot是一个让根文件系统在运行时保持只读,所有修改都落在临时的可写层中,重启后一切归零。

    保护存储介质,降低损坏风险;重启即恢复,适合“不可变”场景;需要时仍可临时写入。


二、安装

    sudo apt install overlayroot


三、配置

    1. /etc/overlayroot.conf

    安装后的默认状态通常是禁用,文件中有一行 overlayroot=""

    2. 最常用的配置值

    overlayroot="tmpfs:swap=1,recurse=0"

    tmpfs:可写层放在内存文件系统中,重启后自然消失。

    swap=1:允许 tmpfs 在内存压力大时使用 swap,降低 OOM 风险。

    recurse=0:只对根文件系统本身做 overlay,不递归覆盖 /boot、/home 等单独挂载的分区。如果有独立的数据分区需要保持可写,这个参数很重要。


四、命令

    1. 修改配置文件后,重启系统,用以下命令验证 overlay 是否生效:

    mount | grep overlayroot

    输出显示 overlayroot on / type overlay,并列出 lowerdir、upperdir 和 workdir 的路径,例如lowerdir=/media/root-ro, upperdir=/media/root-rw/overlay。


    2. 日常写入(临时,重启丢失)

    根分区 / 呈现为可正常读写的 overlay 视图。可以像普通系统一样创建文件、修改配置、安装软件。但这些更改只存在于上层(通常是 tmpfs)中,重启后全部消失。


    3. 持久化修改:overlayroot-chroot

    当需要修改底层只读根文件系统——比如安装软件包、修改 /etc 下的持久配置——使用:

sudo overlayroot-chroot

    该命令会为 /proc、/sys、/run 建立绑定挂载,将底层的只读根以可写方式重新挂载为 overlay,然后 chroot 进去。会看到提示符发生变化(常见为 chroot(/overlay/lower):/#),此时所做的更改会写入底层存储,重启后仍然保留。

    在 chroot 环境中完成操作后,执行 exit 退出,回到正常的临时可写环境。


    4. 完全禁用 overlayroot,恢复永久回到普通的可读写根文件系统

    sudo overlayroot-chroot

    进入后编辑 /etc/overlayroot.conf,将 overlayroot 那一行改回:

    overlayroot=""

    保存、 exit ,然后重启。重启后根分区将恢复为常规可读写状态。


    5. 配置生效

    修改 /etc/overlayroot.conf 后,必须重新生成 initramfs,否则新的配置不会被 initramfs 中的脚本读取:

    sudo update-initramfs -u

    sudo reboot


五、注意事项

    在 tmpfs 模式下,可写层消耗的是内存,最大约占可用内存的一半(按需动态占用)。如果系统运行期间会产生大量写入(日志、缓存、临时文件),可能触发内存压力,此时需要调整日志策略或考虑使用非 tmpfs 的可写层。

    持久化分区与 recurse。 如果有独立的数据分区(如 /home、/data)需要保持可写,确保 recurse=0 或通过 overlayroot_exclude 排除相应挂载点,否则这些分区可能被一并 overlay 化。


微信小程序扫码登陆

文章评论

14人参与,0条评论