使用只读文件系统的Buildroot:允许在/ etc上写入

时间:2018-03-04 11:47:14

标签: embedded-linux iot buildroot orange-pi

我正在准备一个基于Orange PI Zero的Buildroot IoT项目,所以我将把它变成一个只读系统。无论如何,当用户为他的WiFi网络配置wpa_supplicant.conf时,我需要持续写入/ etc来更新wpa_supplicant.conf。如果用户想要,我还需要使用一些配置参数更新自定义文本文件。

我希望每次需要更新单个文件时都避免在r / w中重新安装整个文件系统。

实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以在/ etc之上设置可写覆盖,以便进行更改。选项可以是内核中的overlayfs,也可以是使用fuse的unionfs。由于init / initscripts已经使用/ etc,因此您可能需要在init之前创建一个包装器脚本来设置此覆盖层。 - E.G.类似的东西:

mount -t proc proc /proc
mount /mnt/data
mount -o bind /etc/ /mnt/rom-etc
unionfs -o cow,allow_other,use_ino,nonempty \
        mnt/data=RW:/mnt/rom-etc=RO /etc/
exec /sbin/init $*