如何检查物理磁盘上的任何活动?

如何检查物理磁盘上的任何活动?

我有一张通过 USB 接口连接的 SD 卡。

的输出fdisk -l表明以下内容:

Disk /dev/sdb: 3965 MB, 3965190144 bytes

mkfs.ext4我有一个脚本,它使用和命令重新初始化磁盘上的多个分区mkfs.vfat,所有命令后都跟有sync。尽管该sync命令以退出代码 0 结束,但 USB SD 适配器上的指示灯仍在闪烁(表示磁盘活动)。

目前,在我的脚本中我有一个倒计时器,仅倒计时 90 秒,我确定这“足够好”以确保磁盘在下一个操作之前不忙,但这确实是一种黑客行为。

问题:是否有一种通用的方法来检查物理设备是否/dev/sdb正在被访问,而不管操作如何(即包括重写分区、使用重新读取分区表sfdisk或访问磁盘上分区上的文件)?

我已经尝试过fuser /dev/sdbfuser /dev/sdb*,但是并没有达到这个目标——当 USB SD 卡适配器上的灯闪烁时,命令并不总是有输出fuser

答案1

如果你使用 dd,有一个命令会告诉我们它是否仍在工作

 sudo pkill -USR1 -n -x dd

听起来你正在做的事不像那样。

我认为同步后活动灯仍然亮的原因是因为写入 SD 卡的速度往往较慢......或者我完全错过了重点

抱歉,找不到关于检查 /dev/sdb 是否正在使用的问题的答案。

编辑

查看 iotop

 sudo apt-get install iotop

然后使用此命令运行它

 sudo iotop --only

这样,它只会向您显示正在使用的内容。

这是您要找的吗?如果不是,还有其他建议这里

相关内容