【发布时间】:2011-01-23 20:03:43
【问题描述】:
我正在开发一个使用紧凑型闪存和 tmpfs 运行的嵌入式 Linux 系统。闪存以只读方式安装,通常应该保持这种状态,但有时我需要向闪存写入一些内容。
写入闪存(通过 PATA 接口)时应该采取哪些预防措施?由于我不记得的原因,我正在使用安装有barrier=1,data=ordered,nodelalloc,noatime,ro 的ext4 文件系统这是一个可怕的想法吗?系统需要在零干预的情况下快速启动。我很想做tune2fs -c 0 -i 0。这是一个更糟糕的主意吗?
另外,当我写东西时,我显然需要重新安装闪存读写,执行写入,然后重新安装只读。问题是有几个不同的进程(c++ 二进制和 shell 脚本)可能需要执行此操作。显然,让每个进程在完成后不加选择地以只读方式重新挂载文件系统是一个坏主意。
协调这一点的最佳方式是什么? flock 看起来很有希望;这是最好的方法吗?我需要担心什么?我不希望过时的锁阻止写入或让文件系统无限期地写入。
澄清一下:“偶尔”写入是指系统可以运行多年而无需编写任何东西。当某些东西确实被写入时,它可能是几百个字节。同时,系统需要在没有任何干预的情况下承受不可预测的电源循环。
【问题讨论】:
标签: linux filesystems locking embedded embedded-linux