Что такое dd?
dd известен как сокращение от 'Data Description' или 'Disk Dump'. В отличие от обычного копирования (`cp`), он используется для непосредственной работы с аппаратными устройствами (дисками, USB) или для побитового копирования исходных данных.
Ключевая структура синтаксиса
Используется в формате `ключ=значение` без дефиса перед опциями.
- if (Input File): Объект ввода. (Исходный файл, ISO-образ, устройство диска для чтения и т.д.)
- of (Output File): Объект вывода. (Место для копирования, USB-устройство, файл резервной копии и т.д.) **Это самая важная опция, требующая особого внимания.**
- bs (Block Size): Размер данных для чтения и записи за один раз. (Например: 4M, 1G). Влияет на скорость.
⚠️ Внимание: Обязательно проверьте перед использованием
Если вы случайно укажете системный жесткий диск в `of=` (объект вывода), операционная система и данные будут мгновенно уничтожены. Обязательно проверьте путь к устройству (например, `/dev/sdb`) с помощью команды `lsblk`.
Основные опции (Shell)
Порядок опций в dd не имеет значения, но обычно их пишут в следующем порядке: `if` > `of` > `bs` > `status`.
1. Указание ввода-вывода (обязательно)
2. Контроль размера и скорости
3. Преобразование и управление данными
Сгенерированная команда:
Комбинируйте команды.
Описание:
`dd` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Примеры сценариев использования
Часто используемые шаблоны команды dd на практике.
Создание загрузочного USB
sudo dd if=ubuntu-22.04.iso of=/dev/sdb bs=4M status=progress
Записывает ISO-файл на USB-устройство (предполагается `/dev/sdb`). `bs=4M` используется для повышения скорости.
Полное резервное копирование диска (создание образа)
sudo dd if=/dev/sda of=~/backup.img bs=64K status=progress
Создает файл `backup.img` из всего диска `/dev/sda`.
Полное стирание диска (Wiping)
sudo dd if=/dev/urandom of=/dev/sdX bs=1M status=progress
Перезаписывает диск (`/dev/sdX`) случайными данными, делая восстановление невозможным.
Создание пустого файла заданного размера
dd if=/dev/zero of=testfile_1GB bs=1G count=1
Создает пустой файл размером 1 ГБ (заполненный нулями) для тестирования.
Советы и меры предосторожности
Полезные советы
- Права sudo: При работе с аппаратными устройствами (/dev/...) обязательно требуются права `sudo`.
- /dev/zero и /dev/urandom: `if=/dev/zero` бесконечно выводит нули, а `if=/dev/urandom` бесконечно выводит случайные данные — это специальные файлы.
- Поиск USB-устройства: Перед и после подключения USB введите команду `lsblk`, чтобы точно определить имя нового устройства (например, sdb, sdc).