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

Как использовать 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
Автор
Редакция

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

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро