माउंट और माउंट-लूप के बीच अंतर क्या है


28

मेरे पास एक iso फाइल है जिसका नाम है ubuntu.iso

मैं mountइसे कमांड के साथ कर सकता हूं mount ubuntu.iso /mnt:। यह बढ़ते के बाद, मैं यह आदेश के outout से देख सकते हैं df -h: /dev/loop0 825M 825M 0 100% /mnt

हालाँकि, यदि मैं कमांड निष्पादित करता हूं, तो मुझे mount -o loop ubuntu.iso /mntवही परिणाम मिलेगा।

जैसा कि मुझे पता है, लूप डिवाइस हमें डिवाइस के रूप में आईएसओ फाइल देखने की अनुमति देता है, मुझे लगता है कि यही कारण है कि हम विकल्प जोड़ते हैं -o loop। लेकिन मैं अपनी आईएसओ फाइल पर जा सकता हूं, भले ही मैं केवल निष्पादित करूं mount ubuntu.iso /mnt

इसलिए मैं mountऔर के बीच का अंतर नहीं देख सकता mount -o loop


इसके अलावा एक महत्वपूर्ण बात यह है कभी कभी उदाहरण के लिए उचित arugments साथ नहीं कर सकते हैं सेटअप लूपबैक युक्ति माउंट है: mount ubuntu.iso /mntयह सेटअप, रीड-ओनली लूपबैक डिवाइस नहीं करते हैं, और mount /image.squashfs /mntयह सेटअप एक नहीं है DIO( losetup --direct-io=on) लूपबैक युक्ति।
अनपढ़

जवाबों:


46

दोनों संस्करण लूप उपकरणों का उपयोग करते हैं, और एक ही परिणाम उत्पन्न करते हैं; लघु संस्करण mountहाल के वर्षों में जोड़े गए "चतुराई" पर निर्भर करता है । लूप डिवाइस का उपयोग करने के लिए स्पष्ट रूप से mount -o loopबताता mountहै; यह लूप डिवाइस को स्वयं तक छोड़ देता है mount, जो उपलब्ध डिवाइस की तलाश करेगा, इसे सेट करेगा, और उसका उपयोग करेगा। (आप डिवाइस को भी उदाहरण के लिए निर्दिष्ट कर सकते हैं mount -o loop=/dev/loop1।)

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

mountमैन पेज के लूप डिवाइस सेक्शन में अधिक विवरण हैं।


1
नहीं * कि * बहुत पहले माउंट में कोई "-o लूप" विकल्प नहीं था और आपको मैन्युअल रूप से लूपेटअप कमांड के साथ लूप डिवाइस बनाना होगा।
एडहेलिल सेप

@Edheldil जो "बहुत पहले" की आपकी धारणा पर निर्भर करता है; ;-)। २००१ में util-linux२१.११ का समर्थन किया mount -o loopगया था, और मुझे लगता है कि २.१० भी ऐसा था, कम से कम एक साल पहले।
स्टीफन किट

हाँ, लेकिन आमतौर पर 2001 में उपयोग किए जाने वाले स्थिर वितरणों का उपयोग पहले से ही 2.11 उपयोग किया गया था?
रैकैंडबॉमनमैन

2
@rackandboneman मैं थोड़ा और खोदता चला गया, और यह पता चलता है कि 2.4 और 2.5j के -o loopबीच कुछ समय के लिए समर्थन जोड़ा गया था util-linux; डेबियन 1.1 बाद में था और जून 1996 में जारी किया गया था। इसलिए यह विकल्प बीस वर्षों से अधिक वितरण में उपलब्ध है।
स्टीफन किट

इस चतुराई का एक फायदा: अगर / जब XFS डेवलपर्स की नई "डायरेक्ट फाइल माउंट" सुविधा (लूप उपकरणों की आवश्यकता के बिना) कर्नेल तक पहुंच जाती है, तो mountउस तंत्र पर पारदर्शी तरीके से स्विच किया जा सकेगा (कम से कम पहले 15 मिनट के लिए जब तक कि यह यह किसी के गोले को तोड़ दिया और सभी को पाश उपकरणों पर वापस जाना पड़ता है) , mount -o loopजिसके विपरीत अभी भी स्पष्ट रूप से पुराने (वर्तमान) तंत्र के लिए पूछता है।
ग्रैविटी

9

loopउपकरण मुख्य रूप से नियंत्रित किया जाता है losteupआदेश। तो losetup -aआपको उपयोग किए गए लूप डिवाइस और संलग्न फ़ाइलों के बारे में अवलोकन देता है। mountआदेश माउंट कर सकते हैं ब्लॉक उपकरण केवल । लूप डिवाइस एक फ़ाइल (वर्ण डिवाइस) से वर्चुअल ब्लॉक डिवाइस बना सकता है।

वास्तव में उन कमांडों के बीच बहुत अंतर है क्योंकि पुराने लिनक्स सिस्टम पर फ़ाइल को माउंट किए जाने वाले सही उपकरण के रूप में mountनहीं पहचान सकते थे , लेकिन समय के दौरान माउंट कमांड को बहुत अधिक सुविधा के साथ पूरा किया गया था, इसलिए यह अब स्वयं निर्णय ले सकता है लॉसेटअप कमांड को कॉल करने और परिणाम को माउंट करने का प्रयास करें। लेकिन अगर आपको iso format में पूरी डिस्क इमेज नहीं मिली है, लेकिन शुरुआत में MBR के साथ, जैसे कि माउंट कमांड इसे नहीं पहचान सकता है और आपको प्रयोग करने योग्य विभाजन (जैसे कमांड के साथ ) yoursef को ढूंढना है और इसे पूर्ण विकल्प माउंट कमैन के साथ माउंट करना है। जैसा :parted disk_image.raw unit B print

mount disk_image.raw /mntpoint/ -o loop,offset=${OFFSET_of_PARTITION}

इस सिंटैक्स में लूप डिवाइस निर्दिष्ट नहीं किया गया था और यह माना जाता है कि सिस्टम माउंट फ़्री की अन्य नई विशेषताओं में से पहला फ़्री ( /dev/loop0, /dev/loop1इत्यादि) चुनता है , इसके लिए आपको माउंट किए गए ब्लॉक डिवाइस के फाइल टाइप को निर्दिष्ट करने की आवश्यकता नहीं है (आपके मामले में -t iso9660) यदि फ़ाइल सिस्टम समर्थन स्थापित किया गया था।


7

mount ubuntu.iso /mntऔर दोनों में कोई अंतर नहीं है mount -o loop ubuntu.iso /mnt

पहले को पारदर्शी रूप से नियंत्रित किया जाता है जैसे कि आपने दूसरे का उपयोग किया था।

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