Linux32 - Блог



LINUX32

Свобода выбирать


ArchLinux
Блог >> 2015 >> Апрель


23.04.2015

Backup с помощью Archiso




Привет всем.

В продолжение темы бэкапов хочу описать еще один способ получения резервной копии своей, установленной системы. На этот раз с помощью программы archiso. Этот способ немного сложнее и длительнее, описанного в предыдущей статье, но в результате мы получим Live iso-образ нашей системы, с помощью которого можно загрузиться для восстановления, установки, редактирования разделов жесткого диска, например, и т. д. Ну или просто посмотреть на систему.

Исходя из вики арча, archiso - это просто набор скриптов для создания Live CD/DVD/USB. Причем live-система создается с нуля: устанавливаются необходимые базовые пакеты + пакеты по желанию, настраивается необходимый минимум конфигурационных файлов и создается пользователь с настроенной домашней папкой. Это все достаточно трудоемкий и творческий процесс. Мы поступим проще, не будем создавать систему с нуля, а используем уже готовую.

Итак, в первую очередь понадобится установить сам archiso:

pacman -S archiso


Эта и все последующие команды выполнятся от рута.

На заметку: вместе с archiso по зависимости установится пакет arch-install-scripts с входящим в него скриптом arch-chroot. Он очень удобен при необходимости войти в окружение croot. Так как при его использовании необходимо только смонтировать папку в которую будет выполнен вход чрутом и все. Иначе, пришлось бы вручную монтировать еще и папки /dev, /proc, /sys. Поэтому всем советую: если нужен чрут, то можно использовать arch-install-scripts и без установки archiso.

Для создания live-iso необходимо много места на жестком диске, а лучше использовать отдельный раздел.

Для начала создаем, например, в папке /mnt необходимые нам папки:

mkdir /mnt/{root-fs,archiso}


Далее, в папку root-fs монтируем корень нашей работающей системы использую опцию bind:

mount --bind / /mnt/root-fs


А в папку /mnt/archiso копируем все из /usr/share/archiso/configs/baseline:

cp -a /usr/share/archiso/configs/baseline/* /mnt/archiso


Чтобы ваша система могла загружаться загрузчиком grub2 из iso-образа необходимо исправить скопированный в /mnt/archiso файл mkinitcpio.conf. Добавить в строку хуков:

...archiso_loop_mnt...


Также можно подправить по желанию файл build.sh: задать свои имя, метку образа и т. д.

Теперь переходим в папку /mnt/archiso и создаем в ней папку work с подпапкой airootfs:

mkdir -p work/airootfs


Далее нужно скопировать все содержимое из папки /mnt/root-fs в папку /mnt/archiso/work/airootfs. Для этого я использую консольный файловый менеджер mc, потому как при копировании он сохраняет все атрибуты файлов и ссылок (права доступа, владельца, ...), да и нагляднее в нем копировать.

Заключительный аккорд: находясь в папке /mnt/archiso выполняем следующую команду:

./build.sh -v


Все, процесс пошел. Ключ -v предоставит нам подробное логирование выполнения команды. В итоге в папке /mnt/archiso появится папка out, в которой и будет находится iso-образ нашей системы.

Далее его можно записать на CD/DVD, на флешку (с помощью dd) или загрузиться из образа напрямую с помощью grub2 (как это сделать уже отдельная история, в следующих статьях постараюсь рассказать и об этом).

На сегодня на этом все, всем всех благ.

Статья


Ваш комментарий:

Имя:
E-mail:
Код с картинки:
Комментарий:




Valeriy, 25 Июня 2015 года в 07:34, писал(а):



Что значит: Добавить в строку хуков: ...archiso_loop_mnt... Если можно, объясните более подробно
Admin, 29 Июня 2015 года в 00:16, писал(а):



Valeriy, когда скопируете все из папки /usr/share/archiso/configs/baseline/* в папку назначения, в ней будет файл mkinitcpio.conf с одной единственной строкой: HOOKS="base udev archiso block filesystems". В эту строку и нужно добавить хук archiso_loop_mnt через пробел. Например между хуками archiso и block. Получится вот так: HOOKS="base udev archiso archiso_loop_mnt block filesystems"