монтировать dev, proc, sys в среде chroot?

<p>я пытаюсь создать образ linux с выбранными пакетами.<br> <sub>я пытаюсь создать пакеты, которые собираюсь использовать на ноутбуке xo, потому что компиляция пакетов занимает очень много времени на реальном оборудовании xo, если я могу собрать все нужные мне пакеты и просто прошить изображение на xo, я могу сэкономить время и пространство.</sub></p><p>когда я попытался установить некоторые пакеты, его не удалось настроить из-за отсутствия каталогов proc, sys, dev. итак, из других мест я узнал, что мне нужно «смонтировать» каталог host, ... каталоги в моей среде chroot.</p><p>я видел два синтаксиса и не уверен, какой использовать.</p><p>в хост-машине:</p><pre><code> mount --bind /proc <chroot dir>/proc </code></pre><p>и другой синтаксис (в среде chroot):</p><pre><code> mount -t proc none /proc </code></pre><p>какой я должен использовать, и в чем разница?</p>

<p>для <code>/proc</code> и <code>/sys</code>, я полагаю, вы можете использовать любой из этих методов. обе они являются специальными файловыми системами, поэтому их можно создавать любое количество раз (метод bind mount использует то же самое монтирование, что и система host, тогда как другой метод использует новое монтирование). я всегда видел рекомендованное в руководствах крепление для крепления, поэтому я бы использовал это. насколько я знаю, нет действительно важной разницы.</p><p>тем не менее, <code>/dev</code> обычно представляет собой монтирование tmpfs, которым управляет udev, поэтому это должна быть фактически та же файловая система, что и на хост-машине. это означает, что вам нужно будет использовать метод bind mount.</p><p>если этот chroot будет присутствовать некоторое время, вы можете поместить эти записи в <code>/etc/fstab</code> на хост-системе, чтобы упростить процесс.</p>

<p> <a href="https://wiki.archlinux.org/index.php/chroot">arch linux wiki</a> предлагает следующие команды:</p><pre><code>cd /mnt/arch # or where you are preparing the chroot dir mount -t proc proc proc/ mount -t sysfs sys sys/ mount -o bind /dev dev/ </code></pre><p>я могу подтвердить, что они работали на меня.</p>

<p> <a href="http://www.gentoo.org/doc/en/handbook/handbook-amd64.xml?full=1">gentoo handbook</a> специально вызывает эти две команды для повторного монтирования/proc и/dev. я использовал их несколько раз.</p><pre><code>mount -t proc none /mnt/chroot/proc mount -o bind /dev /mnt/chroot/dev </code></pre><p>я подозреваю, что/sys - это обычная папка, поэтому вы можете создать жесткую ссылку.</p><pre><code>ln /sys /mnt/chroot/sys </code></pre>

<p>в этом популярном вопросе стоит отметить, что arch linux создал скрипт <a href="https://www.archlinux.org/packages/extra/any/arch-install-scripts/">arch-chroot</a> ; скачать <code>arch-install-scripts-15-1-any.pkg.tar.xz</code></p><p>это решение различных проблем, связанных с<strong> arch-linux </strong>и<strong> manjaro </strong>, где я тоже успешно его использовал. возможно, больше arch -<strong> производных </strong>like<strong> parabola </strong>также совместимы.</p><p>в то время как простая стандартная <code>chroot</code> во вторичной установке manjaro не позволит вам запустить</p><pre><code>pacman --sync linux </code></pre><p>(серебряная пуля после сбоя системы), заменив строку на</p><pre><code>arch-chroot /run/media/*yourself*/manja-disk2 </code></pre><p>позволит вам исправить вашу вторичную arch-производную установку через</p><pre><code>pacman --sync linux </code></pre><p>как колдовство. скрипт bash <code>arch-chroot</code> заботится о <code>/dev /sys /proc</code> и многом другом, которые оставляют в покое стандартными <code>chroot</code>.</p><p>см. также: <a href="https://wiki.archlinux.org/index.php/change\_root#using\_arch-chroot">использование arch-chroot</a> </p>