当前位置: 首页 > 面试题库 >

模拟有读取错误的故障块设备?

刘建中
2023-03-14
问题内容

我正在寻找一种更简便的方法来针对有故障的块设备测试我的应用程序,这些设备在读取某些块时会产生I /
O读取错误。尝试使用具有已知坏块的物理硬盘驱动器很痛苦,我想找到一种软件解决方案(如果存在)。

我确实找到了Linux磁盘故障模拟驱动程序,该驱动程序允许创建一个接口,该接口可以配置为在读取某些范围的块时生成错误,但是它是针对2.4
Linux内核的,而尚未针对2.6更新。

最好是一个lostup and loop驱动程序,该驱动程序还允许您将其配置为在尝试从给定的一组块读取时返回读取错误。


问题答案:

它不是您要查找的环回设备,而是设备映射器。

使用dmsetup创建的“错误”目标支持的设备。它将显示在中/dev/mapper/<name>

设备映射器演示文稿(PDF)的第7页完全符合您的要求:

dmsetup create bad_disk << EOF
  0 8       linear /dev/sdb1 0
  8 1       error
  9 204791 linear /dev/sdb1 9
EOF

或省去sdb1零件,将“错误”目标作为块0-8(而不是sdb1)的设备制成纯错误磁盘。

另请参见“ RHEL 5逻辑卷管理器管理”中的设备映射器附录。



 类似资料:
  • ‘模拟器:警告:此计算机不支持快速启动/快照。目前需要一个具有EPT+UG功能的CPU。我们将在未来的版本中解决这个问题。模拟器:deletesnapshot:for default_boot模拟器:进程结束,退出代码为0 有人能帮忙吗,我已经安装了Haxim,我已经安装了最新的平台工具

  • 我得到3个不同的错误。 无法确定模块名称... 未命名模块读取包... 模块org.reactivestreams读取包从两个... 这些错误到底是什么? 建筑格拉德尔 错误消息: 编译Java 错误:无法确定/Users/srihariprasad/的模块名称。gradle/caches/modules-2/files-2.1/io。github。resilience4j/resilience4

  • null 如果滚动7,则该玩家获胜 如果滚动与之前相同的和,则该玩家输 如果没有,则播放器再次滚动,直到满足这两个条件中的任何一个。 最后,它计算出获胜游戏的百分比。我的问题是,我应该得到一个百分比的游戏赢得约39%-60%,根据一个同事,但每次我运行程序,我得到约20%,我不明白为什么。我做错什么了吗?谁能帮帮我吗? 掷7有6种可能的方法,掷11有两种可能的方法。 第一次掷骰子共有8种可能的方法

  • 嗨,我试图使用阿拉莫菲尔为我的项目,但错误出来了。这是我的请求代码//谷歌测试 结果]:失败:错误域=nsurErrorDomain代码=-999“已取消” UserInfo={NSErrFailingURLKey=http://google.com/, NSLocalizedDescription=已取消, NSERRORFAILLINGURLSTRINGKEY=http://google.co

  • 我试图读取来自CXF拦截器的SOAP错误消息,但我无法提取,我捕获了来自Fidler的响应 以下是菲德勒的回应 以下是我的代码 向客户端添加了FaultInterceptor

  • 请注意:虽然我在这个问题中提到了Java/JDBC,但它严格来说是一个关于解决红移问题的问题,并且与语言/框架无关!!! 还有一份SSCCE回购协议完美再现了悬而未决的问题:https://github.com/bitbythecron/redshift-copy-troubleshooting 我试图从Java代码(使用Postgres JDBC驱动程序)运行以下红移复制命令: 如果我没看错文档