ये आज्ञा किस लिए हैं?


10

कल मुझे इसके ग्रब ओवरराइड के साथ एक विंडोज स्थापित करना था।

खैर, यह पहली बार नहीं है जब मुझे ग्रब को ठीक करना था, इसलिए मैंने लाइवसीडी का उपयोग किया, रूट विभाजन को माउंट किया (मेरे पास बूट नहीं है, बस /और home) और भाग गया grub-install --root-directory=/mnt/ /dev/sda। हालांकि, यह काम नहीं किया।

Googling के थोड़ी देर के बाद मुझे एक ट्यूटोरियल मिला जिसमें लिनक्स विभाजन को सिर्फ बढ़ाना था, उसने भी किया mount --bind /mnt/dev /devऔर mount --bind /mnt/proc /proc/। उसके बाद chrootकरने के लिए /mntऔर फिर ग्रब स्थापित है, और इस पद्धति का उपयोग, यह काम किया।

के लिए क्या mount --bindआदेश हैं? मैं --bind used(मैन पेज) के उपयोग से परिचित हूं लेकिन मुझे नहीं पता कि इस उदाहरण पर इसका उपयोग क्यों किया गया था।

जवाबों:


10

procऔर sysफाइलसिस्टम को रनिंग कर्नेल द्वारा प्रदान किया जाता है - जब कर्नेल नहीं चल रहा होता है, तो वे मौजूद रहते हैं। इसका मतलब यह है कि जब आप किसी अन्य ऑपरेटिंग सिस्टम में chroot करते हैं, तो ये फाइल सिस्टम मौजूद नहीं होते हैं। कई कार्यक्रमों से उन्हें अस्तित्व की उम्मीद है ताकि वे कार्य कर सकें, उदाहरण के लिए, उन्हें चल रहे सिस्टम के बारे में जानकारी की आवश्यकता हो सकती है, या जिस तरह से कर्नेल कुछ संभालता है, उसे संशोधित करना चाहते हैं। यह इन कार्यक्रमों के लिए वर्तमान कर्नेल से प्रदान करने के लिए /procऔर /sysअपेक्षा के अनुसार काम करने के लिए अक्सर पर्याप्त है।

एक सिमलिंक पर्याप्त नहीं होगा, क्योंकि क्रोटिंग का कार्य उपयोग किए गए फ़ाइल पथों को अमान्य कर देगा। लिनक्स में, आप कड़ी निर्देशिकाओं को छोड़ नहीं सकते (इसके अलावा .और .., जैसा कि प्रदान किया गया है mkdir)। इसका मतलब है कि इन फाइल सिस्टम को चिर-परिचित वातावरण में मिरर करने के लिए एक तीसरे विकल्प का उपयोग किया जाता है - माउंटिंग बाइंडिंग। एक बाँध माउंट सीधे कर्नेल द्वारा प्रदान किया जाता है, और एक चुरोट के भीतर अपेक्षित रूप से काम करता है।


procऔर sysकई जगहों पर लगाया जा सकता है, इसलिए --bindज़रूरत नहीं है (केवल उन्हें दो बार माउंट करें)। हालांकि /dev/udev द्वारा प्रबंधित किया जाता है अंदरूनी कर्नेल नहीं।
मैकीज पाइचोटका

@MaciejPiechotka मैंने कभी उल्लेख नहीं किया / देव, क्योंकि यह प्रश्न में नहीं है, लेकिन यह जरूरी नहीं कि udev द्वारा प्रबंधित किया जाना चाहिए।
क्रिस डाउन

मैं और अधिक करने के लिए बात कर रहे थे procऔर sysफ़ाइल सिस्टम जो हो सकता है के रूप में डबल घुड़सवार ( mount -t proc none /mnt/proc) ताकि आप के लिए आवश्यक नहीं है की जरूरत कर mount --bindउन्हें। devआमतौर पर उपयोगकर्ताओं द्वारा प्रबंधित किया जाता है (यह udv, बिजीबॉक्स या कुछ और हो) तो आपको इसे करने की आवश्यकता है। माइनर पॉइंट वैसे भी।
मैकीज पीचोटका

0

--bindविकल्प के लिए एक में दिखाने के लिए माउंट बिंदु अनुमति देगा chrootएड वातावरण।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.