我设置dd将较小的系统 40.00GB 硬盘驱动器 (/dev/sda) 克隆到通过 USB 读取器 (dev/sdb) 连接的新的更大的 111.00GB 硬盘驱动器,现在已经运行了两个小时。新硬盘驱动器上的活动计显示它正在做某事。但是CPU只有20%左右。这件事什么时候能完成?我应该重新开始这个过程吗?
Jim*_*ter 60
将来,您应该使用pv来获取正在运行的进度条。
sudo apt-get install pv
与pv安装,让我们假设你想要一个20GB硬盘,克隆/dev/foo,到另一个驱动器(20GB或更大!) /dev/baz:
sudo dd if=/dev/foo bs=4M | pv -s 20G | sudo dd of=/dev/baz bs=4M
需要注意的重要部分:bs=4M参数将 dd 操作的块大小设置为 4MB,这大大提高了整个过程的速度。并且-s 20G参数说明pv此操作预计有多大,因此它可以为您提供 ETA 以及当前速度。
我pv太爱了,应该是违法的。
请注意,虽然这样做从左到右的顺序是直观、漂亮和整洁的,但如果您谈论的是真正快速的数据流,则往返 STDOUT 的管道可能会导致性能损失。如果您正在考虑移动数百 MB/秒,以下语法会更快:
pv -s 20G < /dev/foo > /dev/baz
这-s 20G是可选的,如果您确实知道流有多大(或大约有多大),它可以pv为您提供完成时间的估计。如果没有,pv将尝试弄清楚数据集有多大(例如,它知道文件有多大),但如果不能(例如,使用块设备,而不是文件),它只会告诉您无需猜测事情将需要多长时间的传输速率。
Col*_*ing 27
您可以通过向它发送 SIGUSR1 信号来查看它已经走了多远,以便查看它复制了多少数据和传输速率:
kill -SIGUSR1 $(pidof dd)
Run Code Online (Sandbox Code Playgroud)
对于复制活动,您会受到设备 I/O 速度的限制,因此 CPU 不应满载,因此不必担心。
正如其他答案中所建议的那样,我过去曾使用过 pv 以及 (ps and kill),但最近我一直在使用dc3dd它来产生相同的结果,同时在整个过程中提供进度报告。
您可以检查它是否已经安装: which dc3dd
如果没有,你可以安装它 sudo apt-get install dc3dd
命令开关类似于 dd(用于克隆,尽管擦除更简单一些)。
在你的情况下,我会使用命令 dc3dd if=/dev/sda of=/dev/sdb
编辑:
dd来自Ubuntu 16.04 及更高版本中包含的coreutils 包版本 8.24+ 的最新版本包含一个状态参数。您可以dd通过将status=progress开关添加到dd命令行来实现相同的结果。
例子: dd if=/dev/zero of=/dev/null count=1000 status=progress
| 归档时间: |
|
| 查看次数: |
78870 次 |
| 最近记录: |