На этот вопрос уже есть ответ здесь:
Я хочу сделать USB загрузочным, клонировав образ. Я провел небольшое исследование и не нашел удовлетворительного способа заставить dd дать некоторую обратную связь с консолью о том, как идет прогресс.
Есть ли способ, встроенный в команду, чтобы сделать это, кроме опроса PID с помощью команды ps?
Если вы прочитаете man dd
, это отсылает вас к info coreutils 'dd invocation'
, в котором, в частности, говорится:
Посылка сигнала INFO
в работающий процесс dd
заставляет его печатать статистику ввода / вывода стандартная ошибка, а затем возобновить копирование. В приведенном ниже примере dd
выполняется в фоновом режиме для копирования 10 миллионов блоков. Команда kill
выводит промежуточную статистику ввода / вывода, а когда dd
завершается нормально или прерывается сигналом SIGINT
, она выводит окончательную статистику.
$ 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
В системах, в которых отсутствует сигнал INFO
, dd
реагирует на сигнал USR1
, если не установлена переменная среды POSIXLY_CORRECT
.
Вы также можете попробовать 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
[~]$
Есть несколько решений, доступных через поиск Google.
Из 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
Возможно, вам придется установить диалог и pv
sudo apt-get install pv dialog