我运行一个小的uClibc
和busybox
一个x86设备上基于嵌入式系统。我使用的是initramfs,但是我也在ext3
IDE模式下将自定义目录安装在紧凑型闪存设备上,该目录用于存储由自定义编写的c ++应用程序创建的持久性测量记录数据。我选择了ext3
文件系统,因为在读过的几本书中(在Karim Yaghmour 撰写的《构建嵌入式Linux系统》和Christopher Hallinan 撰写的《Embedded Linux Primer》)中,在IDE模式下使用CF驱动器时,建议使用该文件系统来防止电源丢失。这尤其重要,数据也很关键。
但是,由于我上一个问题中的一些评论,即在文件写入过程中发生断电时如何还原损坏的ext3文件的混淆,看来实际上该文件系统不能提供防止由于电源引起的数据损坏的安全性的保证。失利。所以我想知道
- 是否
ext3
实际上是这个设置的最佳选择? - 光盘写入操作期间的断电是否只会定期破坏我要追加到文件中的部分数据,还是会破坏整个文件?
- 断电时未写入的数据是否完全安全?特别是,我的
initramfs.cpio
文件也可能会损坏吗? - 我是否可以在应用程序代码中使用任何方法来保护数据(即创建一个额外的分区并将数据写入镜像,以便始终有2个副本)-对于我的应用程序而言,速度并不是真正的问题,因此复制操作成本很高是可以接受的。
我已经阅读并阅读了以下相关问题的答案:日志文件系统是否可以保证在电源故障后不会损坏?,但并没有涵盖使我感到困惑的某些事情。
我意识到我在问很多问题,但似乎尽管阅读了很多材料,但是在断电的情况下,我还是根本无法理解我的数据所带来的风险。