Site icon IT-блог о Linux, DevOps и серверных технологиях
Вторник, 24 марта, 2026

Как показать прогресс команды dd в Ubuntu и других дистрибутивах Linux

Как показать прогресс команды dd в Ubuntu и других дистрибутивах Linux

Команда dd — это мощный инструмент командной строки в Linux для копирования и преобразования данных между файлами и устройствами, например при создании резервных копий, записи ISO‑образов на USB‑накопители или клонировании дисков. Однако по умолчанию эта команда не показывает прогресс выполнения, что затрудняет отслеживание длительных операций копирования. Это может привести к тому, что терминал долгое время выглядит «зависшим» без какой‑либо индикации процесса.

В этом материале мы подробно разберем, как сделать прогресс копирования видимым, какие существуют методы мониторинга и когда их применять.

 

Что происходит при запуске dd без прогресса

По умолчанию команда dd запускается и молча выполняет свою работу до завершения. Он не отображает процент выполнения, текущий объем скопированных данных или скорость передачи. Только по окончании выполнения вы увидите детализацию вроде скопированных блоков, общего объема и времени, затраченного на операцию.

Такой подход удобен для автоматизации и скриптов, но неинформативен для интерактивной работы, особенно при копировании больших файлов или устройств.

 

Способы увидеть прогресс команды dd

1. Использование параметра status=progress

Самый простой и быстрый способ — добавить опцию status=progress к команде dd. Эта возможность доступна начиная с версии coreutils 8.24 и выше, которая есть в актуальных Ubuntu, Debian, Fedora и многих других дистрибутивах.

Пример команды:

sudo dd if=/path/to/input of=/path/to/output bs=4M status=progress

 

При этом dd будет периодически выводить в терминал количество байт, которые уже скопированы, сколько времени прошло и скорость записи. Это позволяет оценивать прогресс вживую во время выполнения.

 

2. Установка и использование утилиты progress

Если вы забыли указать флаг status=progress или процесс уже запущен, можно воспользоваться специальной программой progress. Эта утилита анализирует выполняющиеся процессы и показывает прогресс для dd, а также для других команд вроде cp, mv, rsync и др.

 

Как установить progress

В зависимости от дистрибутива Linux:

 

После установки просто откройте новый терминал и запустите:

progress

 

Эта команда покажет список активных задач и индикаторы прогресса. Это удобно, если вы забыли добавить флаг к уже запущенному процессу.

 

Альтернативы и дополнительные инструменты

Использование pv для визуального прогресса

Команда pv (pipe viewer) позволяет отслеживать прохождение данных через пайп, показывая скорость, процент и оставшееся время. Её можно использовать вместе с dd, если требуется более подробный прогресс‑бар.

Пример:

pv input.iso | dd of=/dev/sdb bs=4M

 

Этот способ показывает прогресс более визуально, чем стандартный вывод dd.

 

Практическое применение: создание загрузочного USB

Часто dd применяют для записи образов ISO на USB‑накопители. Без прогресса это может выглядеть так:

sudo dd if=ubuntu.iso of=/dev/sdb bs=4M

 

Терминал будет молчать, пока процесс не закончится. Добавив:

sudo dd if=ubuntu.iso of=/dev/sdb bs=4M status=progress

 

вы будете видеть, сколько мегабайт уже записано и сколько осталось, что значительно удобнее при работе с большими файлами.

 

Советы по использованию dd

 

Заключение

Понимание того, как отобразить прогресс выполнения команды dd, важно для продуктивной работы в Linux, особенно при копировании больших объемов данных. Основные методы:

  1. Добавление параметра status=progress к команде dd — самый простой способ.
  2. Использование утилиты progress для мониторинга уже запущенных процессов.
  3. Применение pv для визуального прогресса через пайп.

 

Эти решения позволяют эффективно отслеживать выполнение операций и избегать неопределенности при длительных задачах копирования.

 

Часто задаваемые вопросы

Что делает опция status=progress в команде dd?

Параметр status=progress заставляет dd периодически выводить на экран информацию о количестве данных, скорости и времени, прошедшем с начала операции копирования.

Можно ли показать прогресс уже запущенного процесса dd?

Да. Если вы не добавили status=progress, можно установить утилиту progress и выполнить её в новом терминале. Она покажет прогресс активных процессов, включая dd.

Нужна ли установка сторонних инструментов?

Для использования status=progress установка не требуется. Но для расширенного мониторинга уже запущенных задач полезно установить утилиту progress.

Что такое pv и как он помогает?

pv — это инструмент для визуального отображения прогресса передачи данных через пайп. Он показывает скорость, процент и ETA при копировании данных, в том числе с помощью dd.

Работает ли вывод прогресса в любых версиях dd?

Опция status=progress доступна начиная с версии coreutils 8.24. В более старых версиях dd такой функциональности по умолчанию нет.

Exit mobile version