Гид по технологиям

Как клонировать, создавать образ и восстанавливать диск в Linux с помощью dd

6 min read Linux Обновлено 30 Dec 2025
Клонирование и восстановление дисков в Linux с dd
Клонирование и восстановление дисков в Linux с dd

Командная строка и дисковые устройства в Linux

К чему это руководство

Это пошаговое руководство объясняет, как использовать dd для:

  • побитового клонирования диска;
  • создания и сжатия образа диска;
  • восстановления диска из образа.

Кому полезно: десктопным пользователям, администраторам и техникам, которым нужно переносить или резервировать полные состояния системы.

Важно: dd выполняет операции на низком уровне. Одна неверная буква в пути устройства может привести к потере данных.

Что такое dd (в двух словах)

dd — классическая Unix-утилита для копирования и преобразования данных на побитовом уровне. if — входной файл/устройство (input file), of — выходной файл/устройство (output file). bs задаёт размер блока при чтении/записи.

Почему использовать dd

  • Работает во всех Unix-подобных системах (Linux, FreeBSD, macOS).
  • Создаёт точные побитовые копии: сохраняются файлы, установки, загрузчик и таблицы разделов.
  • Не требует графического интерфейса — удобно на серверах или при аварийном восстановлении.

Когда dd — не лучшая опция: если вы хотите копировать только файлы (а не пустые области) или экономить место без создания полного побитового образа, рассмотрите rsync, partclone или файловые резервные копии.

Подготовка и базовая безопасность

  1. Подключите целевой диск и убедитесь, что он виден системе.
  2. Запустите в терминале:
lsblk --output NAME,SIZE,TYPE,MOUNTPOINT
# или
sudo fdisk -l
  1. Определите, какой путь соответствует источнику и цели (например, /dev/sda и /dev/sdb). Никогда не применяйте команды, не перепроверив эти имена.
  2. Отмонтируйте смонтированные разделы целевого и исходного диска перед операцией:
sudo umount /dev/sdX1
  1. Сделайте контрольную сумму важной персональной информации, если нужно сохранить отдельные файлы.

Важно: используйте sudo или root для всех операций с дисками.

Клонирование всего диска

Побитовое клонирование диска на диск (источник -> цель):

sudo dd if=/dev/sdX of=/dev/sdY bs=4M status=progress conv=noerror,sync

Пояснения:

  • if=/dev/sdX — исходный диск (замените sdX на реальный путь);
  • of=/dev/sdY — целевой диск (всё на нём будет перезаписано);
  • bs=4M — размер блока 4 мегабайта (обычный выбор для скорости и стабильности);
  • status=progress — показывает прогресс выполнения (в современных версиях dd);
  • conv=noerror,sync — продолжать при чтении с ошибками и выравнивать блоки нулями.

Примечание: bs задаётся с суффиксами K, M, G (например, 64K, 4M). bs=64 задаст 64 байта — не то, что ожидают многие пользователи.

Создание образа диска в файл

Если вы хотите сохранить образ на другой носитель в виде файла .img:

sudo dd if=/dev/sdX of=/path/to/backup.img bs=4M status=progress conv=noerror,sync

Чтобы сохранить пространство, можно сжимать образ «на лету»:

sudo dd if=/dev/sdX bs=4M conv=noerror,sync | gzip -c > /path/to/backup.img.gz

Или использовать более быстрый компрессор (если доступен) например pigz:

sudo dd if=/dev/sdX bs=4M conv=noerror,sync | pigz -c > /path/to/backup.img.gz

После создания образа сделайте контрольную сумму:

sha256sum /path/to/backup.img.gz > /path/to/backup.img.gz.sha256

Восстановление из образа или клона

Вариант A — если вы клонировали диск напрямую (swap):

sudo dd if=/dev/sdY of=/dev/sdX bs=4M status=progress conv=noerror,sync

Вариант B — восстановление из файла .img:

sudo dd if=/path/to/backup.img of=/dev/sdX bs=4M status=progress conv=noerror,sync

Если образ был сжат (.img.gz):

gunzip -c /path/to/backup.img.gz | sudo dd of=/dev/sdX bs=4M status=progress conv=noerror,sync

Или с pv, чтобы отслеживать скорость и время:

pv /path/to/backup.img.gz | gunzip -c | sudo dd of=/dev/sdX bs=4M conv=noerror,sync

Параметры dd, которые стоит знать

  • bs=SIZE — размер блока (например, 64K, 1M, 4M). Большие значения обычно ускоряют копирование.
  • count=NUM — количество блоков для копирования (полезно при частичных копиях).
  • skip=NUM — пропустить NUM блоков во входном файле (можно начать копирование с оффсета).
  • seek=NUM — пропустить NUM блоков в выходном файле перед записью.
  • conv=noerror — не останавливать при ошибках чтения.
  • conv=sync — заполнять недостающие байты нулями при ошибках чтения.
  • status=progress — вывод прогресса (если поддерживается вашей версией dd).
  • oflag=direct — попытаться записывать напрямую в устройство, минуя кэш ОС (в некоторых сценариях улучшает корректность).

Комбинация, часто используемая в полевых задачах:

sudo dd if=/dev/sdX of=/dev/sdY bs=4M status=progress conv=noerror,sync oflag=direct

Проверка образа и валидация

  1. Контрольные суммы (sha256sum) образа/файлов.
  2. Монтирование образа локально для выборочной проверки:
sudo losetup -fP /path/to/backup.img    # подключает образ как loop-устройство
sudo mount /dev/loop0p1 /mnt/check      # если есть разделы
  1. Попробуйте загрузиться с восстановленного диска в безопасной среде (если это возможно).

Когда dd не подходит (примеры и причины)

  • Нужны инкрементальные или дифф-резервные копии — используйте rsync или специализированные решения;
  • Требуется копирование только файловой структуры, без пустого пространства — используйте tar/rsync/partclone;
  • Файловая система повреждена и требуется восстановление на уровне файловой системы — рассмотрите инструменты fsck, testdisk.

Альтернативные инструменты

  • Clonezilla — удобна для массового клонирования и имеет поддержку GUI/TTY;
  • GParted / GNOME Disks — удобные GUI-инструменты для разделов и простых операций;
  • partclone — копирует только используемые блоки и может экономить место;
  • rsync — для копирования файлов и поддержания актуальности данных;
  • ddrescue — для восстановления с повреждённых носителей (лучше при наличии ошибок чтения).

Мини-методология: как выполнить безопасное клонирование (коротко)

  1. Подготовка: резервное копирование критичных данных в другое место;
  2. Проверка идентификаторов: lsblk, fdisk -l;
  3. Отмонтирование разделов;
  4. Выполнение dd с параметрами bs=4M status=progress conv=noerror,sync;
  5. Проверка контрольной суммы и тестовая загрузка.

Чек-листы по ролям

Администратор:

  • Проверить журналы SMART на исходном и целевом диске;
  • Выполнить dd в теле maintenance-окна;
  • Обновить инвентарный список и SHA256 хеш.

Десктоп-пользователь:

  • Сделать резервную копию важных документов отдельно;
  • Убедиться, что целевой диск имеет достаточный объём;
  • Проверить команды дважды перед выполнением.

Техник на выезде:

  • Наличие заведомо исправного кабеля/контроллера;
  • Если диск повреждён, использовать ddrescue вместо dd;
  • Проверить лог загрузки после восстановления.

SOP: пошаговый сценарий клонирования (короткий шаблон)

  1. Подключить диск-источник и диск-цель.
  2. Проверить имена устройств: sudo lsblk.
  3. Отмонтировать все разделы: sudo umount /dev/sdX*
  4. Выполнить копирование:
sudo dd if=/dev/sdX of=/dev/sdY bs=4M status=progress conv=noerror,sync oflag=direct
  1. Подтвердить успешность через dmesg и проверку разделов: sudo fdisk -l /dev/sdY
  2. Создать контрольную сумму: sudo sha256sum /dev/sdY | tee /path/to/sdY.sha256

Критерии приёмки

  • Образ или диск полностью записан без критических ошибок;
  • Контрольная сумма совпадает с опорной (если она была создана);
  • Восстановленная система загружается и приложения запускаются (если применимо);
  • Важные файлы присутствуют и читаются корректно.

Тесты и проверка (acceptance)

  • Тест 1: проверить структуру разделов (fdisk -l) после клонирования;
  • Тест 2: смонтировать раздел и прочитать несколько файлов;
  • Тест 3: сравнить контрольные суммы образа и целевого диска.

Типичные ошибки и как их решать

  • Неправильный путь устройства (/dev/sdX) — всегда перепроверяйте lsblk;
  • dd выполняется от пользователя без прав — используйте sudo;
  • Очень медленное копирование — попробуйте увеличить bs до 8M или 16M, либо используйте oflag=direct;
  • Повреждённые сектора — используйте conv=noerror,sync или ddrescue для попытки спасения данных.

Соображения по безопасности и конфиденциальности

  • Образы содержат все данные целиком — храните их в зашифрованном виде (LUKS, VeraCrypt или хранение в зашифрованном хранилище);
  • Удаление старых образов — корректно затирайте носители перед списанием (shred, wipe).

Советы по переходу между системами и совместимости

  • При клонировании на диск меньшего объёма либо используйте инструмент, который копирует только используемые блоки, либо заранее уменьшите разделы/ФС (resize), чтобы вместиться;
  • При переносе между разными контроллерами SATA/USB проверьте, что загрузочная конфигурация поддерживает целевой контроллер (иногда нужны обновления fstab или grub-install).

Быстрый справочник команд

  • Просмотр дисков: lsblk, sudo fdisk -l
  • Базовое клонирование: sudo dd if=/dev/sdX of=/dev/sdY bs=4M status=progress conv=noerror,sync
  • Создание сжатого образа: sudo dd if=/dev/sdX bs=4M conv=noerror,sync | gzip -c > /path/backup.img.gz
  • Восстановление из сжатого образа: gunzip -c /path/backup.img.gz | sudo dd of=/dev/sdX bs=4M status=progress conv=noerror,sync
  • Проверка хеша: sha256sum /path/backup.img.gz

Краткое резюме

dd — мощный инструмент для полного клонирования и восстановления дисков в Linux. Он прост по сути, но опасен при небрежном применении. Используйте большие значения bs для скорости, status=progress для контроля, conv=noerror,sync при повреждениях и всегда проверяйте идентификаторы устройств и контрольные суммы.

Важно: если вам нужно экономить место или выполнять инкременты, рассматривайте альтернативы (rsync, partclone, Clonezilla). Если диск повреждён физически, ddrescue часто даёт лучшие результаты.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как купить V‑Bucks на PS5 — быстрое руководство
Игры

Как купить V‑Bucks на PS5 — быстрое руководство

Memory Saver и Energy Saver в Chrome — как экономят RAM и батарею
Браузеры

Memory Saver и Energy Saver в Chrome — как экономят RAM и батарею

Мотивация с Google Календарём
Продуктивность

Мотивация с Google Календарём

Включить визуализацию звуков в Fortnite
Игры

Включить визуализацию звуков в Fortnite

Как слушать подкасты на Amazon Echo
Подкасты

Как слушать подкасты на Amazon Echo

Добавить адрес дома в HomeKit
Умный дом

Добавить адрес дома в HomeKit