我没有使用dd
太多,但到目前为止它还没有让我失望。现在,我已经进行了dd
超过 12 个小时 - 我正在将图像写回到它来自的磁盘 - 我有点担心,因为我能够dd
在大约7小时。
我在配备 Core 2 Duo、2.1ghz/core 和 4gb RAM 的 MacBook 上运行 OSX 10.6.6。我正在从 7200rpm 硬盘驱动器(启动驱动器)上的 .dmg 读取数据,并且正在写入通过 SATA 至 USB 连接器连接的 7200rpm 驱动器。我将块大小保留为默认值,图像约为 160GB。
编辑:而且,经过 14 小时的纯粹压力后,效果dd
还是很完美。不过,下次我将运行它pv
并使用 跟踪它strace
。感谢大家的帮助。
答案1
你可以发送dd
某个信号使用kill
命令使其输出当前状态。该信号INFO
适用于 BSD 系统(包括 OSX)和USR1
Linux。在你的情况下:
kill -INFO $PID
您可以使用以下命令找到进程 ID($PID
上面)ps
;或看Mac OS X 上的 pgrep 和 pkill 替代品以获得更方便的方法。
更简单地说,如安托万·G指出在他的回答,您可以ctrl-T
在运行 dd 的 shell 中输入来向其发送INFO
信号。
作为 Linux 上的示例,您可以使所有活动dd
进程输出状态,如下所示:
pkill -USR1 -x dd
输出其状态后,dd
将继续应对。
答案2
在 OS X 下(没有在 Linux 上尝试),您只需在运行的终端中键入Ctrl+即可。它将打印与 相同的输出,加上 CPU 使用率:Tdd
kill -INFO $PID
load: 1.40 cmd: dd 34536 uninterruptible 3.49u 64.58s
5020305+0 records in
5020304+0 records out
2570395648 bytes transferred in 4284.349974 secs (599950 bytes/sec)
我发现它阅读此线程,并尝试在我的终端中打开一个新选项卡,但将⌘+T与Ctrl+混合T。
答案3
答案4
从coreutils
v8.24 开始,dd
原生支持显示进度。只需添加选项即可status=progress
。
例子:
dd if=arch.iso of=/dev/sdb bs=4M status=progress