Установка Mageia в chroot
Введение
В этой статье пойдет речь об установке Mageia в chroot.
chroot - это изменение корневого каталога. Приложение запущенное в chroot будет иметь доступ только к файлам в chroot, если иное не было предусмотрено заранее, а конкретней, если внешняя файловая система заранее не была в chroot смонтирована.
chroot может быть полезен в качестве песочницы из соображений безопасности или для каких-либо экспериментов, для сборки пакетов в "чистом" окружении с минимальным набором установленных в системе пакетов, чтобы более точно отслеживать зависимости для сборки пакетов. Могут быть и другие применения. Данная статья подразумевает, что читатель четко понимает зачем он это делает.
Все действия с 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 и т.д. По этому распаковывать надо именно в корень, как показано в команде строчкой выше.