У меня есть вопрос относительно chroot: скажем, у меня есть программа, скомпилированная и встроенная в структуру дерева корневых файлов, например:

.
├── bin
│   └── software
├── etc
...

То есть, чтобы установить это, мне нужно объединить это с рутом (/). Теперь я перенес это в chroot, но когда я пытаюсь запустить его, я получаю код ошибки 127 (такого файла нет). Есть ли что-то еще, что я должен сделать?

1 ответ1

0

Если я правильно интерпретирую то, что вы написали, я думаю, вы не совсем понимаете, что делает chroot. Если у меня есть каталог /mytemproot и я смонтирую на нем файловую систему, в которой есть каталоги: bin, etc, sbin, foo, то я мог бы:

% cd /mytemproot
% pwd
/mytemproot
% chroot /mytemproot
% pwd
/
% ls /
bin etc sbin foo

Что делает chroot, так это помещает вас в оболочку, где /mytemproot обрабатывается так, как если бы это было /. Реальный / невидим для вас, как и все другие файловые системы в реальном /. Он не объединяет файловые системы.

В прежние времена, когда простые системные администраторы использовали для создания каждого нового дистрибутива UNIX с нуля, мы создавали новый раздел на диске, помещали файловую систему в этот раздел и выполняли сборку и установку там. Затем мы куда-нибудь монтируем эту файловую систему, выполняем chroot и проверяем все, прежде чем выпустить ее пользователям. Я должен представить, что разработчики сегодня используют его почти так же.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .