16

我想模拟文件系统损坏,以测试我们的嵌入式系统如何对其做出反应,并最终让它们尽可能优雅地失败。我们使用不同类型的块设备模拟闪存来存储经常修改且不适合存储在 NAND/NOR 中的数据。

因为我非常清楚文件树不同部分中数据的修改频率以及敏感数据的存储位置。我想在特定区域注入错误,而不仅仅是随机注入。

在紧急情况下,我们将fsck -y其用作最后的手段,以尝试启动系统并报告处于非常糟糕的状态。我非常想引起错误,这些错误会触发 fsck 尝试修复,以研究对系统恢复能力的影响。

dd if=/dev/random对于我的目的来说不够精确,因为它不能轻易地用于注入受控错误。是否有任何其他工具或方法更适合我的需求,还是我必须自己发明?

4

2 回答 2

2

如果您已经知道要修改什么,dd 可以读取包含您要写入的字节的文件,并告诉它在哪里写入它们。

要弄清楚在哪里写,e2fsprogs 包中的 debugfs 可以帮助你。

于 2008-09-26T16:05:13.077 回答
2

应该可以使用 Linux 文件系统映像模糊器来导致损坏:

或https://unix.stackexchange.com/a/144200中描述的一种 Linux 磁盘故障注入技术(例如损坏模式下的 dm-flakey)。

于 2014-09-14T19:45:02.033 回答