سؤال جبل ديف ، بروك ، تميز الكلية في بيئة chroot؟


أحاول إنشاء صورة Linux مع الحزم المخصصة المختارة.
ما أحاول القيام به هو تقديم الحِزمات اليدوية التي سأستخدمها على كمبيوتر محمول XO ، لأن تجميع الحزم يستغرق وقتًا طويلاً بالفعل على أجهزة XO الحقيقية ، إذا كان بإمكاني إنشاء كل الحزم التي احتاجها ، الصورة إلى XO ، يمكنني توفير الوقت والمساحة.

عندما حاولت تثبيت بعض الحزم ، فشلت في التهيئة بسبب عدم وجود أدلة proc و sys و dev. لذلك ، تعلمت من أماكن أخرى أنني بحاجة إلى "جبل" المضيف ، ... الدلائل على بيئة chroot بلدي.

رأيت بنائين وأنا لست متأكدا أي واحد لاستخدامها.

في الجهاز المضيف:

  mount --bind /proc <chroot dir>/proc 

وبناء آخر (في بيئة chroot):

  mount -t proc none /proc

أي واحد يجب أن أستخدمه ، وما هو الفرق؟


74
2017-07-18 19:06


الأصل


كن حذرا: منح الوصول إلى أجهزة القرص يعني أنك تفقد بعض فوائد "chroot()". على وجه الخصوص ، يمكن للعزيمة قراءة الملفات خارج قسمها من نظام الملفات إذا لم تكن حذراً. - Jonathan Leffler
@ جوناثان ليفلر: هذا لا يبدو وكأنه مشكلة لما يقوم به. - Zifre
JonathanLeffler يمكن للمستخدم الجذري في chroot دائما الهروب من chroot على أي حال. - LtWorf


الأجوبة:


إلى عن على /proc و /sys، أعتقد أنه يمكنك استخدام أي من الطريقتين. كلاهما نظام ملفات خاص بحيث يمكن إعادة إنشائها أي عدد من المرات (تستخدم طريقة ربط التثبيت نفس التركيب مثل النظام المضيف ، بينما تستخدم الطريقة الأخرى تثبيتًا جديدًا). لقد رأيت دائمًا ربط الربط الموصى به في الأدلة ، لذلك سأستخدم ذلك. بقدر ما أعرف ، لا يوجد فرق حقيقي مهم.

ومع ذلك، /dev عادةً ما يكون tmpfs mount الذي تتم إدارته بواسطة udev ، لذلك يجب أن يكون نظام الملفات الفعلي نفسه على الجهاز المضيف. وهذا يعني أنك ستحتاج إلى استخدام طريقة ربط التثبيت.

إذا كانت هذه chroot ستكون موجودة لفترة من الوقت ، يمكنك وضع هذه الإدخالات في /etc/fstab على النظام المضيف لتبسيط الأمور.


42
2017-07-19 01:02



أود أن أسأل ما إذا كان من المنطقي نسخ (ربط) proc / sys من المضيف إلى جهاز آخر؟ لماذا يجب أن تتطابق مع هذا الجهاز؟ - ransh
@ يرون أنه يجعل الأمر حساس إذا كنت ربط / proc إلى chrootdir / proc ، سيكون لديك إمكانية التعامل مع proccess وما يحدث في الداخل / proc من كلا النظامين من كلا النظامين ؛ على سبيل المثال: من chroot ، يمكنك التحقق مما إذا كان هناك برنامج يعمل على المضيف ... إلخ - Jonas
ربما sys  type من نظام الملفات يظهر (اليوم) لعدم وجود بعد الآن؟ - uprego


يقترح Arch Linux Wiki الأوامر التالية:

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/

أستطيع أن أؤكد أنهم يعملون لدي.


93
2018-04-26 06:10



ويبدو أنهم يعملون لي في أوبونتو. - isaaclw
في حالتي (أيضا أوبونتو) كنت أحتاج إلى "ربط ربط / dev / pts dev / pts" ، أيضا. - Thomas


ال دليل جنتو على وجه التحديد يدعو هذين الأمرين لإعادة تركيب / بروك و / ديف. لقد استخدمتها عدة مرات.

mount -t proc none /mnt/chroot/proc
mount -o bind /dev /mnt/chroot/dev

أعتقد / sys هو مجلد عادي فقط ، لذلك يجب أن تكون قادراً على إنشاء ارتباط ثابت.

ln /sys /mnt/chroot/sys

9
2017-07-19 00:05



لا يمكنك ربط أحد الأدلة (عادةً) كما تقترح / sys ، وإذا قمت باستخدام ارتباط رمزي ، فسوف ينكسر بمجرد أن تقوم بإجراء chroot.
لقد قاموا بإضافة بعض الجديد ، على أساس systemd. ربما من الأفضل إضافتهم. - AzP


قد يكون من الجدير بالذكر في هذا السؤال الشائع ، أن Arch Linux قد صنع نصًا غريمه الاستجذار. تحميل arch-install-scripts-15-1-any.pkg.tar.xz

هذا يعتني بمختلف المشاكل ذات الصلة سواء في قوس لينكس و Manjaro ، حيث استخدمتها بنجاح أيضًا. ربما المزيد من القوسالمشتقات مثل القطع المكافئ هندسة متوافقة فقط كذلك.

في حين أن معيار بسيط chroot في تركيب Manjaro الثانوي لن يسمح لك بتشغيل

pacman --sync linux

(الرمز النقطي الفضي بعد تعطل النظام) ، مع استبدال الخط بـ

arch-chroot /run/media/*YOURSELF*/manja-disk2

ستمكنك من إصلاح تثبيت Arch-derivate الثانوي عبر

pacman --sync linux

مثل السحر. البرنامج النصي bash arch-chroot يعتني /dev /sys /proc وأكثر من ذلك بكثير ، والتي تركت وحدها حسب المعيار chroot.

أنظر أيضا: باستخدام قوس كرووت


0
2018-04-17 15:36





هناك غيرها من أنظمة الملفات الزائفة و tmpfs المواقع. هذا على ديبيان:

/dev/pts 
/run
/run/shm
/proc/sys/fs/binfmt_mist
/var/lib/nfs/rpc_pipefs
/proc/fs/nfsd
/proc/bus/usb

يجب أن يكون على ما يرام لتركيب usbfs، rpc_pipefs و devpts pseudo-filesystems من داخل chroot. أنا أوصى ليس ربط /proc ل chroot /proc، لأن النواة لديها مفهوم مساحات الأسماء ، ويمكن بالفعل وضع أشياء مختلفة في procot chroot.

تحديث: وفقا ل هذا موضوع القائمة البريدية، / sys لا يجب أن يتم تثبيتها ، خاصة إذا كانت العمليات chrooted تستخدم مساحة اسم الشبكة الخاصة بها.

انها فكرة سيئة لتركيب النظام /var أو /run على chroot ، إذا كان chroot له مساحة اسم المنتج الخاصة به.


-1
2017-10-15 21:06



المضاربة؟ عند المستخدم المتميز (والمنتديات الأخرى) عادةً ما يكون من الأفضل التوقف أو البحث والإجابة باستخدام مصادر مرتبطة ، إذا كنت غير متأكد. هذا هو تجنب المخاطرة نشر تلميحات مضللة. آسف إذا خاب أمله وحظا سعيدا! - Simon B.
SimonB. لقد أضفت رابطًا إلى قائمة بريدية تدعم الفكرة التي يجب أن لا يتم تثبيت / sys بها. - Brian Minton
باستخدام مساحة اسم ملف pid ، فإنك تتحدث عن المزيد من ميزات مساحة أسماء المستخدمين المتقدمة التي يمكننا العثور عليها على نواة لينكس الحديثة (بمعنى أن "حاويات" الميزات تعتمد على) ، بينما عندما نستخدم مصطلح chroot ، فإننا نشير إلى تغيير مساحة أسماء الملفات التقليدية ( ولا شيء غير ذلك). - Johan Boulé