Table of Contents
💾 dd: кратко и по делу#
dd — мощный инструмент низкоуровневого копирования и преобразования данных.
Используется для создания образов дисков, клонирования разделов, восстановления данных, тестирования скорости записи/чтения и работы с загрузочными USB.
📝 Топ‑20 полезных флагов dd#
if=<file>— входной файл (input file).of=<file>— выходной файл (output file).bs=<size>— размер блока (например,bs=4M).count=<n>— количество блоков для копирования.skip=<n>— пропустить N блоков во входном файле.seek=<n>— пропустить N блоков в выходном файле.status=progress— отображать прогресс выполнения.conv=noerror— продолжать при ошибках чтения.conv=sync— выравнивать блоки нулями.conv=fdatasync— синхронизировать буферы перед завершением.iflag=fullblock— считывать блоки полностью.oflag=direct— запись в обход кэша ОС.oflag=sync— синхронизированная запись каждого блока.ibs=<size>— размер блока чтения.obs=<size>— размер блока записи.conv=ucase— преобразовать текст в верхний регистр.conv=lcase— преобразовать текст в нижний регистр.conv=swab— менять байты местами (endianness).count_bytes— копировать указанное число байт вместо блоков.status=none— тихий режим без вывода.
🚀 Айсберг команд dd — от базового к гуру#
🟢 Уровень 1 — База (разогрев)#
dd if=input.img of=output.img bs=4M status=progress
- Клонирование образа файла
dd if=/dev/sda of=/dev/sdb bs=64K status=progress
- Клонирование диска на диск
dd if=/dev/zero of=file.bin bs=1M count=100
- Создать файл размером 100 МБ, заполненный нулями
dd if=/dev/urandom of=file.bin bs=1M count=10
- Создать файл 10 МБ случайных данных
dd if=/dev/cdrom of=cd.iso status=progress
- Скопировать CD/DVD в ISO-образ
🟡 Уровень 2 — Создание загрузочных USB#
dd if=debian.iso of=/dev/sdX bs=4M status=progress
- Создать загрузочную флешку
sync
- Обязательно синхронизировать буферы после записи
dd if=archlinux.iso of=/dev/sdb bs=8M oflag=direct status=progress
- Быстрая запись ISO напрямую
dd if=ventoy.iso of=/dev/sdc bs=1M conv=fdatasync status=progress
- Запись ISO с явной синхронизацией
udisksctl power-off -b /dev/sdX
- Безопасно извлечь флешку после
dd
🟠 Уровень 3 — Восстановление данных и образов#
dd if=/dev/sda of=backup.img bs=64K conv=noerror,sync
- Создать резервный образ диска с обработкой ошибок
dd if=backup.img of=/dev/sda bs=64K status=progress
- Восстановить образ обратно на диск
dd if=/dev/sdb of=/dev/null bs=4M status=progress
- Проверить диск на читаемость
dd if=/dev/sda of=recovery.img bs=512 skip=2048 count=1000
- Восстановить 1000 блоков начиная с 2048-го
dd if=/dev/zero of=/dev/sda bs=1M status=progress
- Полностью стереть диск нулями ⚠️
🔵 Уровень 4 — Тестирование скорости дисков#
dd if=/dev/zero of=testfile bs=1G count=1 oflag=dsync
- Проверить скорость записи
dd if=testfile of=/dev/null bs=1G
- Проверить скорость чтения
dd if=/dev/zero of=bigfile bs=512K count=10000 status=progress
- Тест последовательной записи
dd if=bigfile of=/dev/null bs=512K status=progress
- Тест последовательного чтения
hdparm -t /dev/sda
- Альтернатива
ddдля теста скорости
🟣 Уровень 5 — Тонкие настройки#
dd if=/dev/sda of=backup.img bs=64K iflag=fullblock status=progress
- Гарантированно считывать блоки полностью
dd if=backup.img of=/dev/sda obs=512 ibs=512
- Раздельные размеры блоков для чтения и записи
dd if=/dev/zero of=file.bin bs=1M count=100 conv=fdatasync
- Явная синхронизация данных при записи
dd if=input.img of=output.img bs=4M conv=sparse
- Создать “тонкий” образ, пропуская нули
dd if=file.txt of=upper.txt conv=ucase
- Перевести содержимое в верхний регистр
🔴 Уровень 6 — Гуру‑режим#
pv < input.img | dd of=/dev/sdX bs=4M
- Использовать
pvдля красивого прогресса
dd if=/dev/sda | gzip > backup.img.gz
- Создать сжатый резервный образ
gzip -dc backup.img.gz | dd of=/dev/sda
- Восстановить сжатый образ
dd if=/dev/sda conv=swab,noerror,sync | dd of=copy.img
- Инвертировать байты при копировании
dd if=/dev/mapper/cryptdisk of=crypt.img bs=16M status=progress
- Создать образ зашифрованного диска
🧩 Бонус — практические сценарии#
Создать загрузочную флешку:
dd if=linux.iso of=/dev/sdX bs=4M status=progress
sync
Сделать полный бэкап диска:
dd if=/dev/sda of=backup.img bs=64K conv=noerror,sync status=progress
Проверить скорость записи:
dd if=/dev/zero of=testfile bs=1G count=1 oflag=dsync
Восстановить ISO на диск:
dd if=backup.iso of=/dev/sda bs=4M status=progress
Стереть диск безвозвратно:
dd if=/dev/urandom of=/dev/sdX bs=4M status=progress