Как клонировать и создать резервную копию раздела на Linux

Оглавление
- Как и зачем клонировать разделы
- Команды и примеры: dd и cat
- Проверка целостности и монтирование
- Когда dd не подходит и альтернативы
- Чек-листы и критерии приёмки
- Справочник команд и краткая шпаргалка
Как и зачем клонировать разделы
Резервное копирование раздела — способ сохранить полную копию файловой системы, загрузочной записи и метаданных. Это полезно при миграции на новый диск, восстановлении после сбоя или для создания эталонных образов. Клонирование работает на уровне блоков, поэтому не зависит от типа файловой системы.
Ключевые моменты:
- Выполняйте операцию из живой среды (Live CD/USB), чтобы раздел-источник был отмонтирован.
- Перед началом определите устройства командой lsblk или fdisk -l.
- Всегда дважды проверяйте параметры if и of — их перепутывание удалит данные источника.
Команды и примеры: dd
dd — универсальный инструмент поблочной копии. Он копирует «как есть» и полезен, когда нужна точная битовая копия.
Пример клонирования раздела /dev/sda1 в /dev/sdb1:
# dd if=/dev/sda1 of=/dev/sdb1 bs=64K conv=noerror,syncКлонирование целого диска (включая MBR/таблицу разделов):
# dd if=/dev/sdX of=/dev/sdY bs=64K conv=noerror,syncРазъяснения опций:
- if — входной файл (источник), of — выходной файл (назначение).
- noerror — продолжать при ошибках чтения вместо остановки.
- sync — дополнять блок нулями при ошибках, чтобы сохранить выравнивание.
- bs — размер блока; 64K или 128K обычно быстрее, но при ошибках чтения увеличивает размер «повреждённого» участка на выходе.
Важно: при больших bs одиночная 512‑байтная ошибка чтения «портит» весь выходной блок, поэтому для изношенных носителей лучше использовать меньший bs и/или специальные утилиты (ddrescue).
Примеры безопасного использования dd
- Проверить устройства:
# lsblk -f
# fdisk -l- Отмонтировать разделы на целевых и исходных дисках:
# umount /dev/sda1
# umount /dev/sdb1- Сделать копию и контролировать прогресс (pv или статус=progress):
# dd if=/dev/sda1 of=/dev/sdb1 bs=64K conv=noerror,sync status=progressЕсли нет status=progress в вашей версии dd, используйте pv:
# dd if=/dev/sda1 bs=64K conv=noerror,sync | pv | dd of=/dev/sdb1 bs=64KКоманда cat для клонирования
cat может копировать блочные устройства, но требует перенаправления вывода. Простой пример:
# cat /dev/sda1 > /dev/sdb1Этот способ похож на dd с маленьким bs и не предоставляет удобных опций при ошибках чтения. Для контроля прогресса используйте pv:
# pv /dev/sda1 > /dev/sdb1Примечание: cat не заполняет блоками при ошибках чтения и не имеет опций conv=noerror,sync, поэтому при повреждённых носителях предпочтительнее ddrescue.
Проверка целостности и монтирование
После завершения клонирования выполните следующие проверки:
- Смонтируйте раздел:
# mount /dev/sdb1 /mnt
# ls /mnt- Сравните контрольные суммы каталога (рекомендуется для файловых разделов):
# rsync -av --dry-run /path/to/original/ /mnt/ # быстрый визуальный контроль
# find /original -type f -exec sha256sum {} + | sort > /tmp/orig.sum
# find /mnt -type f -exec sha256sum {} + | sort > /tmp/copy.sum
# diff /tmp/orig.sum /tmp/copy.sum- Для полной битовой проверки можно сравнить устройства командой cmp (будьте осторожны при больших дисках):
# cmp -l /dev/sda1 /dev/sdb1 | headЕсли разделы совпадают, можно размонтировать /mnt и вернуть диск в рабочее состояние.
Когда dd не подходит и альтернативы
dd — не всегда лучший выбор. Примеры ситуаций и альтернатив:
- Носитель имеет физические ошибки: используйте ddrescue — она восстанавливает данные максимально, ведёт лог ошибок и повторяет попытки.
- Нужна копия только файлов (а не всей файловой системы): используйте rsync или tar — они переснимают только файлы и позволяют изменять права/владельцев.
- Нужен GUI и удобное восстановление: CloneZilla или Acronis True Image.
- Хотите клонировать только используемые блоки NTFS/EXT4: Partclone.
Краткая таблица-ориентир:
- Полная битовая копия: dd, ddrescue
- Копия файлов и прав: rsync, tar
- Простая миграция/GUI: CloneZilla, Acronis
- Повреждённые диски: ddrescue
Чек-листы по ролям
Администратор (перед операцией):
- Определить источник и цель через lsblk/fdisk.
- Сделать снимок загрузочного сектора (если важно): dd if=/dev/sda of=mbr.img bs=512 count=1
- Убедиться, что разделы отмонтированы.
- Подготовить место для логов и контрольных сумм.
Пользователь с ограниченными правами:
- Спросить администратора о правильных устройствах.
- Использовать GUI-инструмент, если доступен.
Оператор резервного копирования:
- Планировать окно обслуживания.
- Протестировать восстановление на стенде.
- Хранить несколько копий и проверять контрольные суммы.
Критерии приёмки
- Раздел монтируется на целевом носителе без ошибок.
- Содержимое директорий совпадает (проверка rsync –dry-run или контрольные суммы).
- Если клонировался загрузочный диск — система загружается с целевого носителя в тестовой среде.
- Логи операции (если использовался ddrescue) не содержат непреодолимых ошибок.
Справочник команд и шпаргалка
- Просмотр устройств: lsblk -f, fdisk -l, blkid
- Отмонтировать: umount /dev/sdXN
- Клонирование dd: dd if=/dev/sdX of=/dev/sdY bs=64K conv=noerror,sync status=progress
- Клонирование через cat: cat /dev/sdX > /dev/sdY
- Использовать pv для прогресса: pv /dev/sdX > /dev/sdY
- Проверка отличий: diff, cmp, rsync –dry-run
- Клонирование с восстановлением: ddrescue /dev/sdX /dev/sdY ddrescue.log
Быстрые советы по безопасности
- Никогда не работайте с разделами, которые находятся в состоянии монтирования с записью.
- Не используйте символические имена типа /dev/sda без понимания конфигурации — они могут поменяться при подключении USB.
- Перед массовыми операциями протестируйте процедуру на ненастоящем диске или в виртуальной машине.
Простая методология выбора инструмента
- Нужна простая и быстрая битовая копия без ошибок → dd (если носитель здоров).
- Есть физические ошибки на диске → ddrescue.
- Нужна только файловая копия с фильтрацией → rsync или tar.
- Нужен графический интерфейс и образ для развёртывания → CloneZilla или Acronis.
Decision tree
flowchart TD
A[Нужно клонировать раздел?] --> B{Носитель цел?}
B -- Да --> C{Нужна битовая копия?}
B -- Нет --> D[Использовать ddrescue]
C -- Да --> E[dd или CloneZilla]
C -- Нет --> F[rsync / tar]
E --> G[Проверить контрольные суммы]
F --> G
D --> GТестовые сценарии и приёмка
- Тест 1: Клонирование маленького раздела (например, 1 ГБ) и сравнение sha256sum всех файлов.
- Тест 2: Клонирование загрузочного диска в виртуальной машине и проверка загрузки.
- Тест 3: Клонирование при имитации ошибки чтения (используя специально подготовленный образ) и оценка поведения ddrescue.
Критерии успешного теста: данные доступны, загрузка проходит (если применимо), логи не содержат критичных непреодолимых ошибок.
Альтернативные утилиты и заметки
- CloneZilla — удобен для массового развёртывания образов, работает с Partclone.
- Acronis True Image — коммерческий продукт с GUI и встроенным планировщиком.
- Partclone — копирует только используемые блоки файловой системы.
- ddrescue — лучший выбор для восстановления с повреждённых дисков.
Сводка
Клонирование разделов в Linux — мощный инструмент для миграции и восстановления. dd подходит для точной битовой копии, но требует осторожности. Для повреждённых носителей используйте ddrescue, для копии файлов — rsync. Всегда проверяйте устройства, делайте тестовые прогоня и сравнивайте контрольные суммы.
Важно
- Никогда не перепутайте if и of.
- Делайте резервные копии перед операциями, затрагивающими данные.
Если у вас есть конкретная конфигурация дисков или непонятные ошибки, опишите оборудование и выводы lsblk/fdisk — я помогу составить последовательность действий.
Похожие материалы
Herodotus: механизм и защита Android‑трояна
Включить новое меню «Пуск» в Windows 11
Панель полей сводной таблицы в Excel — руководство
Включить новое меню «Пуск» в Windows 11
Дубликаты Диспетчера задач в Windows 11 — как исправить