ddの進行状況を追跡するにはどうすればよいですか


回答:


57

klanomathの回答で毎秒表示される同じ情報は、コマンドを使用して表示できます。コマンドの実行controlT中にキーボードから文字を入力するだけですdd

controlT文字を押すと、コマンドが送信SIGINFOするddコマンドに同じ信号をpkill -INFO -x dd送信します。


25

coreutils 8.24の時点で、ddはステータスオプションを追加しました。Homebrewでcoreutilsをインストールして、ddを更新します。

brew install coreutils
# All commands have been installed with the prefix 'g'
sudo gdd if=XXXX.iso of=/dev/diskX bs=1 status=progress 

> example:
> 139648967 bytes (140 MB, 133 MiB) copied, 304 s, 459 kB/s    

3
coreutilsについて知らなかった、非常に便利。
スティーブランバート

1
これは機能しますが、Rawディスク
eyoung100

8

ddそれ自体はプログレスバーを提供しません。ただし、pkill -INFOコマンドを追加することで、ddコピープロセスの進行状況を推定できます。

例:

dd if=/dev/zero of=/dev/null bs=64m count=1000 & while pkill -INFO -x dd; do sleep 1; done

結果:

[1] 37691
0+0 records in
0+0 records out
0 bytes transferred in 0.028923 secs (0 bytes/sec)
275+0 records in
275+0 records out
18454937600 bytes transferred in 1.029698 secs (17922667819 bytes/sec)
553+0 records in
553+0 records out
37111201792 bytes transferred in 2.048291 secs (18118129881 bytes/sec)
829+0 records in
829+0 records out
55633248256 bytes transferred in 3.068911 secs (18128009214 bytes/sec)
1000+0 records in
1000+0 records out
67108864000 bytes transferred in 3.720346 secs (18038339571 bytes/sec)
[1]+  Done                    dd if=/dev/zero of=/dev/null bs=64m count=1000

これは、なんと18.1 GB / sに相当します。


そのコマンドを実行したマシンのハードウェア仕様は何ですか?
user3439894

@ user3439894 3.5 GHz i7 iMac。どうして?
クラノマス

好奇心sec盛だったのは、バイト/秒の出力であり、実際は16.8 GB / s(切り上げ)であるため、10を基数とする計算ではなく2を基数としています。
user3439894

5

まず、Homebrew Package Managerをインストールします。次に、次のコマンドpvを使用dialogしてインストールする必要があります。

brew install pv dialog

次に、このコマンドを実行して、コマンドで進行状況バーを取得できます。

dd if=disk.img bs=1m | pv disk.img | dd of=/dev/diskX bs=1m

ただしdisk.img、画像へのパスとdiskXSDカードのディスク識別子に置き換えてください。よりグラフィカルなものが必要な場合は、これを試すことができます:

(dd if=disk.img bs=1m | pv -n disk.img | dd of=/dev/diskX bs=1m conv=notrunc,noerror) 2>&1 | dialog --gauge "Writing image to SD card..." 10 70 0

ソース:https : //askubuntu.com/a/516724/765767


3

あなたは押すことができますControl+をtしながら、ddコマンドが実行されているか、素敵なプログレスバーのためにインストールすることができpv自作を経由して(パイプビューア):

brew install pv

次に実行します:

sudo dd if=disk-image.img | pv | sudo dd of=/dev/disk2

または(画像のサイズを知っている、この例では16GB):

dd if=disk-image.img | pv -s 16G | dd of=/dev/disk2


出力例2:

(データ転送、経過時間、速度、進行状況バー、および推定時間):

    1.61GiB 0:12:19 [2.82MiB/s] [===>                 ] 10% ETA 1:50:25

2

それは簡単だ!macOS High Sierra以前の場合は、whileループを実行するだけで、完了するまで実行されます。別のウィンドウで次のコードを実行してください:

以下のコードは、ファームウェアブート中または完全なOS内でそのまま動作します

while kill -0 $PID; do $(caffeinate -t 10) $(kill - INFO $PID) echo “still copying file” “$(date)”; done

^ homebrewにはインターネットと実際のOSをインストールする必要があるため、「homebrew」や標準のMac OS Xでは使用できないツールを使用せずにマシンを起動(カフェイン)する。

注:上記では、PIDをプロセスIDに置き換える必要があり、常に進行状況が表示されます


また、マシンをスリープ状態に戻さずに、常にスリープ状態を解除する必要がないように、マシンをスリープ状態にしないようにしました。
ドンピエールハーフアウェイ

上記のスクリプトは日付を示し、コピーの状態を示し、10秒ごとに目を覚まし続けます
ドンピエールハーフアウェイ

フルブローオペレーティングシステムを使用していない場合、Macのターミナルに最適です。しかし、Firmaware / bios内。間違いなく覚えておくべき解決策
ドンピエールハーフアウェイ

の目的は何$(...)ですか?私は彼らが一般的に何をしているのかを知っています、なぜあなたはここでそれらを使用しているのだろうか?
nohillside

スペースをエスケープし、コマンドをすべて1行で実行します。「(」と「)」を2倍にすることができると確信していますが、素人のアプローチで利用可能なオプションを人々に見てほしかった
Don-Pierre Halfaway
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.