Главная > Управление пакетами и системой > dd

dd: Преобразование и копирование файлов

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

Обзор

dd, известный как сокращение от 'disk dump' или 'data duplicator', работает путем чтения и записи данных блоками. Он копирует данные из входного файла (if) в выходной файл (of), позволяя применять различные преобразования (conv) и размеры блоков (bs) в процессе.

Основные функции

  • Создание и восстановление образов дисков/разделов
  • Создание загрузочных носителей
  • Изменение размера файлов и очистка содержимого
  • Преобразование данных (например, преобразование регистра)

Основные опции

Команда dd позволяет выполнять точные манипуляции с данными с помощью различных опций. Особенно важны указание входного (if) и выходного (of) файлов, а также управление диапазоном операций с помощью размера блока (bs) и количества копируемых блоков (count).

Указание ввода/вывода

Размер и количество блоков

Преобразование и статус

Сгенерированная команда:

Комбинируйте команды.

Описание:

`dd` Запускает команду.

Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.

Примеры использования

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

Создание файла-заполнителя размером 100 МБ

dd if=/dev/zero of=dummy.img bs=1M count=100

Чтение 100 блоков по 1 МБ из /dev/zero и создание файла 'dummy.img'.

Резервное копирование раздела диска (требуется осторожность)

dd if=/dev/sda1 of=sda1_backup.img bs=4M status=progress

Резервное копирование всего содержимого раздела /dev/sda1 в файл 'sda1_backup.img'. Опция 'status=progress' отображает ход выполнения. **Очень внимательно проверьте путь к целевому устройству.**

Заполнение содержимого файла нулями (безопасное удаление)

dd if=/dev/zero of=myfile.txt bs=1M count=1 conv=notrunc

Перезапись содержимого существующего файла 'myfile.txt' нулями. Опция 'conv=notrunc' сохраняет размер файла.

Создание загрузочного USB-накопителя из ISO-образа (очень осторожно)

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

Копирование файла 'ubuntu.iso' на USB-накопитель '/dev/sdb', чтобы сделать его загрузочным. **Обязательно проверьте путь к устройству, указанный в 'of'. Неправильное указание может повредить системный диск.** Опция 'conv=fsync' гарантирует полную запись всех данных на диск.

Копирование части файла

dd if=input.txt of=output.txt bs=1 count=100 skip=50 seek=0

Чтение 100 байт, начиная с 51-го байта файла 'input.txt', и копирование их в начало файла 'output.txt'. (Поскольку bs=1, skip/seek указываются в байтах)

Советы и предостережения

Команда dd очень мощная, поэтому при ее использовании требуется особая осторожность. В частности, указание неправильных устройств или файлов в опциях `if` и `of` может привести к повреждению системных данных.

Основные предостережения

  • **Проверка назначения**: Несколько раз проверьте пути, указанные в `if` и `of`. Особенно опасными могут быть файлы устройств, такие как `/dev/sda`.
  • **Ход выполнения**: Используйте опцию `status=progress` для отслеживания хода выполнения в реальном времени. Это полезно при работе с большими объемами данных.
  • **Размер блока**: Опция `bs` сильно влияет на производительность. Обычно 1M, 4M, 8M являются эффективными.
  • **Риск потери данных**: `dd` может перезаписывать данные без предупреждения, поэтому перед использованием на дисках или разделах с важными данными обязательно выполните резервное копирование.

Использование с командой pv

Сама команда `dd` имеет ограниченные возможности отображения прогресса. Использование команды `pv` (Pipe Viewer) позволяет получать более подробную информацию о прогрессе, скорости передачи и предполагаемом времени завершения. Если `pv` не установлен, его необходимо установить в первую очередь. (например, `sudo apt install pv` или `sudo yum install pv`) **Пример использования:** `dd if=/dev/sda | pv -pteb | dd of=/dev/sdb`


Те же команды в категории