元の質問:
次の特性を持つ2台の同一のハードドライブがある場合:
- SATA 6.0 Gb / s
- 5400 rpm
- 3TB
完全なddコピーが完了するまでにどのくらい時間がかかりますか?
これまでのところ、5時間実行されており、まだ実行中です…
Linux Ubuntu 12.04 64ビットを使用しており、使用しているコマンドは次のとおりです。
dd if=/dev/sdb of=/dev/sdc
更新:1
進捗状況を確認できます。430GBのコピーで6時間以上かかりました。 HDDは3TBです…
これを行うより速い方法はありませんか?
更新:2
これは以前よりもずっと良くなっているようです(提案してくれたGroxxdaに感謝します):
sudo dd if=/dev/sdb bs=128K | pv -s 3000G | sudo dd of=/dev/sdc bs=128K
ETAは3TBで約9時間ですが、6時間後に430GBに達する前に、前のコマンドを使用すると約36時間かかったと思います。
承認された回答:
dd
昔、人々がテープを使用していたとき(ブロックサイズが重要なとき)や、cat
などのより単純なツールを使用したときに役立ちました。 バイナリセーフではない可能性があります。
現在、dd if=/dev/sdb of=/dev/sdc
cat /dev/sdb >/dev/sdc
を書くのは、複雑でエラーが発生しやすい遅い方法です。 。 dd
の間 いくつかの比較的まれなタスクにはまだ役立ちますが、それがあなたに信じさせるだろうと言及しているチュートリアルの数よりもはるかに有用ではありません。 dd
には魔法はありません 、魔法はすべて/dev/sdb
にあります 。
新しいコマンドsudo dd if=/dev/sdb bs=128K | pv -s 3000G | sudo dd of=/dev/sdc bs=128K
再び不必要に遅くて複雑です。データは一度に128kBで読み取られます(これはdd
よりも優れています デフォルトは512Bですが、さらに大きな値ほど良くはありません)。次に、書き込まれる前に2つのパイプを通過します。
よりシンプルで高速なcat
を使用する 指図。 (数年前にLinuxで作成したいくつかのベンチマークでは、cat
cp
よりも速かった 異なるディスク間のコピーの場合、およびcp
dd
よりも速かった 任意のブロックサイズで; dd
同じディスクにコピーする場合、ブロックサイズが大きいと少し速くなりました。)
cat /dev/sdb >/dev/sdc
このコマンドをsudo
で実行する場合 、ルートとしてリダイレクトを実行する必要があります:
sudo sh -c 'cat /dev/sdb >/dev/sdc'
Linuxを使用しているため、進捗レポートが必要な場合は、cat
のPIDをメモすることで簡単に入手できます。 プロセス(たとえば1234)を実行し、その入力(または出力)ファイル記述子の位置を確認します。
# cat /proc/1234/fdinfo/0
pos: 64155648
flags: 0100000
進捗レポートが必要で、UNIXバリアントがファイル記述子の位置を取得する簡単な方法を提供しない場合は、pv
をインストールして使用できます。 cat
の代わりに 。