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

Как использовать dd для клонирования, резервного копирования и восстановления дисков в Linux

6 min read Linux Обновлено 23 Apr 2026
dd: клонирование и восстановление дисков в Linux
dd: клонирование и восстановление дисков в Linux

Фотография жёсткого диска и кабелей для резервного копирования

Введение

Когда нужно стереть, резервно скопировать или восстановить данные в Linux, выбор инструментов широкий: GParted, GNOME Disks и другие. Но где бы вы ни запускали Linux, одна утилита почти всегда доступна и надёжна — dd.

dd родилась в мире Unix и поддерживается в Linux, FreeBSD, macOS и других системах. Она копирует «как есть», то есть создаёт точную побайтовую копию раздела или целого диска. Это удобно, когда нужно сохранить не только файлы, но и структуру разделов, загрузчик и системные метаданные.

Важно: dd — мощный инструмент. Команда, клонирующая диск, выглядит очень похожей на команду, которая его уничтожит. Всегда перепроверяйте имена устройств и делайте резервные копии перед операциями записи.

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

  • Кроссплатформенность: работает в большинстве Unix-подобных ОС.
  • Полнобайтное копирование: сохраняет все данные, включая загрузчик и скрытые разделы.
  • Скорость запуска: одна команда — и процесс идёт.

Краткое определение: dd — утилита для низкоуровневого копирования блоков данных между устройствами или файлами.

Что нужно подготовить перед работой

  1. Администраторские права — используйте sudo или войдите как root с help командой su.
  2. Второй диск/накопитель с достаточным объёмом для копии.
  3. Инструмент для определения имён устройств: lsblk, fdisk -l, blkid.
  4. Отмонтируйте разделы, с которыми будете работать (umount /dev/sdXY) перед записью.

Важно: не выполняйте dd над смонтированным в режиме записи разделом — это может привести к повреждению данных.

Как найти правильные устройства

Перед любой операцией убедитесь в корректности имён дисков. Примеры команд:

lsblk
sudo fdisk -l

Результат покажет устройства вроде /dev/sda, /dev/sdb и разделы /dev/sda1 и т. д. Ошибка в букве устройства приведёт к потере данных.

Клонирование диска с помощью dd

Клонирование целиком сохраняет всю систему в текущем состоянии. Это самый надёжный способ восстановить систему «как было».

Базовая команда для поблочного клонирования диска A в диск B:

dd if=/dev/sdX of=/dev/sdY

Пояснения:

  • if — input file/device, адрес источника.
  • of — output file/device, адрес назначения.
  • /dev/sdX и /dev/sdY — имена физических дисков. Проверьте их заранее.

Пример использования с правами администратора:

sudo dd if=/dev/sda of=/dev/sdb

Примечание: команда перезапишет всё на диске назначения.

Создание образа диска

Можно создать файл-образ, который хранится на другом устройстве. Такой образ удобно переносить и архивировать.

Создать необработанный образ:

dd if=/dev/sdX of=/path/to/your-backup.img

Сжатие на лету с помощью gzip:

dd if=/dev/sdX | gzip -c > /path/to/your-backup.img.gz

Другой вариант — использовать более эффективные величины блока при копировании (см. раздел Параметры).

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

Если вы клонировали диск напрямую, просто поменяйте местами if и of:

dd if=/dev/sdY of=/dev/sdX

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

dd if=/path/to/your-backup.img of=/dev/sdX

Если образ сжат gzip:

gunzip -c /path/to/your-backup.img.gz | dd of=/dev/sdX

Заметка: gunzip распаковывает поток, а затем dd пишет его на устройство.

Если вы хотите видеть прогресс операции, добавьте параметр status=progress (в современных реализациях GNU dd):

sudo dd if=/dev/sdX of=/dev/sdY status=progress bs=4M

Альтернатива: pv — утилита для показа прогресса. Её можно вставить в конвейер, если она установлена:

dd if=/dev/sdX bs=4M | pv | dd of=/dev/sdY bs=4M

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

  • bs — размер блока ввода/вывода. По умолчанию dd читает блоки по 512 байт. Типичные значения: 64K, 1M, 4M. Увеличение bs часто ускоряет процесс на современных накопителях.
dd if=/dev/sdX of=/dev/sdY bs=4M
  • conv=noerror — продолжать работу, даже если встречаются ошибки чтения. Используйте с осторожностью: файл может получиться частично повреждённым.
  • conv=sync — дополнить блоки нулями при ошибках чтения, чтобы сохранить выравнивание данных.
  • conv=noerror,sync — сочетание двух предыдущих режимов; между параметрами не должно быть пробела.
  • status=progress — показать прогресс операции в процессе выполнения.

Важно: применять conv=noerror безопасно только если вы готовы работать с неполным или частично восстановленным содержимым.

Валидация и проверка целостности

После создания образа полезно сверить контрольную сумму, чтобы убедиться в корректности копии.

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

sha256sum /path/to/your-backup.img > /path/to/your-backup.img.sha256

Проверка контрольной суммы:

sha256sum -c /path/to/your-backup.img.sha256

Для прямого вычисления хеш-суммы с диска можно использовать комбинацию dd и sha256sum:

dd if=/dev/sdX bs=4M | sha256sum

Это позволит сравнить контрольные суммы образа и исходного диска.

Безопасность и лучшие практики

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

Рекомендации:

  • Всегда делайте резервные копии перед записью на диск.
  • Отмонтируйте файловые системы, чтобы избежать несогласованности данных.
  • Работайте с копиями, когда это возможно, а исходный диск храните отдельно.
  • Перед длительной операцией убедитесь в стабильности питания и подключении дисков.
  • Используйте status=progress или утилиту pv, чтобы оценить ход операции.

Советы по производительности

  • Увеличьте bs до 1M или 4M при работе с современными SSD/HDD; это снижает накладные расходы на операции ввода/вывода.
  • Запускать dd параллельно с другими тяжёлыми задачами ввода/вывода не рекомендуется.
  • Сжатие gzip экономит место, но добавляет нагрузку на CPU; при медленном процессоре компрессия может замедлить общий процесс.

Факт-бокс: типичные значения блоков

  • По умолчанию: 512 байт
  • Часто используемые: 64K, 1M, 4M
  • Применение: больший bs — меньше операций ввода/вывода, выше скорость при больших объёмах

Когда dd не лучший выбор

  • Вам нужно копировать отдельные файлы или индексированное резервное копирование — используйте rsync, borg или привычные GUI-инструменты.
  • Требуется копирование «вживую» с учётом изменений в файловой системе и минимальным объёмом копируемых данных — применяйте инструменты снапшотов и специализированные бекап-решения.
  • Для восстановления только пользовательских данных хватит копирования домашних папок и конфигураций, а не битовой копии всего диска.

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

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

  • Убедиться, что внешний диск подключён и имеет достаточный объём.
  • Отмонтировать разделы назначения.
  • Выполнить lsblk и дважды перепроверить имена устройств.
  • Создать образ с указанием bs и status=progress.
  • Проверить контрольную сумму образа.

Для администратора/специалиста по резервному копированию:

  • Планировать окна обслуживания для полного копирования систем.
  • Использовать bs=4M и status=progress для ускорения.
  • Включать conv=noerror,sync только при необходимости спасения данных.
  • Автоматизировать проверку контрольных сумм и ротацию образов.

Краткая шпаргалка команд

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

sudo dd if=/dev/sda of=/dev/sdb bs=4M status=progress

Создание образа и сжатие:

sudo dd if=/dev/sda bs=4M | gzip -c > /mnt/backup/sda-$(date +%F).img.gz

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

gunzip -c /mnt/backup/sda-2023-01-01.img.gz | sudo dd of=/dev/sda bs=4M status=progress

Проверка контрольной суммы образа:

sha256sum /mnt/backup/sda-2023-01-01.img.gz

Примечание: в примерах выше используется подстановка даты командой $(date +%F); она удобна для имен файлов резервных копий.

Небольшой план действий — методология быстрого клонирования

  1. Проверить устройства: lsblk.
  2. Отмонтировать все разделы назначения: sudo umount /dev/sdXY.
  3. Создать образ с подходящим bs и включить status=progress.
  4. После окончания проверить sha256sum.
  5. Хранить образ в безопасном месте и документировать его происхождение.

Небольшая диаграмма принятия решения

flowchart TD
  A[Нужно создать резервную копию?] --> B{Требуется полная копия бит в бит?}
  B -- Да --> C[Использовать dd для клонирования или создания образа]
  B -- Нет --> D[Использовать rsync, tar или специализированный бэкап]
  C --> E{Нужна сжатая копия?}
  E -- Да --> F[dd | gzip]
  E -- Нет --> G[dd -> файл или второй диск]

Краткий глоссарий

  • if — источник копирования, input file.
  • of — назначение копирования, output file.
  • bs — размер блока ввода/вывода.
  • conv — параметры конверсии при ошибках.

Заключение

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

Ключевые советы: перепроверяйте устройства, отмонтируйте разделы, используйте status=progress и храните контрольные суммы рядом с образами.

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

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

Как удалить файлы cookie на Android
Android.

Как удалить файлы cookie на Android

Создать переносное приложение на USB
Утилиты

Создать переносное приложение на USB

Chrome/Edge скрывают панель задач при максимизации — что делать
Windows

Chrome/Edge скрывают панель задач при максимизации — что делать

Скачать фото из Instagram — полное руководство
Социальные сети

Скачать фото из Instagram — полное руководство

Skype как камера наблюдения — простой способ
Безопасность

Skype как камера наблюдения — простой способ

Skype + вебкамера как недорогая охрана
Безопасность дома

Skype + вебкамера как недорогая охрана