Я пытаюсь создать образ Linux с выбранными пакетами.
Я пытаюсь создать пакеты, которые собираюсь использовать на ноутбуке XO, потому что на реальном оборудовании XO компиляция пакетов занимает очень много времени, если я могу собрать все нужные мне пакеты и просто прошить Изображение на XO, я могу сэкономить время и пространство.
Когда я попытался установить некоторые пакеты, его не удалось настроить из-за отсутствия каталогов proc, sys, dev. Итак, я узнал из других мест, что мне нужно «смонтировать» хост-процесс, ... каталоги в моей среде chroot.
Я видел два синтаксиса и не уверен, какой использовать.
В хост-машине:
mount --bind /proc <chroot dir>/proc
и другой синтаксис (в среде chroot):
mount -t proc none /proc
Какой я должен использовать, и в чем разница?
chroot()
'. В частности, определенные могут читать файлы за пределами своего раздела файловой системы, если вы не будете осторожны.Ответы:
Для
/proc
и/sys
, я полагаю, вы могли бы использовать любой метод. Обе они являются специальными файловыми системами, поэтому их можно воссоздавать любое количество раз (метод bind mount использует то же самое монтирование, что и хост-система, тогда как другой метод использует новое монтирование). Я всегда видел рекомендованное в руководствах крепление для крепления, поэтому я бы использовал это. Насколько я знаю, нет действительно важной разницы.Однако
/dev
обычно это монтирование tmpfs, которым управляет udev, поэтому это должна быть та же самая файловая система, что и на главном компьютере. Это означает, что вам нужно будет использовать метод bind mount.Если этот chroot будет на некоторое время, вы можете поместить эти записи в
/etc/fstab
хост-систему, чтобы упростить процесс.источник
sys
type
файловой системы ( сегодня ) больше не существует?Arch Linux вики предлагает следующие команды:
источник
--rbind
дляsys
иdev
.В Gentoo Handbook специально вызываются эти две команды для повторного монтирования / proc и / dev. Я использовал их несколько раз.
Я подозреваю, что / sys - это обычная папка, поэтому вы можете создать жесткую ссылку.
источник
В этом популярном вопросе стоит отметить, что Arch Linux создал скрипт arch-chroot ; скачать
arch-install-scripts-15-1-any.pkg.tar.xz
Это решение различных проблем, связанных как с Arch-Linux, так и с Manjaro , где я тоже успешно его использовал. Возможно, больше Архи- производных, таких как Парабола , также совместимы.
Хотя простой стандарт
chroot
во вторичную установку Manjaro не позволит вам запустить(серебряная пуля после сбоя системы), заменив строку на
позволит вам исправить вашу вторичную Arch-производную установку через
Как колдовство. Сценарий bash
arch-chroot
заботится/dev /sys /proc
и о многом другом, которое стандарт оставил в покоеchroot
.смотрите также: Использование arch-chroot
источник
Существуют и другие псевдофайловые системы и местоположения tmpfs. Это на Debian:
Это должно быть в порядке , чтобы смонтировать
usbfs
,rpc_pipefs
иdevpts
псевдо-файловые системы изнутри корня. Я не рекомендую привязываться/proc
к chroot'ам/proc
, поскольку ядро имеет концепцию пространств имен и может на самом деле помещать разные вещи в процесс chroot.Обновление: в соответствии с этим потоком списка рассылки , / sys не должен быть подключен с привязкой, особенно если процессы chroot используют свое собственное пространство имен сети.
Неправильно монтировать систему
/var
или/run
на chroot, если у chroot есть собственное пространство имен pid.источник
Самый простой способ - использовать цикл for:
источник