我想模拟文件系统损坏,以便测试我们的嵌入式系统如何对其做出反应,并最终使它们尽可能优雅地失败。我们对经常修改且不适合存储在NAND / NOR中的数据使用不同类型的块设备仿真闪存存储。
因为我非常了解在文件树的不同部分修改数据的频率以及存储敏感数据的位置。我想在特定区域注入错误,而不仅仅是随机。
在紧急情况下,我们使用fsck -y
作为最后的手段,以便尝试启动系统并报告处于非常糟糕的状态。我非常想引发错误,这些错误会触发fsck尝试修复,以便研究对系统恢复能力的影响。
dd if=/dev/random
对于我的目的来说不够精确,因为它不能轻易用于注入受控错误。是否还有其他工具或方法可以更好地满足我的需求,还是我必须创造自己的需求?
答案 0 :(得分:2)
如果你已经知道要修改什么,dd可以读取包含你要写的字节的文件,并告诉它在哪里写。
要找出写入的位置,e2fsprogs包中的debugfs可以帮助您。
答案 1 :(得分:1)
应该可以使用Linux文件系统映像模糊器来导致损坏:
或https://unix.stackexchange.com/a/144200中描述的Linux磁盘故障注入技术之一(例如,损坏模式中的dm-flakey)。