あるハードドライブを同じサイズの別のハードドライブにコピーしたいと思います。
私は簡単に次のことができることを知っています。
dd if=/dev/sda of=/dev/sdb
(またはドライブ名が何であれ/dev
)。
視覚的な進行状況を示すためのより良いツールはありますか? 30GBドライブのみを使用している場合は、30GBまたはドライブ容量を転送するのに同じ時間がかかりますか?
答え1
dd
GNUに進捗状況を表示するよう依頼することができます - 引用マニュアルページ:
実行中の「dd」プロセスにUSR1シグナルを送信し、I / O統計を標準エラーとして印刷してからレプリケーションを再開します。
$ dd if=/dev/zero of=/dev/null& pid=$!
$ kill -USR1 $pid; sleep 1; kill $pid
ヒリーdd
(SDD)には同様のオプションがあり、Ctrl+\
デフォルトでSIGQUIT()を使用します。
2番目の質問については、はい、dd
すべてのブロックをコピーします(ファイルシステムが使用されているかどうかに応じて)。 DEVICE_CAPACITY/TRANSFER_RATE秒かかります。
未使用のディスクブロックをコピーしたくない場合は、次のものを使用できますtar
。
# cd /mnt/sda
# tar -c -f - . | tar -C /mnt/sdb -x -f -
GNUにはtar
タイミングオプションもあります。
# tar -c -f - . --totals=SIGQUIT | tar -C /mnt/sdb -x -f - \
--totals --totals=SIGQUIT
Ctrl+\
したがって、ヒットおよび終了時に読み取り/書き込み統計を取得できます。
もう1つの可能性は、以下を使用することです。parted
またはgparted
ファイルシステムのコピーの場合 - 十分な知識を持つファイルシステムを使用して効率的な方法で実行する必要があります。少なくともgparted
クールなグラフィック進行ダイアログボックスが表示されます。
答え2
ddrescue /dev/sda /dev/sdb
たぶんエラーをサポートし、進行状況バーを表示するために使用することができます。
答え3
私はこのpv
プログラムを使用することをお勧めします(私が知っているすべてのディストリビューションのリポジトリにあります)。素晴らしい進行状況バーが表示されます。
$dd if=/dev/sda |pv -s 80g |dd of=/dev/sdb
-s
コピーする生のパーティション/ディスクの数を追加できます(if
ddコマンドから)。パラメータを入力しないと、-s
データが移動中であることを示す移動バーのみが提供されますが、どの程度移動するかはわかりません。
もちろんsudo
、必要に応じて追加することもできます。