Chroot/ru

Chroot (англ.Change Root - "изменение корневого каталога") - это системная утилита Unix, используемая для смены текущего корневого каталога с целью создания нового окружения, логически отдельного от основной системы. Это новое окружение также известно как "jail"("тюрьма"). Пользователь работающий внутри jail не может видеть файлы вне среды, которой они ограничены, или получить к ним доступ.

Одним из основных применений для изменения корневого каталога является создание отдельной системы Linux на основе имеющейся в целях тестирования или проверки совместимости программ. Этот механизм часто рассматривается как легковесная альтернатива виртуализации, потому что может выполняться без накладных расходов гипервизора.

Настройка окружения
При создании новой установки первым делом необходимо создать каталог для chroot, например в "/mnt/mychroot"

Если Вы хотите смонтировать существующую установку из раздела, Вы можете выполнить:

Замените DEVICE разделом с существующей установкой.

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

Распаковка системных файлов и дерева портежей для новой установки
Если Вы собираете новую установку, следующим шагом будет загрузка файла стадии stage3 и архива Portage и их последующая распаковка внутри chroot каталога. Для получения дополнительной информации по данному вопросу, пожалуйста, посмотрите разделы 5a и 5b в Gentoo Handbook.

Конфигурация
Перед тем как изменить корневую директорию нам необходимо смонтировать несколько каталогов.

Нам также необходимо скопировать основные файлы конфигурации из основной системы; не копируйте make.conf если вы используете существующую установку.

Сразу же после завершения, мы можем войти в chroot окружение.

При создании новой установки, Вы можете синхронизировать дерево портежей, чтобы убедиться что все обновлено.

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

Сценарии инициализации
Если Вам нужно часто это делать, Вы можете ускорить монтирование каталогов необходимых для chroot-а, используя следующий сценарий инициализации:

depend { need localmount need bootmisc }

start { ebegin "Mounting chroot directories" mount -o bind /dev /mnt/mychroot/dev > /dev/null & mount -t proc none /mnt/mychroot/proc > /dev/null & mount -o bind /sys /mnt/mychroot/sys > /dev/null & mount -o bind /tmp /mnt/mychroot/tmp > /dev/null & eend $? "An error occurred while mounting chroot directories" }

stop { ebegin "Unmounting chroot directories" umount -f /mnt/mychroot/dev > /dev/null & umount -f /mnt/mychroot/proc > /dev/null & umount -f /mnt/mychroot/sys > /dev/null & umount -f /mnt/mychroot/tmp > /dev/null & eend $? "An error occurred while unmounting chroot directories" } }}

Если Вы используете другой каталог или раздел, добавьте необходимые команды монтирования в start и измените /mnt/chroot если Вы используете другое название.

Смотрите также

 * Gentoo x86 Chroot Setup Guide
 * 32Bit Chroot Guide for Gentoo/AMD64