Як можна відстежувати прогрес ДД

Я використовую наступну команду для створення завантажувальної картки SD

sudo dd bs=4m if=en_windows_10_enterprise_version_1511_x64_dvd_7224901.iso of=/dev/disk2

Чи є спосіб відстежувати прогрес?

15

6 Відповіді

Така ж інформація, що відображається кожною секундою у відповіді klanomath, може відображатися за допомогою вашої команди. Вам просто потрібно ввести символ контролів T з клавіатури під час виконання команди dd .

Натиснувши символ контролів T , ви надсилаєте той же сигнал SIGINFO команді dd , що команда < код> pkill -INFO -x dd надсилає.

20
додано
Це приємно, легше дякую вам
додано Автор Boyan, джерело

Оскільки 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    
8
додано
Не знав про coreutils, дуже зручно.
додано Автор Bemisawa, джерело
Хоча це працює, ви скасуєте збільшення швидкості за допомогою Raw Disk
додано Автор Waseem, джерело

dd itself doesn't provide a progress bar. You may estimate the progress of the dd copy process by adding a pkill -INFO command though.

Приклад:

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 Гб/с.

7
додано
Якими є апаратні специфікації машини, на якій ви виконали цю команду?
додано Автор user3439894, джерело
Було просто цікаво через висновок байтів/сек, який, до речі, насправді становить 16,8 Гб/с (закруглений), тому що це база 2, а не 10 розрахунків.
додано Автор user3439894, джерело
@ user3439894 3.5 ГГц i7 iMac. Чому?
додано Автор klanomath, джерело

По-перше, установіть диспетчер пакунків Homebrew . Потім вам потрібно встановити pv і діалогове вікно за допомогою цієї команди:

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

Source: https://askubuntu.com/a/516724/765767

2
додано

Це легко! Для MacOS High Sierra і нижче, просто запустіть цикл while, і він буде працювати до завершення. Просто переконайтеся, що код виконаний у іншому вікні:

Наведений нижче код працюватиме з коробки під час завантаження вбудованого програмного забезпечення або в повноекранній ОС

в той час як kill -0 $ PID; do $ (caffeinate -t ​​10) $ (kill - INFO $ PID) - ехо “все ще копіює файл” “$ (date)”; зроблено

Щоб тримати машину в стані сплячого (caffeinate) без використання «доморощеного» або інструментів, які не доступні в стандартній версії Mac OS X, оскільки домашній бренд вимагає інтернету і фактичної ОС для його встановлення.

NOTE: The above needs you to substitute the PID with your process ID and it will constantly show the progress

2
додано
Яка мета $ (...) ? Я знаю, що вони роблять взагалі, я просто дивуюся, чому ви використовуєте їх тут?
додано Автор Andrew Dunaway, джерело
у той час як kill -0 $ PID; caffeinate -t ​​10; kill -INFO $ PID; echo "Ще копіює файл" $ (дата); зроблено буде працювати красиво, і уникнути створення багато непотрібних (і непрофесіонала досить заплутаних) дочірня.
додано Автор Andrew Dunaway, джерело
Я також знайшов далеко утримати машину пробуджуюсь так що ви dont повертаєтеся до це sleeping та повинні постійно будити це.
додано Автор Don-Pierre Halfaway, джерело
Наведений вище сценарій говорить вам дату, дає вам статистику його копіювання і зберігає його спати кожні 10 секунд
додано Автор Don-Pierre Halfaway, джерело
Це найкраще використовувати для терміналів на Mac, коли ви не в повному обсязі операційної системи. Але в межах Firmaware/bios. Безумовно, це рішення для запам'ятовування
додано Автор Don-Pierre Halfaway, джерело
щоб видалити пробіли і викликати команду для запуску всього в одному рядку. Я впевнений, що міг би подвоїти "(" і ")", але я хотів, щоб люди бачили варіанти, доступні в непрофесійному підході
додано Автор Don-Pierre Halfaway, джерело
Абсолютно не пов'язані, але я намагаюся робити нотатки для себе, а також для широкої публіки, якщо вони переглядають речі з моєї точки зору під час пошуку. Подивіться на одне з моїх запитань CSS та будь-які вказівки щодо мови, дайте мені знати: CSS з тега стилю html у вбудований CSS "> stackoverflow.com/questions/28606101/…
додано Автор Don-Pierre Halfaway, джерело

Ви можете натиснути Контроль + t , якщо команда dd запущена, або для хорошого прогресу можна встановити pv (переглядач труб) через 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
1
додано