是的,这是使用设备映射器执行此操作的一种非常合理的方法.

设备映射器可以将块设备重新组合为您选择的新映射/顺序. LVM这样做.它还支持其他目标(有些非常新颖),比如’flakey’来模拟失败的磁盘,而’error’来模拟磁盘的失败区域.

可以构建一个故意在其上有IO黑洞的设备,它将在交叉时报告IO错误.

首先,创建一些虚拟卷以用作目标,并使其可作为块设备进行寻址.

dd if=/dev/zero of=/var/lib/virtualblock.img bs=512 count=1048576

losetup /dev/loop0 /var/lib/virtualblock.img

所以,要开始这个创建一个512M文件,它是我们的虚拟块设备的基础,我们将打入一个“洞”.但是还没有洞.如果您使用mkfs.ext4 / dev / loop0,您将获得一个完全有效的文件系统.

所以,让我们使用dmsetup,使用这个块设备 – 将创建一个新的设备,其中有一些洞.

这是一个例子

dmsetup create errdev0

0 261144 linear /dev/loop0 0

261144 5 error

261149 787427 linear /dev/loop0 261139

这将创建一个名为“errdev0”的设备(通常在/ dev / mapper中).当你键入dmsetup create errdev0时,它将等待stdin并在^ D输入时结束.

在上面的例子中,我们在循环设备的扇区261144处创建了一个5扇区孔(2.5kb).然后我们继续正常循环设备.

这个脚本将尝试生成一个表,该表将在大约16Mb左右的随机位置放置孔(尽管它非常随机).

#!/bin/bash

start_sector=0

good_sector_size=0

for sector in {0..1048576}; do

if [[ ${RANDOM} == 0 ]]; then

echo "${start_sector} ${good_sector_size} linear /dev/loop0 ${start_sector}"

echo "${sector} 1 error"

start_sector=$((${sector}+1))

good_sector_size=0

else

good_sector_size=$((${good_sector_size}+1))

fi

done

echo "${start_sector} $((${good_sector_size}-1)) linear /dev/loop0 ${start_sector}"

该脚本假设您还创建了一个512Mb设备,并且您的虚拟块设备位于/ dev / loop0上.

您可以将此数据作为表输出到文本文件,并将其传递到dmsetup create errdev0.

创建设备后,您可以像普通的块设备一样开始使用它,首先将其格式化,然后在其上放置文件.在某些时候,您应该遇到一些IO问题,在这些问题中,您会遇到虚拟设备中真正IO漏洞的扇区.

完成后使用dmsetup删除errdev0以删除设备.

如果您希望更容易出现IO错误,可以更频繁地添加孔或更改您创建的孔的大小.注意把错误放在某些部分可能会导致问题从一开始,I.E在32mb进入一个设备你不能写出一个ext通常试图做的超级块,所以格式不会工作..

为了增加乐趣 – 你可以实际上只是losetup然后mkfs.ext4 / dev / loop0并用数据填充它.一旦你有一个很好的工作文件系统,只需卸载文件系统并使用dmsetup添加一些漏洞并重新安装!

linux 远程 i o 错误,故意在Linux中导致I / O错误?相关推荐

  1. linux远程服务器环境_如何使用Linux为孩子设置远程学校环境

    linux远程服务器环境 COVID-19突然使我们所有人陷入了新的挑战性局面. 我们中的许多人现在都在家工作,而对于我们中的许多人(尤其是那些不习惯远程工作的人),这已经有些习惯了. 另一个同样受到 ...

  2. Linux远程桌面的设计总结,windows / Linux 远程桌面访问全面总结 / 共享文件

    一般来说,ssh 是指无图形界面形式,是命令行的方式.  速度快. vnc 是的是图形界面形式.                            速度慢. ssh 方式登陆: 1.windows ...

  3. linux远程桌面连接_如何从Linux连接到远程桌面

    linux远程桌面连接 根据Wikipedia的说法, 远程桌面是"一种软件或操作系统功能,它允许个人计算机的桌面环境在一个系统(通常为PC,但该概念同样适用于服务器)上远程运行,同时显示在 ...

  4. python开发应用程序错误怎么办_编程中遇到的Python错误和解决方法汇总整理

    开个贴,用于记录平时经常碰到的Python的错误同时对导致错误的原因进行分析,并持续更新,方便以后查询,学习. 知识在于积累嘛!微笑 +++++++++++++++++++++++++++++++++ ...

  5. python库文档的错误_自己编程中遇到的Python错误和解决方法汇总整理

    开个贴,用于记录平时经常碰到的Python的错误同时对导致错误的原因进行分析,并持续更新,方便以后查询,学习. 知识在于积累嘛!微笑 +++++++++++++++++++++++++++++++++ ...

  6. linux远程 java jar包_给Linux服务器远程安装jdk

    给Linux服务器远程安装jdk 1.下载jdk 2.上传jar包到Linux服务器上 ​ 2.1.服务器上新建一个JAVA文件,存放jdk文件 # mkdir /usr/java ​ 2.2.本地上 ...

  7. 腾讯云服务器linux远程登录,腾讯云服务器Linux系统使用SSH工具登录远程教程

    对于大部分网友而言,如果我们选择腾讯云服务器的时候系统用Windows,那大部分网友都会登录的,直接在我们平时使用的WIN电脑远程连接即可操作,而且对于这个可视化操作系统对于经常玩服务器的用户来说也不 ...

  8. linux远程传文件太慢,解决linux scp、ssh 登陆远程服务器连接速度慢

    在使用scp时拷贝文件时建立连接非常慢.其实除了网络原因,还有就是因为在scp拷贝文件前会生成 认证文件. 你可以用 -v 选项确认你的情况. 例如, 下面是 ssh 的详细登陆过程: cherry@ ...

  9. linux远程查看其他电脑配置,配置Linux系统的网络,以便于其他电脑远程操作服务器!...

    1.启动创建好的虚拟机(具体创建步骤请看本人同一天发布的另一条关于虚拟机创建的博客!) 2.第一次启动创建好的虚拟机,会出现这样一个弹框(该硬件不受CITOS的支持.有关支持的硬件信息,请参考http ...

最新文章

  1. c语言患者住院管理系统,患者住院管理系统 C,C++.doc
  2. Unity发布WebGL时如何修改默认的载入进度条sf?
  3. 1秒识别200个假大牌 成本降50%  清华阿里邀全国人才用20张图锻造“打假AI”
  4. java mapreduce 实例_MapReduce -- JAVA 实例(一)计算总数
  5. Git 撤销操作 / 回滚历史
  6. JavaScript 01
  7. 碰到一个非常郁闷的事
  8. 【PC工具】更新电脑考证题库,消防考试题库,司法考试,大学英语四六级题库,教师资格考试题库等...
  9. 在桌面计算机找不到光盘驱动,驱动程序存放在Windows7系统光盘的哪 – 手机爱问...
  10. 你所不知道的Activity转场动画——ActivityOptions
  11. Python 实现数据分析中的 帕累托、漏斗、RFM、雷达图
  12. dell服务器配置信息,DELL服务器配置(710)
  13. php下载列表如何实现,phpcms v9 列表页直接下载功能代码实现
  14. 测试团队建设,个人小总结~
  15. NEXTCHIP,包括哪些方面?有哪些功能?
  16. 吃透Chisel语言.29.Chisel进阶之通信状态机(一)——通信状态机:以闪光灯为例
  17. 上市公司开源的HIS系统,可下载源代码体验
  18. mysql使用博客_mysql使用
  19. 读书笔记 | 《走出思维的误区》
  20. 前端|利用模态框(Modal)实现弹窗效果

热门文章

  1. 【学神-RHEL7】P4-Python列表操作和字符串的常用方法
  2. [LeetCode]题解(python):076-Minimum Window Substring
  3. tar目录的-P参数
  4. 企业如何正确选择云ERP管理软件
  5. DllRegisterServer的调用失败
  6. 设计,成本与开发细节的讨论
  7. [阿里云Java Web环境搭建]二、Ubuntu安装JDK
  8. vmware中的Ubuntu安装ssh全家桶(解决connect to host localhost port 22: Connection refused)...
  9. 【ZZ】Python的主(main)函数问题
  10. 一步一步学Linq to sql(七):并发与事务