CloneZilla для создания образов системного раздела

До недавнего времени для создание образов системного раздела я использовал программу R-Drive Image из загрузочной флешки Сергея Стрельца. Однако, недавно она меня подвела.

Начал устанавливать и настраивать Ubuntu на новом ноутбуке с SSD диском. Обычно делаю образ чистой системы и на каждом большом этапе, чтобы можно было легко откатиться, если что-то пойдёт не так. А тут такая проблема: R-DriveImage некорректно отображает разделы – разделы swap и ext4 дублируются два раза. Если сделать образ раздела ext4 (первого дубликата) и потом попробовать его восстановить, то пишет ошибку «Disk not locked» и дальше не идёт.

После некоторых исследований обнаружил, что если откатиться до старой версии сборки (2018.08.25), то проблема с дубликатами разделов уходит, причём даже если подставить последнюю версию R-Drive Image (build 6207). Соответственно, простая подстановка старой версии R-Drive Image (build 6206) в новой флешке не помогала. Похоже проблема где-то в загрузчике. Он и выглядит по-другому. Пробовал загружать как в режиме UEFI, так и Legacy BIOS.

Но даже после всех этих манипуляций окончательного результата не получил – создание образа занимало более 30 минут, хотя раньше (на более старом стационарном компе) обычно занимало пару минут. Но самое главное – при восстановлении такой образ подсвечивался красным и не хотел восстанавливаться.

Перебрал все остальные программы для работы с образами разделов с флешки Стрельца – пару из них смогли сделать образ с раздела ext4, но занимало несколько часов. Да и стараюсь уходить от пиратского софта в последнее время.

Вычитал про линусковые утилиты dd_rescue и ddrescue – одну не смог установить на загрузочной флешке Ubuntu, а другая сделала образ размером всего раздела, хотя ключ для опции sparse я перепроверил.

Ранее я уже пробовал CloneZilla – не понравился интерфейс пользователя: много вопросов на разных шагах и сходу не понятно как их автоматизировать. Но тут я уже решил разобраться, и не пожалел – получился отличный инструмент: размер образа маленький, делается быстро и без лишних вопросов. Правда пришлось потратить несколько часов – вроде документация и есть, но простых примеров не нашёл. Выкладываю тут итог своих исследований.

Самый простой способ создания загрузочной флешки – отформатировать её в FAT32 с меткой, например, CZILLA-USB и выполнить следующие команды (тут /media/drew/CZILLA-USB – это путь к флешке, а /dev/sdd4 – её имя устройства):

cd ~/Downloads
wget https://dotsrc.dl.osdn.net/osdn/clonezilla/71320/clonezilla-live-20190707-disco-amd64.zip
unzip ~/Downloads/clonezilla-live-20190707-disco-amd64.zip -d /media/drew/CZILLA-USB
rm ~/Downloads/clonezilla-live-20190707-disco-amd64.zip
cd /media/drew/CZILLA-USB/utils/linux
sudo bash makeboot.sh /dev/sdd4

Для того, чтобы добавить в главное меню два пункта для создания и восстановления образа в автоматическом режиме, нужно отредактировать конфигурационные файлы, в зависимости от режима загрузки (EFI или Legacy — настраивается в BIOS). Также можно отредактировать оба типа конфигурационных файлов, для универсальности.

Для режима EFI:

найти следующую строку в файле grub.cfg, который находится в директории /boot/grub:

menuentry «Clonezilla live (Default settings, VGA 800×600)»{

И добавить перед ней такой текст:

menuentry "Make partition image unattended from sda3 to /dev/sdb1/Backup/DiskImages/sdb1/03-all"{
search --set -f /live/vmlinuz
linux /live/vmlinuz boot=live config noswap nolocales edd=on nomodeset noprompt ocs_prerun="mount /dev/sdb1 /mnt" ocs_prerun1="mount --bind
/mnt/Backup/DiskImages /home/partimag/" ocs_live_run="ocs-sr -q2 -c -j2 -z1p -i 4096 -sfsck -scs -senc --batch -p reboot saveparts 03-all sda3" ocs_live_extra_param="" ocs_live_keymap="NONE" keyboard-layouts=NONE ocs_live_batch="yes" ocs_lang="en_US.UTF-8" vga=788 ip=frommedia nosplash ocs_numlk=on initrd /live/initrd.img
}
menuentry "Restore partition image unattended from  /dev/sdb1/Backup/DiskImages/sdb1/03-all to sda3"{
search --set -f /live/vmlinuz
linux /live/vmlinuz boot=live config noswap nolocales edd=on nomodeset noprompt ocs_prerun="mount /dev/sdb1 /mnt" ocs_prerun1="mount --bind /mnt/Backup/DiskImages /home/partimag/" ocs_live_run="ocs-sr -g auto -e1 auto -e2 -r -j2 -k --batch -p reboot restoreparts 03-all sda3" ocs_live_extra_param="" ocs_live_keymap="NONE" keyboard-layouts=NONE keyboard-layouts=NONE ocs_live_batch="yes" ocs_lang="en_US.UTF-8" vga=788 ip=frommedia nosplash ocs_numlk=on initrd /live/initrd.img

Этот пример для образа только одного раздела.

Для режима Legacy:

найти следующую строку в файлах isolinux.cfg (загрузка с ISO-образа) или syslinux.cfg (загрузка с USB-флешки), который находится в директории /syslinux:

MENU TITLE clonezilla.org, clonezilla.nchc.org.tw

И добавить после неё такой текст:

label Clonezilla sda to sdb1-DiskImage
MENU LABEL Make disk image unattended from sda to /dev/sdb1/DiskImage
kernel /live/vmlinuz
append initrd=/live/initrd.img boot=live config noswap nolocales edd=on nomodeset noprompt ocs_prerun="mount /dev/sdb1 /mnt" ocs_prerun1="mount --bind /mnt /home/partimag/" ocs_live_run="ocs-sr -q2 -j2 -z1p -i 4096 -sfsck -scs -senc --batch -p reboot savedisk DiskImage sda" ocs_live_extra_param="" ocs_live_keymap="NONE" keyboard-layouts=NONE ocs_live_batch="yes" ocs_lang="en_US.UTF-8" vga=788 ip=frommedia nosplash ocs_numlk=on
TEXT HELP
* Please check your params beforehand -- no more confirmations!
ENDTEXT
label Clonezilla sdb1-DiskImage to sda
MENU LABEL Restore disk image unattended from /dev/sdb1/DiskImage to sda
kernel /live/vmlinuz
append initrd=/live/initrd.img boot=live config noswap nolocales edd=on nomodeset noprompt ocs_prerun="mount /dev/sdb1 /mnt" ocs_prerun1="mount --bind /mnt /home/partimag/" ocs_live_run="ocs-sr -g auto -e1 auto -e2 -r -j2 --batch -p reboot restoredisk DiskImage sda" ocs_live_extra_param="" ocs_live_keymap="NONE" keyboard-layouts=NONE keyboard-layouts=NONE ocs_live_batch="yes" ocs_lang="en_US.UTF-8" vga=788 ip=frommedia nosplash ocs_numlk=on
TEXT HELP
* Please check your params beforehand -- no more confirmations!
ENDTEXT

Этот пример для образа всего диска.

Затем (внимательно! — переспросов не будет) подставить ваши значения во всех местах:
sda3 — восстанавливаемый раздел. Посмотреть можно командой lsblk или GUI утилитой Disks.
03-all — имя образа (директория)
/dev/sdb1 — диск для хранения образа
Backup/DiskImages — путь на диске для хранения образа
sda — диск, с которого будет делаться или восстанавливаться образ.
sd3 — диск, с которого будет делаться или восстанавливаться образ.
saveparts — команда для создания образа указанных разделов
restoreparts — команда для восстановления образа указанных разделов
-k — опция, которая отключает создание разделов на целевом диске.
savedisk — команда для создания образа всего диска
restoredisk — команда для восстановления образа всего диска

Добавить комментарий

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