我正在尝试将原始文件从旋转 USB 旋转驱动器 DD 到 SSD。我尝试过压缩(但显然它必须先扩展才能复制)。我看过arm7 GB RAM设备的详细信息,它一次只使用了27%-50%的可用处理能力。我正在尽力将复制时间缩短到 3 个小时,但现在需要 6 个多小时。
我正在使用bs=1m,我真的不知道我能做些什么来提高DD。无论如何,我可以分叉该进程并利用处理器吗?
我正在使用 truecrypt 的分支从加密卷中 DDing ;我知道这会减慢速度,因此我要进行压缩,因此系统需要解密的内容较少,但必须解包。
答案1
如果您使用的是基于 Linux 的系统,请cat
使用dd
cat source.img >/dev/destdisk
但实际上,您需要考虑磁盘的 IO 速度以及它们所连接的数据总线:旋转磁盘传输数据的速度以及您使用的 USB 类型的速度。
底线:如果你是 100% CPU 限制,那么你可能可以在软件中做一些事情,但在这里你几乎肯定是 IO 限制。
根据为什么 cat(1) 跑得比 dd(1M) 快即使使用相同的块大小,该cat
实用程序也更快。 dd
(这篇文章解释了原因 - 显然是因为cat
使用mmap()
而dd
没有。)
答案2
瓶颈肯定是 USB 驱动器/USB 电缆/USB 总线。
复制文件根本不是 CPU 密集型任务; CPU 不会受到压力,因为它并不真正需要全速运行。
使用压缩根本没有意义,因为数据应该以未压缩的方式从 USB 设备一直传递到 RAM,从而遇到同样的瓶颈。
除了确保您使用的 USB 端口不会成为 USB 驱动器最大全速的瓶颈(例如,如果您有 1 个 USB 2.0 端口和 1 个 USB 3.0 端口,并且 USB 驱动器是 USB 3.0)之外,您无能为力。兼容,请将 USB 驱动器插入 USB 3.0 端口)。