Установка Mageia в chroot

Материал из Mageia Russian Community Wiki
Перейти к: навигация, поиск

Введение

В этой статье пойдет речь об установке Mageia в chroot.

chroot - это изменение корневого каталога. Приложение запущенное в chroot будет иметь доступ только к файлам в chroot, если иное не было предусмотрено заранее, а конкретней, если внешняя файловая система заранее не была в chroot смонтирована.

chroot может быть полезен в качестве песочницы из соображений безопасности или для каких-то экспериментов, для сборки пакетов в "чистом" окружении с минимальным набором установленных в системе пакетов, чтобы более точно отслеживать зависимости для сборки пакетов. Могут быть и другие применения. Данная статья подразумевает, что читатель четко понимает зачем он это делает.

Attention-big.png
Внимание
Все действия с chroot выполняются только от root!

Создание chroot, установка и запуск системы

  • Первое, что нужно сделать, это создать каталог, где будет расположен chroot, например, /mnt/chroot
 # mkdir /mnt/chroot
  • Подключаем в будущий chroot репозиторий с пакетами
 # urpmi.addmedia --distrib --urpmi-root /mnt/chroot http://ftp.belnet.be/mageia/distrib/4/i586

В данном случае будет подключен официальный репозиторий для Mageia 4 i586, бельгийское зеркало.

  • Устанавливаем минимальный набор пакетов Mageia
 # urpmi --urpmi-root /mnt/chroot basesystem-minimal urpmi --auto

Если вам требуются какие-то дополнительные пакеты, просто допишите их в команду, либо сможете доустановить их потом

  • Сразу стоит или настроить вручную DNS, или просто скопировать /etc/resolv.conf в chroot
 # cp /etc/resolv.conf /mnt/chroot/etc/resolv.conf
  • Монтируем /proc и /dev в chroot
 # mount -o bind /proc /mnt/chroot/proc
 # mount -o bind /dev /mnt/chroot/dev
  • Выполняем смену корня
 # chroot /mnt/chroot /bin/bash -l

Вот мы и в chroot. Все дальнейшие введенные команды будут выполнены в chroot, т.е. внутри /mnt/chroot и дальше в основную систему не пролезут.

Если возникают проблемы с локалью, ругается на ошибки, можно сделать

 # export LC_ALL=C

Для выхода из chroot

 # exit

В общем, все достаточно просто.

Создание резервной копии

Иметь под рукой копию чистой системы очень удобно, потому что со временем наверняка будет установлена целая куча пакетов, каким-то экспериментам и тестам это просто будет мешать, а для сборки пакетов и вовсе желательно бы при каждой сборке иметь чистую систему с минимальным набором пакетов. По этому сразу после установки Mageia в chroot неплохо бы сделать резервную копию. Инструментов, позволяющих сделать это много, но, как по мне, в данном случае вполне хватит tar и gzip.

 # tar -czpf "Mageia4_i586.tar.gz" /mnt/chroot

В результате выполнения команды в каталоге, откуда выполнялась команда будет создан архив Mageia4_i586.tar.gz. У меня он получился размером 116 мбайт. В принципе, можете в ключах к tar'у заменить z на j, вместо gzip будет использован bz2 и сожмет примерно до 104 мбайт, т.е. пусть и немного, но меньше. Я же предпочитаю gzip и несколько лишних мегабайт меня не беспокоят.

Чтобы развернуть Mageia обратно из резервной копии в chroot

 # tar --same-owner -xpf Mageia4_i586.tar.gz -C /

Если откроете архив вручную, первый каталог, который вы увидите, будет mnt, а в нем, соответственно, chroot и т.д. По этому распаковывать надо именно в корень, как показано в команде строчкой выше.