如何在linux中监控dd命令的进度?

如何在linux中监控dd命令的进度?

我正在使用命令将此.img文件复制到我的 USB 闪存驱动器dd。我如何查看其进度?

答案1

如果写入速度较慢的驱动器(例如 USB 驱动器),您可能不仅想了解命令dd本身的进度,还想了解实际写入目标设备的进度。

您可以修改dd命令行以使其定期刷新缓冲区,例如在写入每个 mibibyte 后,同时显示进度,例如

  sudo dd if=file.img bs=1M of=/dev/sdx status=progress oflag=dsync

请反复检查,确保指定了正确的目标设备。否则,您可能会覆盖宝贵的数据。它dd会毫无疑问地按照您的指示执行操作。


编辑:您可以在中找到其他几种方法我的答案以及此链接中的其他答案

答案2

最简单的方法是使用progressinstatus标志,它将在终端上显示经过的秒数和复制速度。

sudo dd if=img-file of=/dev/sdc1 status=progress

答案3

dd默认情况下使用 512 字节块来复制数据,这可能会导致数据传输缓慢并增加 CPU 使用率。我经常更喜欢使用catorpv来代替,例如

pv -petrab img-file > /dev/sdc1

相关内容