您的位置:首页 > 运维架构 > Linux

Linux中如何读写硬盘(或Virtual Disk)上指定物理扇区

2017-02-19 11:07 316 查看
文件系统调试

Linux中如何读写硬盘(或Virtual Disk)上指定物理扇区

读指定物理扇区

dd if=<源设备> of=<输出设备或文件> skip=<指定扇区值> bs=512 count=1

写指定物理扇区

dd if=<输入设备或文件> of=<输出设备> seek=<指定扇区值> bs=512 count=1

如何读写文件系统上指定Block所存储的数据

步骤:

1、计算文件系统Block对应的物理扇区

物理扇区号= Block Num * Block Size/ Hard Disk Sector Size

2、使用dd命令读写指定物理扇区

读数据:dd if=<源设备> of=<输出设备或文件> skip=<物理扇区号> bs=512 count=Block Size/Sector Size

写数据: dd if=<输入设备或文件> of=<输出设备> seek=<物理扇区号> bs=512 count= Block Size/Sector Size

==========================================================================================

测试磁盘写能力

time dd if=/dev/zero of=/test.dbf bs=8k count=300000

因为/dev/zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力

测试磁盘读能力

time dd if=/dev/sdb1 of=/dev/null bs=8k

因为/dev/sdb1是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb1上,也相当于测试磁盘的读能力。

测试同时读写能力

time dd if=/dev/sdb1 of=/test1.dbf bs=8k

这个命令下,一个是物理分区,一个是实际的文件,对它们的读写都会产生IO(对/dev/sdb1是读,对/test1.dbf是写),假设他们都在一个磁盘中,这个命令就相当于测试磁盘的同时读写能力

==========================================================================================

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: