Использование partclone для образов системного раздела

Andrew Buldyzhov January 3, 2020

За 20+ лет я перебрал много инструментов для работы с образами разделов: PowerQuest DriveImage, Norton Ghost, Acronis TrueImage, R-DriveImage, CloneZilla. Каждым из них пользовался довольно долго и считал хорошим инструментом, пока не находил новый.

Про мои последние изыски с CloneZilla можно почитать тут. Искать ему альтернативу я стал после того, как обнаружил, что CloneZilla не поддерживает шифрованные разделы LUKS/LVM. Точнее, можно сделать образ родительского раздела, но он будет занимать в несколько раз больше места и времени, потому как не учитывается фактически занятое место (sparse image). А поскольку я твердо решил шифровать диски на ноутбуке, то пришлось разбираться с альтернативами. В итоге, найденное решение понравилось мне больше, чем Clonezilla даже для нешифрованных разделов, и поэтому я использую его теперь всегда. Преимущества по сравнению с Clonezilla:

  • более наглядный синтаксис скриптов, удобнее указывать копируемый раздел и файл образа;
  • не нужна лишняя флешка для CloneZilla, можно обойтись одной универсальной Ubuntu Live USB;
  • быстрее работает и лучше сжимает;
  • автоматическое обновление (установка через apt install);

Нам понадобится загрузочная флешка c Linux. Ее можно сделать из дистрибутива Ubuntu с помощью программы Startup Disk Creator (sudo apt install usb-creator-gtk) или с помощью gnome-disks (он же Disks — выбрав в контектсном меню Restore partition image). Однако еще лучше просто распаковать файлы (включая скрытые) из ISO архива на флешку, отформатированную под FAT32, и установить флаги LBA и BOOT, например с помощью gparted (см. подробнее тут). Основное преимущество данного метода для нашей задачи — это возможность разместить файлы скриптов, которые запускают утилиту partclone, на этой же флешке. Дополнительное преимущество — можно записывать на эту флешку еще какие-нибудь файлы (Ubuntu занимает только 2 Гб). Но есть и недостаток — загружаться с такой флешки можно только в режиме UEFI. Режим Legacy Boot наверняка тоже можно было бы прикрутить какими-то манипуляциями, но я уже перешел полностью на UEFI, поэтому для меня не актуально.

Далее нужно создать два файла скриптов, например, createimage.sh и restoreimage.sh, и разместить их, например, в корне флешки. Вот содержимое файлов:

createimage.sh

#!/bin/sh
sudo echo 'deb http://cz.archive.ubuntu.com/ubuntu bionic main universe' > /etc/apt/sources.list.d/partclone.list
sudo apt update
sudo apt --assume-yes install partclone

partclone.ext4 -N -c -s /dev/ubuntu-vg/root | gzip -c > /media/ubuntu/d1/Backup/Driveimg/Ubuntu18_blank.gz

restoreimage.sh

#!/bin/sh
sudo echo 'deb http://cz.archive.ubuntu.com/ubuntu bionic main universe' > /etc/apt/sources.list.d/partclone.list
sudo apt update
sudo apt --assume-yes install partclone

gzip -c -d /media/ubuntu/d1/Backup/Driveimg/Ubuntu18_blank.gz | partclone.ext4 -N -r -o /dev/ubuntu-vg/root

Утилита partclone не установлена в Ubuntu Live USB по умолчанию, поэтому её приходится добавлять через apt install. Можно было бы вынести установку в отдельный скрипт, но как правило за одну сессию требуется только одно действие (либо создание, либо восстановление). В любом случае, повторное выполнение установки приведет только к одной-двум секундам задержки.
Чтобы каждый раз не устанавливать partclone, можно было бы установить Ubuntu прямо на флешку, но процедура это не простая, поэтому лучше пусть уж создание/восстановление образа будет идти на 10 секунд дольше. Так можно даже не держать отдельную флешку под Ubuntu Live USB, а делать ее быстро по необходимости.

Нужно будет заменить имена разделов и пути на ваши. При этом следут помнить, что разделы будут смонтированы в Live USB скорее всего по-другому, чем в обычной ОС. Шифрованные разделы монтируются после ввода пароля, когда кликаешь на них в Files.

Подготовка завершена. Теперь для работы с образами достаточно будет загрузиться с флешки, войти в зашированные разделы (файлы образов желательно тоже размещать на шифрованных разделах), запустить терминал (Ctrl-Alt-T) и выполнить:

sudo sh /cdrom/createimage.sh

или

sudo sh /cdrom/restoreimage.sh

Как вариант, можно отредактировать скрипты прямо из Ubuntu Live USB, сохранив результат в директории, открытой для записи, например в /home/ubuntu.

Clonezilla тоже использует partclone, но имеет ряд других наваротов. Так, например, он может сохранять и восстанавливать весь диск, таблицу разделов и т.п. Однако, проблемы с таблицей разделов очень редки, и можно в крайнем случае выполнить повторную установку ОС для её восстановления.

Однако утилиту Clonezilla, благодаря полной автоматизации и стабильности конфигурации, по-прежнему удобно использовать для сжимания дисков виртуальных машин. Для этого нужно отредактировать файл isolinux.cfg в ISO образе Clonezilla (подробнее тут и тут).

Оставьте комментарий

Ваш email не будет опубликован. Обязательные поля помечены *