GNU/Linux >> Linux の 問題 >  >> Linux

HddからHddへの完全なDdコピー?

元の質問:

次の特性を持つ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の代わりに 。


Linux
  1. あるマシンから別のマシンに設定をコピーする方法は?

  2. Bashスクリプト内からフルパスを取得しますか?

  3. Wineからデスクトップにファイルをコピーする方法は?

  1. マウスなしで xterm からテキストをコピーするにはどうすればよいですか?

  2. less からテキストをコピーする方法

  3. ゲスト内からの VMware バルーニング状態

  1. CLIからキオスクモード(フルスクリーン)でWebブラウザを起動する

  2. 最後のN行をあるファイルから別のファイルにコピーしますか?

  3. Linux インストールを HDD から SSD に移行するにはどうすればよいですか?