filesystems - 如何在只读 rootfs 上创建可加载文件系统?

标签 filesystems embedded-linux yocto mount

我正在研究嵌入式Linux。我试图通过将 rootfs 设置为只读并将 fs 文件从 sdcard 挂载到根目录来保护它。

我需要合并两个 fs。 任何写入都可以重定向到 sdcard 上的 fs 文件。 仍然可以从只读 rootfs 读取。

我尝试了以下方法:

$ cd/media/sdcard

$挂载用户文件系统/

$ cd/

$ echo a > a.txt

但是我收到错误: -sh:a.txt:只读文件系统

任何人都可以帮助我实现所需的功能吗?

最佳答案

为了完成罗斯的回答,这就是我为/var/log添加overlayfs的方式:

add_overlayfs_mount() {

    mkdir -p ${IMAGE_ROOTFS}/data/overlay/log
    mkdir -p ${IMAGE_ROOTFS}/data/work/log

    echo '/dev/sda4       /data   ext4    defaults        0       0' >> ${IMAGE_ROOTFS}/etc/fstab

    echo 'ofslog /var/log overlay defaults,x-systemd.requires=data,lowerdir=/var/log,upperdir=/data/overlay/log,workdir=/data/work/log 0 2' >> ${IMAGE_ROOTFS}/etc/fstab
}

ROOTFS_POSTPROCESS_COMMAND += "add_overlayfs_mount ; "

您还可以使用VOLATILE_BINDS在某些情况下:

VOLATILE_BINDS_append = " \
    /data/etc/hostname /etc/hostname \n\
"

关于filesystems - 如何在只读 rootfs 上创建可加载文件系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55281079/

相关文章:

busybox - Yocto busybox 覆盖 coreutils

ARDrone 上运行的 Linux 缺少/lib/libc.so

go - 为什么我的 Go 应用程序没有像 busybox `cat` 命令那样从 sysfs 中读取数据?

.net - .net 应用程序是否有任何类型的文件系统事务机制可用?

c - 修改 Ext4 文件系统写入磁盘的数据

c - Linux 驱动程序 try & catch

linux - Yocto 本地存储库

linux - yocto zeus 上的元工具链 qt5,gcc-cross-canatian-aarch64 失败

c# - 搜索目录中的所有文件时显示进度

linux - 如何读取USB大容量存储设备的文件分配表信息?