Pertanyaan Bagaimana cara membuat perintah dd menjadi verbose? [duplikat]


Pertanyaan ini sudah memiliki jawaban di sini:

Saya ingin membuat bootable USB dengan mengkloning gambar. Saya melakukan riset dan saya belum menemukan cara yang memuaskan untuk membuat dd memberikan umpan balik ke konsol tentang bagaimana kemajuannya.

Apakah ada cara, dibangun ke dalam perintah untuk melakukan ini, selain dari pemungutan suara PID melalui perintah ps?


26
2017-10-22 15:42


asal




Jawaban:


Jika kamu membaca man dd, itu mengarahkan Anda ke info coreutils 'dd invocation' yang mengatakan, sebagian,

Mengirimkan INFO sinyal untuk berlari dd proses membuatnya mencetak I / O statistik untuk kesalahan standar dan kemudian melanjutkan menyalin. Dalam contoh di bawah ini, dd dijalankan di latar belakang untuk menyalin 10 juta blok. Itu kill perintah membuatnya menghasilkan antara I / O statistik, dan kapan dd selesai normal atau dibunuh oleh SIGINT sinyal, itu menghasilkan statistik akhir.

 $ dd if=/dev/zero of=/dev/null count=10MB & pid=$!
 $ kill -s INFO $pid; wait $pid
 3385223+0 records in
 3385223+0 records out
 1733234176 bytes (1.7 GB) copied, 6.42173 seconds, 270 MB/s
 10000000+0 records in
 10000000+0 records out
 5120000000 bytes (5.1 GB) copied, 18.913 seconds, 271 MB/s

Pada sistem yang kurang INFO sinyal dd merespon ke USR1 sebagai gantinya, kecuali POSIXLY_CORRECT variabel lingkungan adalah set.

Anda juga dapat mencoba status=progress option:

[~]$ dd if=/dev/zero of=/dev/null count=10MB status=progress
4708234752 bytes (4.7 GB, 4.4 GiB) copied, 4 s, 1.2 GB/s
10000000+0 records in
10000000+0 records out
5120000000 bytes (5.1 GB, 4.8 GiB) copied, 4.3516 s, 1.2 GB/s
[~]$ 

27
2017-10-22 17:01



solusi yang bagus. Harap dicatat bahwa hitungan hanya untuk tujuan demonstrasi dan bagi saya MB tidak berfungsi. Ini mengharapkan angka. Juga saya tidak memiliki opsi kemajuan untuk status di dd saya. Satu baris untuk mengamati dd adalah 'sambil membunuh -0 $ pid; jangan bunuh INFO $ pid; selesai ' - ukos
status = progres mungkin adalah 99,99% dari semua orang yang mencari, tetapi membaca tentang INFO dan sinyal USR1 bagus, mengingatkan saya betapa sedikit yang saya ketahui tentang semuanya - javahaxxor


Ada beberapa solusi yang tersedia melalui pencarian google.

Dari http://www.cyberciti.biz/faq/linux-unix-dd-command-show-progress-while-coping/

(pv -n /dev/sda | dd of=/dev/sdb bs=128M conv=notrunc,noerror) 2>&1 | dialog --gauge "Running dd command (cloning), please wait..." 10 70 0

enter image description here

Anda mungkin harus menginstal dialog dan pv

sudo apt-get install pv dialog

22
2017-10-22 15:52