web-dev-qa-db-ja.com

「dd」コマンドに時間がかかりすぎていますか?

ddをセットアップして、より小さなシステム40.00GBハードドライブ(/ dev/sda)をUSBリーダー(dev/sdb)を介して接続された新しいより大きな111.00GBハードドライブにクローンし、現在2時間使用しています。新しいハードドライブのアクティビティメーターは、何かを行っていることを示しています。ただし、CPUは約20%です。このことはいつ完了しますか?プロセスを再開する必要がありますか?

24
user101351

将来、pvを使用して、進行中の進行状況バーを取得する必要があります。

Sudo apt-get install pv

pvがインストールされている状態で、20GBドライブ/dev/fooを別のドライブ(20GB以上!)/dev/bazに複製するとします。

Sudo dd if=/dev/foo bs=4M | pv -s 20G | Sudo dd of=/dev/baz bs=4M

重要な注意点:bs=4M引数は、dd操作のブロックサイズを4MBに設定します。これにより、劇的に全体の速度が向上します。そして、-s 20G引数は、この操作が予想される大きさをpvに伝えるため、ETAと現在の速度を提供できます。

私はpvが大好きなので、おそらく違法であるべきです。

56
Jim Salter

SIGUSR1シグナルを送信して、コピーしたデータの量と転送速度を確認することで、その距離を確認できます。

kill -SIGUSR1 $(pidof dd)

コピーアクティビティの場合、デバイスのI/O速度によって制限されるため、CPUが完全にロードされることはないため、心配する必要はありません。

24
Colin Ian King

他の回答で示唆されているように、過去にpvと(psおよびkill)を使用しましたが、最近では、代わりにdc3ddを使用しました。処理する。

既にインストールされているかどうかを確認するには、which dc3ddを使用します。

そうでない場合は、Sudo apt-get install dc3ddでインストールできます

コマンドスイッチはddに似ています(クローン作成用ですが、ワイプはもう少し簡単です)。

あなたの場合、コマンドdc3dd if=/dev/sda of=/dev/sdbを使用します

編集:

Ubuntu 16.04以降に含まれる coreutilsパッケージ バージョン8.24+のddの最新バージョンには、ステータスパラメーターが含まれています。 ddコマンドラインにstatus=progressスイッチを追加すると、ddで同じ結果を得ることができます。

例:dd if=/dev/zero of=/dev/null count=1000 status=progress

7
Elder Geek

代わりにddrescueを使用できます。

Sudo ddrescue -v /dev/sda /dev/sdb

vは冗長を表します。

0
atmelino

同様の問題がありました。私の場合、原因は異なっていました。

ターゲットドライブは外付けハードディスクです。

ディスクがudisksおよびudisks-glueを介して自動的にマウントされた場合、cdromからhdへの転送速度は約40kB/sでした。

Hdをアンマウントし、mount経由で直接マウントすると、約2.4MB/sの転送速度が得られました。

0
Tobias