UBIFS:不保存编辑的文件。如何将它们同步到NAND?

UBIFS: editted files are not saved. how to sync them to NAND?

我将 UBIFS 用于 NAND 上的 rootfs。 当我使用 nano 命令编辑 /etc/rc.local 之类的文件并保存时, "cat /etc/rc.local" 显示编辑的内容,当然。 然而,在移除电源(没有重启或关机命令)并再次供电后,/etc/rc.local 的内容变为空。

我发现写入的数据在UBIFS中并不是直接写入NAND,而是写入缓存。 (参考:http://www.linux-mtd.infradead.org/faq/ubifs.html#L_empty_file

我想编辑完直接同步到NAND。 我找到的唯一解决方案是 fsync,但这应该在 C 程序中调用,并且它需要文件描述符。 Nano 命令等不给我们文件描述符。所以我无法解决这个同步问题。

如何解决这个不同步到NAND的问题? 有同步命令吗? 如果我想在 UBIFS 中编辑和保存文件,是否必须使用 C 程序编辑文件并使用 fsync?

您可以使用'sync'命令。系统会将所有缓存刷新到磁盘。