Подробный гайд: работа с dd и ISO-образами в Linux

Полный гайд по dd в Linux: запись ISO на флешку, создание бэкапов дисков, восстановление образов. Команды, параметры, проверка целостности и частые ошибки.

2026.04.25                  


Подробный гайд: работа с `dd` и ISO-образами в LinuxПодробный гайд: работа с `dd` и ISO-образами в Linux

ВНИМАНИЕ:

  • dd (Disk Destroyer) работает на уровне байтов. Ошибка в указании устройства приведёт к безвозвратной потере данных. Всегда перепроверяйте путь к /dev/sdX.

1. Подготовка: определяем устройство

Перед любой операцией убедитесь, что правильно идентифицировали целевой диск.

lsblk
# или
sudo fdisk -l

Пример вывода lsblk:

NAME   SIZE TYPE MOUNTPOINT
sda    480G disk 
├─sda1 512M part /boot/efi
└─sda2 479G part /
sdb     16G disk   ← ВАША ФЛЕШКА
└─sdb1  16G part   ← РАЗДЕЛ (НЕ ИСПОЛЬЗОВАТЬ для dd)

Правило:

  • dd пишется на устройство (/dev/sdb), а не на раздел (/dev/sdb1).

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

sudo umount /dev/sdb*

2. Запись ISO-образа на USB-флешку

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

sudo dd if=~/Downloads/ubuntu-24.04-desktop.iso \
          of=/dev/sdb \
          bs=4M \
          status=progress \
          conv=fsync
Параметр Назначение
if= входной файл (образ)
of= выходное устройство
bs=4M размер блока (оптимизирует скорость)
status=progress показывает прогресс в реальном времени
conv=fsync гарантирует запись всех данных из кэша на диск

После завершения выполните:

sync
sudo eject /dev/sdb

3. Создание dd-образа диска или раздела

Полный образ диска (включая MBR/GPT, таблицу разделов, загрузчик)

sudo dd if=/dev/sda of=~/backups/full_sda.img bs=4M status=progress conv=fsync

Образ конкретного раздела

sudo dd if=/dev/sda2 of=~/backups/root_partition.img bs=4M status=progress conv=fsync

Сжатие на лету (экономия места)

sudo dd if=/dev/sda bs=4M status=progress | gzip -c > ~/backups/sda.img.gz

Для восстановления сжатого образа:

  • gunzip -c ~/backups/sda.img.gz | sudo dd of=/dev/sdb bs=4M status=progress conv=fsync

4. Восстановление из dd-образа

sudo dd if=~/backups/full_sda.img of=/dev/sdb bs=4M status=progress conv=fsync

Важно:

  • Целевой диск должен быть не меньше исходного. dd копирует байт-в-байт, включая пустое пространство.

После восстановления:

sync
# Проверка файловой системы (если это раздел)
sudo fsck -f /dev/sdb1

5. Проверка целостности и безопасность

Хеш-суммы перед записью

sha256sum ~/Downloads/image.iso
# Сравните с официальным значением на сайте дистрибутива

Побайтовая проверка после записи (опционально)

sudo dd if=/dev/sdb bs=4M count=$((SIZE_IN_MB)) status=progress | sha256sum
# Сравните с sha256sum исходного ISO

(Замените SIZE_IN_MB на размер образа, например 4096 для 4 ГБ)


Когда НЕ стоит использовать dd

Задача Лучшая альтернатива
Резервное копирование файлов rsync, borg, restic, timeshift
Запись образов новичкам balenaEtcher, Ventoy, GNOME Disks, Rufus (Windows)
Работа с битыми носителями ddrescue
Клонирование с изменением размера разделов Clonezilla, partclone

dd идеален для:

  • создания загрузочных носителей, побайтовых бэкапов, восстановления загрузчиков, работы с raw-образами.

Частые ошибки и решения

Ошибка Причина Решение
dd: /dev/sdb: Permission denied Нет прав Добавьте sudo или работайте от root
Флешка не грузится Запись на раздел /dev/sdb1 вместо /dev/sdb Используйте устройство, а не раздел
Данные "потерялись" после записи Кэш не сброшен Всегда выполняйте sync или conv=fsync
Очень медленная запись Маленький bs Используйте bs=4M или bs=8M
dd завис Носитель отключился/ошибка ФС Проверьте dmesg | tail, замените кабель/порт

Краткая шпаргалка

# 1. Найти устройство
lsblk

# 2. Отмонтировать
sudo umount /dev/sdX*

# 3. Записать ISO
sudo dd if=образ.iso of=/dev/sdX bs=4M status=progress conv=fsync

# 4. Создать бэкап
sudo dd if=/dev/sdX of=образ.img bs=4M status=progress conv=fsync

# 5. Восстановить
sudo dd if=образ.img of=/dev/sdX bs=4M status=progress conv=fsync

# 6. Синхронизировать кэш
sync