Обзор
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`