简体   繁体   English

如何通过只读 rootfs 制作可加载的文件系统?

[英]How to make loadable file system over the read only rootfs?

I am working on embedded linux.我正在研究嵌入式 linux。 I am trying to protect my rootfs by making it read only and mount fs file from the sdcard over the root.我试图通过使其只读并从根目录上的 sdcard 挂载 fs 文件来保护我的 rootfs。

I need both fs to be merged.我需要合并两个 fs。 Any writes can be redirected to the fs file onto the sdcard.任何写入都可以重定向到 sdcard 上的 fs 文件。 Reading from the read only rootfs still possible.从只读 rootfs 读取仍然是可能的。

I tried the following:我尝试了以下方法:

$ cd /media/sdcard $ cd /media/sdcard

$ mount userfs / $ 挂载用户文件 /

$ cd / $ 光盘 /

$ echo a > a.txt $ echo a > a.txt

But I receive error: -sh: a.txt: Read-only file system但我收到错误:-sh: a.txt: Read-only file system

Can any one help me to implement the needed functionality ?任何人都可以帮助我实现所需的功能吗?

是的,overlayfs正是您想要的。

To complete Ross answer, this is how I added overlayfs for /var/log:为了完成罗斯的回答,我是这样为 /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 ; "

You can also use VOLATILE_BINDS in some situations:在某些情况下,您还可以使用VOLATILE_BINDS

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM