मुझे कैसे पता चलेगा कि कौन सा भौतिक उपकरण एक फ़ोल्डर में स्थित है?


110

विशेष रूप से: मैंने किया था sudo mkdir /work, और यह सत्यापित करना चाहूंगा कि यह वास्तव में मेरे हार्डड्राइव पर बैठता है और किसी अन्य ड्राइव पर मैप नहीं किया गया है।

मैं यह कैसे जांचूं कि यह फ़ोल्डर भौतिक रूप से कहां स्थित है?


जवाबों:


148

df(1)आदेश आप उपकरण है, जो एक फ़ाइल या निर्देशिका पर है बता देंगे:

df /work

पहले फ़ील्ड में वह उपकरण होता है जो फ़ाइल या निर्देशिका पर होता है।

जैसे

$ df /root
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1              1043289    194300    795977  20% /

यदि डिवाइस एक लॉजिकल वॉल्यूम है, तो आपको यह निर्धारित करने की आवश्यकता होगी कि लॉजिकल वॉल्यूम किस ब्लॉक डिवाइस पर है। इसके लिए, आप lvs(8)कमांड का उपयोग कर सकते हैं :

# df /usr
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/mapper/orthanc-usr
                       8256952   4578000   3259524  59% /usr
# lvs -o +devices /dev/mapper/orthanc-usr
  LV   VG      Attr   LSize Origin Snap%  Move Log Copy%  Convert Devices     
  usr  orthanc -wi-ao 8.00g                                       /dev/sda3(0)

अंतिम कॉलम आपको बताता है कि usrवॉल्यूम ग्रूप orthanc( /dev/mapper/orthanc-usr) में लॉजिकल वॉल्यूम डिवाइस पर है /dev/sda3। चूंकि एक वॉल्यूम समूह कई भौतिक संस्करणों को प्राप्त कर सकता है, आप पा सकते हैं कि आपके पास सूचीबद्ध कई डिवाइस हैं।

एक अन्य प्रकार का लॉजिकल ब्लॉक डिवाइस एक md (मल्टीपल डिवाइसेस, और जिसे मेटा-डिस्क आई थिंक) डिवाइस कहा जाता है, जैसे /dev/md2। Md डिवाइस के घटकों को देखने के लिए, आप उपयोग mdadm --detailया देख सकते हैं/proc/mdstat

# df /srv
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/md2             956626436 199340344 757286092  21% /srv
# mdadm --detail /dev/md2
...details elided...
    Number   Major   Minor   RaidDevice State
       0       8        3        0      active sync   /dev/sda3
       1       8       19        1      active sync   /dev/sdb3

आप देख सकते हैं कि और उपकरणों /dev/md2पर है।/dev/sda3/dev/sdb3

ऐसे अन्य तरीके हैं जो ब्लॉक डिवाइस को नेस्टेड किया जा सकता है (फ़्यूज़, लूपबैक फाइल सिस्टम) जो अंतर्निहित ब्लॉक डिवाइस को निर्धारित करने के लिए अपने स्वयं के तरीके होंगे, और आप कई परतों को भी घोंसला कर सकते हैं ताकि आपको नीचे अपना काम करना पड़े। यह आते ही आपको प्रत्येक मामले को लेना होगा।


4
+1। दिलचस्प। मुझे पता नहीं dfथा कि मैं बहुत साथ था।
फहीम मिता

ठीक है, मैंने ऐसा किया और मेरे फाइलसिस्टम के रूप में / dev / mapper / fun-root मिला। अब क्या? (मेरे कंप्यूटर का नाम 'मजेदार' है)
ripper234

1
तब शायद आप LVM का उपयोग कर रहे हैं? lvdisplayया lvsआपका दोस्त होगा
फ्यूनहे

5
मैं इस जवाब से बहुत प्रभावित हुआ कि मैंने इसे "रॉडदेव" कमांड के लिए आधार के रूप में इस्तेमाल किया, जो कि पथ या विभाजन के अंतर्निहित डिवाइस को लौटाता है, यहां तक ​​कि उन मामलों में जहां LVM और / या MD नेस्टेड हैं। यह Github: github.com/BMDan/rawdev पर उपलब्ध है ।
BMDan

5

एक स्क्रिप्ट के लिए, आप उपयोग कर सकते हैं:

$ df -P <pathname> | awk 'END{print $1}'

यह POSIX संगत है।


अधिकांश समय काम करता है, हालांकि अगर <pathname> एक btrfs में है तो इस रिपोर्ट को '-' स्नैपशॉट कर दें।
अण्डाकार दृश्य

1

उबंटू के आधुनिक वितरण में आपकी फ़ाइल / निर्देशिका और डिवाइस के बीच एक अतिरिक्त परत (डिवाइस मैपर) है। /dev/mapperवास्तविक विशेष उपकरणों की ओर इशारा करते हुए प्रतीकात्मक लिंक शामिल हैं। उदाहरण के लिए, वर्तमान निर्देशिका पर प्रयास करना:

$ df . | grep '^/' | cut -d' ' -f1
/dev/mapper/kubuntu--vg-root

$ ls -l /dev/mapper/kubuntu--vg-root
lrwxrwxrwx 1 root root 7 Nov 22 18:02 /dev/mapper/kubuntu--vg-root -> ../dm-1

तो डिवाइस का पूरा रास्ता प्रोग्रामेटिक रूप से प्राप्त करने के लिए, आप उपयोग कर सकते हैं:

$ realpath $(df . | grep '^/' | cut -d' ' -f1)

मेरा केस प्रिंट कौन सा है:

/dev/dm-1

realpath GNU कोरुटिल्स का हिस्सा है।


अच्छा लगा, लेकिन पूरा रास्ता कब उपयोगी है? dfअभी भी mapperपथ प्रदर्शित करेगा ।
दान डस्केल्सस्कु

@DanDascalescu निष्पक्ष बिंदु। यह उपयोगी हो सकता है जब / यदि आप वास्तविक हार्डवेयर डिवाइस को जानना चाहते हैं जो कि इस प्रश्न को मारते समय मैं क्या देख रहा था।
23
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.