partclone — утилита для поблочного клонирования разделов с учётом файловой системы. В отличие от dd, она читает метаданные ext4, XFS, Btrfs или NTFS и переносит только занятые блоки, поэтому образ раздела на 500 ГБ с 40 ГБ данных занимает около 40 ГБ, а не все 500. Утилита лежит в основе Clonezilla, но сама по себе удобна для скриптов и точечного восстановления. Сразу важное предупреждение: восстановление перезаписывает целевой раздел целиком, и ошибка в одной букве имени устройства уничтожает данные без возможности отмены. Перед первой операцией сделайте резервную копию и проверьте её.

Что именно копирует partclone

Программа работает на уровне блоков файловой системы, а не файлов: она сохраняет структуру каталогов, права, владельцев, расширенные атрибуты и жёсткие ссылки. Для каждой ФС существует отдельный бинарник: partclone.ext4, partclone.xfs, partclone.btrfs, partclone.ntfs, partclone.fat, partclone.exfat, partclone.f2fs. Универсальный partclone.dd копирует раздел побайтово, как dd.

partclone не переносит таблицу разделов и загрузочные сектора: это инструмент для раздела, а не для диска. Если нужно переехать на новый диск целиком, сначала создайте разметку, затем восстановите разделы по очереди и отдельно позаботьтесь о загрузчике.

Установка и состав пакета

sudo apt install partclone
ls /usr/sbin/partclone.*
partclone.ext4 --help
dpkg -L partclone | grep bin

В Fedora пакет ставится через sudo dnf install partclone, в Arch — sudo pacman -S partclone. В состав входят partclone.info для просмотра заголовка образа, partclone.chkimg для проверки целостности и partclone.restore для восстановления образа без привязки к типу ФС.

Подготовка: разметка и проверка

Сначала определите точные имена устройств. Используйте lsblk -f и blkid, а в скриптах — пути из /dev/disk/by-id/, которые не меняются при переподключении дисков.

lsblk -f
sudo blkid
findmnt /dev/nvme0n1p2
sudo e2fsck -fn /dev/nvme0n1p2

Раздел, с которого снимается образ, должен быть отмонтирован или как минимум не изменяться. Клонирование смонтированной файловой системы с активной записью даёт противоречивый образ. Для корневого раздела загрузитесь с live-носителя или используйте снимок LVM. Проверка e2fsck -fn только читает и сообщает об ошибках; исправлять их нужно отдельно и осознанно. Для NTFS важно, чтобы раздел был «чистым»: ntfsclone внутри partclone отказывается работать, если Windows оставила файл гибернации или включён быстрый запуск. Отключите быстрый запуск заранее и завершите работу Windows полностью.

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

Ключи простые: -c — клонировать, -s — источник, -o — приёмник. Флаг -d добавляет отладочный вывод, -C отключает проверку размера перед записью, -F продолжает работу при ошибках. Не отключайте проверку без необходимости: именно она не даёт записать образ на слишком маленький раздел. Для экономии места образ можно сразу сжать.

sudo umount /dev/nvme0n1p2
sudo partclone.ext4 -c -s /dev/nvme0n1p2 -o /mnt/backup/root.img
sudo partclone.ext4 -c -s /dev/nvme0n1p2 -o - | zstd -T0 -3 > /mnt/backup/root.img.zst
sha256sum /mnt/backup/root.img*

Второй вариант экономит место, но занимает процессор. После создания обязательно проверьте образ и запишите контрольную сумму в отдельный файл — она понадобится при восстановлении.

sudo partclone.chkimg -s /mnt/backup/root.img
sudo partclone.info -s /mnt/backup/root.img
sha256sum /mnt/backup/root.img | tee /mnt/backup/root.img.sha256

Восстановление

Перед восстановлением ещё раз сверьте целевое устройство. Образ, снятый с раздела 200 ГБ, нельзя восстановить на раздел 100 ГБ; на больший раздел — можно, но файловая система останется прежнего размера, и её придётся расширять.

sudo partclone.chkimg -s /mnt/backup/root.img
sudo umount /dev/nvme0n1p2
sudo partclone.ext4 -r -s /mnt/backup/root.img -o /dev/nvme0n1p2
sudo resize2fs /dev/nvme0n1p2

После восстановления проверьте ФС через e2fsck -fn, смонтируйте раздел и убедитесь, что данные на месте. Если раздел получил новый UUID, обновите /etc/fstab и переустановите загрузчик.

Тест на loop-устройстве

Хорошая практика — проверить образ до того, как трогать реальный диск. Создайте файл нужного размера, подключите его как loop-устройство и восстановите образ туда.

truncate -s 20G /mnt/backup/test.img
sudo losetup -fP /mnt/backup/test.img
sudo partclone.ext4 -r -s /mnt/backup/root.img -o /dev/loop0
sudo fsck -fn /dev/loop0

Если проверка проходит, образ с высокой вероятностью рабочий. Не забудьте отключить loop-устройство через sudo losetup -d /dev/loop0.

Чек-лист перед перезаписью

  • Целевой раздел определён по /dev/disk/by-id/, а не по похожей букве.
  • Размер цели не меньше размера источника.
  • Раздел отмонтирован, ФС проверена, образ прошёл partclone.chkimg.
  • Контрольная сумма совпадает с записанной при создании.
  • Есть отдельная резервная копия важных файлов, а не только образ.
  • Загрузочный носитель с live-системой под рукой.

partclone или dd

Сравнение простое. dd копирует всё подряд, включая пустое место, и не проверяет файловую систему; зато работает с любыми данными, включая шифрованные контейнеры и разделы без ФС. tar переносит файлы, но теряет часть атрибутов и плохо подходит для загрузочных разделов. partclone выигрывает там, где нужно снять образ большого раздела с небольшим объёмом данных и затем восстановить его на такой же носитель.

Для регулярного резервного копирования важных файлов всё же лучше специализированные инструменты: они умеют инкременты, дедупликацию и проверку. partclone — про образы разделов, а не про версии файлов.

Ограничения

partclone не копирует загрузочный сектор и таблицу разделов, не умеет работать с LUKS-контейнером как с ФС и не заменяет резервное копирование файлов. Для шифрованных разделов сначала сохраните заголовок LUKS командой cryptsetup luksHeaderBackup, а уже потом клонируйте внутреннюю ФС. Для LVM используйте снимки и dd для метаданных: образ одного логического тома не восстановит структуру группы. И помните: любой инструмент, который пишет на блочное устройство, не спрашивает подтверждения.

Итог

partclone даёт предсказуемый размер образа и аккуратно переносит атрибуты файлов, поэтому им удобно пользоваться в скриптах резервного копирования и при переносе системы на новый диск. Главное — дисциплина: точное имя устройства, отмонтированный раздел, проверенный образ и тестовое восстановление. Если сомневаетесь, сделайте сначала копию важных данных обычными средствами, а уже потом экспериментируйте с разделами.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 0 / 5. Количество оценок: 0

Оценок пока нет. Поставьте оценку первым.

Поделиться: Telegram ВКонтакте