使用“dd”克隆磁盘时如何检查进度?

使用“dd”克隆磁盘时如何检查进度?

可能的重复:
dd:我怎么知道它是否仍然有效?

我用来dd将磁盘克隆到图像文件,并动态压缩它:

dd if=/dev/sda | gzip > /mnt/image_file

如何查看dd已处理的数据量?
查看输出文件的大小当然是没有用的,因为它被压缩了。

答案1

大多数dd实现在接收时打印状态信息SIGUSR1pkill -USR1 -x dd可能就是你想要的。

答案2

尝试pv,管道查看器。我刚刚测试过,它可以直接运行/dev/sda,这意味着您甚至可以获得确定性的进度条。


关于时代:

我创建了一个随机文件dd if=/dev/urandom of=random bs=4k count=10000。然后我尝试了几种阅读方法:

$ time dd if=random | gzip >rand.gz
800000+0 records in
800000+0 records out
409600000 bytes (410 MB) copied, 17.9261 s, 22.8 MB/s

real    0m17.940s
user    0m16.545s
sys     0m1.248s
$ time pv random | gzip >rand.gz
 391MB 0:00:17 [22.1MB/s] [==================================>] 100%            

real    0m18.048s
user    0m16.477s
sys     0m1.048s
$ time <random gzip >rand.gz

real    0m18.410s
user    0m16.401s
sys     0m0.596s

我又跑了一遍,pvdd更接近、更低<。我的结论是pv和的性能dd相同,误差范围非常小。

相关内容