Ответы:
Та же самая информация, отображаемая каждую секунду в ответе klanomath, может отображаться с помощью вашей команды. Вам просто нужно ввести controlTсимвол с клавиатуры во время dd
выполнения команды.
Нажав controlTсимвол, вы отправляете тот же SIGINFO
сигнал dd
команде, которую pkill -INFO -x dd
отправляет команда .
Начиная с coreutils 8.24, dd добавил опции статуса. Установите coreutils с Homebrew для обновления 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
dd
Сам по себе не обеспечивает индикатор выполнения. Вы можете оценить ход процесса копирования dd, добавив команду pkill -INFO .
Пример:
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 ГБ / с.
Прежде всего, установите 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
путь к изображению и diskX
идентификатор диска вашей SD-карты. Если вы хотите что-то более графическое, вы можете попробовать это:
(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
Источник: /ubuntu//a/516724/765767
Вы можете нажать Control+ tво время выполнения dd
команды или для хорошего индикатора выполнения вы можете установить pv
(pipe viewer) через Homebrew:
brew install pv
и затем выполните:
sudo dd if=disk-image.img | pv | sudo dd of=/dev/disk2
или (зная размер изображения, 16 ГБ в этом примере):
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
Это просто! Для macOS High Sierra и ниже просто запустите цикл while, и он будет работать, пока не закончится. Просто убедитесь, что сделали код ниже в другом окне:
Приведенный ниже код будет работать сразу после загрузки прошивки или в полнофункциональной ОС.
while kill -0 $PID; do $(caffeinate -t 10) $(kill - INFO $PID) echo “still copying file” “$(date)”; done
^ Чтобы поддерживать бодрствование машины (кофеина) без использования «homebrew» или инструментов, недоступных в стандартной Mac OS X, поскольку для homebrew требуется интернет и реальная ОС для его установки.
ПРИМЕЧАНИЕ . Выше необходимо заменить PID идентификатором процесса, и он будет постоянно отображать прогресс
$(...)
? Я знаю, что они вообще делают, мне просто интересно, почему вы их здесь используете?