dd
多くの(奇妙な)オプションがあります。dd(1)を参照してください。
バッファサイズを明示的に指定する必要があるため、試してください
dd if=/dev/sda of=/dev/sdb bs=16M
IIRC、デフォルトのバッファサイズは512バイトのみです。上記のコマンドは、16メガバイトに設定します。もっと小さいもの(たとえばbs=1M
)を試すこともできますが、デフォルトよりも多く使用する必要があります(特に4Kバイトのセクターを持つ最新のディスクハードウェア、つまりAdvanced Formatで)。少なくとも1メガバイトの2の累乗を単純に推奨します。
デフォルトの512バイトのバッファーサイズでは、ハードウェアではカーネルが512バイトブロックごとに4Kを転送する必要があると思います(ただし、非常に間違っている可能性があります)。
に関してrdsk
、sd(4)の manページには次のように書かれています:
現時点では、ブロックデバイスのみが提供されています。Rawデバイスはまだ実装されていません。
ddのバッファサイズを増やすと、読み取りおよび書き込み操作のパフォーマンスが向上します。現在、すべてのディスクにハードウェア読み取り/書き込みバッファがあります。ただし、ddのバッファサイズをハードウェアバッファより大きくすると、ddは最初のディスクからバッファに読み込み、2番目のディスクがすべて独自のハードウェアバッファから書き込むため、パフォーマンスが低下します。bs
デバイスごとに異なる値を設定するたびにddコマンドのオプションを設定する必要があります。
cp /dev/sda /dev/sdb
または(pv /dev/sda > /dev/sdb
プログレスバーを取得する)の方がはるかに高速です。なぜdd
ここで使用するのですか?エラーのあるディスクを処理dd
するような場合にのみ役立ちconv=sync,noerror
ますが、それでも、ddrescue
代わりに次のようなものを使用する方が理にかなっています(pv
「-E
オプション」も参照)。