डिवाइस पर इसे माउंट किए बिना ls


9

क्या lsपहले बढ़ते बिना डिवाइस पर चलना संभव है ?
कुछ इस तरह:

# ls /dev/sda1

किस उद्देश्य पर?
दाऊद

मुझे ऐसा नहीं लगता। आपको निश्चित रूप से इसके अलावा एक उपकरण की आवश्यकता होगी ls
घुमक्कड़

नहीं। आप हमें क्यों नहीं बता रहे हैं कि आप क्या हासिल करना चाहते हैं?
जसोनव्रीयन

1
उन समय के लिए मैं कुछ डिवाइस माउंट करना चाहता हूं, लेकिन याद नहीं है कि क्या इसका sda1 / 2/3/4/5/6 आदि बस मुझे डिवाइस पर फाइलों को सूचीबद्ध करने की आवश्यकता है ताकि मुझे यह पता चल सके कि क्या इसका डिवाइस मैं है तलाश
दीपक

वैसे: यदि आपके पास डिस्क (विभाजन नहीं) की छवि है, तो आप कमांड लाइन पर इसके पहले पैरामीटर के रूप में एक छवि फ़ाइल पथ के साथ कमांड testdiskचलाकर इसकी फाइलों को देख सकते हैं testdisk
अब्बाफी

जवाबों:


11

आप e2fsprogs के debugfsप्रोग्राम का उपयोग कर सकते हैं । अपने ऐतिहासिक नाम के बावजूद, यह ext2 / 3/4 फाइल सिस्टम पर काम करेगा। उपयोग सरल है:

# debugfs -R "ls -l" /dev/sda6
  2   40755 (2)   1001   1001    4096 17-Sep-2013 04:03 .
  2   40755 (2)   1001   1001    4096 17-Sep-2013 04:03 ..
 16  100644 (1)   1001   1001    9085 17-Sep-2013 04:03 avserver.conf
 17  100644 (1)   1001   1001    2177 17-Sep-2013 04:03 bash.bashrc
 26  100644 (1)   1001   1001     722 17-Sep-2013 04:03 crontab
 …   

जहाँ "ls -l" एक debugfsविशिष्ट कमांड है जो अधिकतर कार्य करता है ls -l; आप वहां किसी भी मनमाने ढंग से शेल कमांड का उपयोग नहीं कर सकते। डिफ़ॉल्ट रूप से, डिबगफ़ ने रीड-ओनली मोड में एक ड्राइव खोली है, इसलिए यह अपेक्षाकृत सुरक्षित है; उदाहरण के लिए एक गैर ext2 / 3/4 विभाजन पर यह कोशिश करना एक निदान देता है:

# debugfs -R "ls -l" /dev/sda2
/dev/sda2: Bad magic number in super-block while opening filesystem
ls: Filesystem not open

मैं यह नहीं कह सकता कि मैं इस व्यावहारिक अभ्यास पर विचार कर सकता हूं, लेकिन यह वही करेगा जो आप पूछते हैं।


3

किसी फ़ाइल सिस्टम को माउंट करने का पूरा बिंदु इसकी फ़ाइलों तक पहुंचना है। तो नहीं, सामान्य तौर पर, आप किसी फाइल सिस्टम की फाइलों को बिना माउंट किए एक्सेस नहीं कर सकते।

कुछ उपयोगिताओं हैं जो बढ़ते हुए बिना सीधे फ़ाइल तक पहुंचते हैं , जैसे कि ext2 / ext3 / ext4 filesystems के लिए डिबगफ़ेट्स और FAT फाइल सिस्टम के लिए mtools

एक ext2 / ext3 / ext4 के लिए, खतरनाक और प्रोग्राम का उपयोग करने के लिए आमंत्रित करने के बजाय debugfs, आप इसके अंतिम स्थान को सूचीबद्ध कर सकते हैं:

tune2fs -l /dev/sda1 | grep 'Last mounted'

हालांकि यह केवल तभी उपयोगी है जब अंतिम माउंट स्थान दर्ज किया गया हो।

अधिकांश फाइलसिस्टम प्रकार फाइल सिस्टम लेबल (जैसे tune2fs -L foo) का समर्थन करते हैं । तो अपने सभी फाइलसिस्टम को एक अनूठा लेबल दें। तब लेबल द्वारा फाइल सिस्टम को माउंट करें:

mount /dev/disks/by-label/foo /media/foo

या

mount LABEL=foo /media/foo

2

सरल उत्तर: आप नहीं कर सकते। lsमानक लिबास रूटीन का उपयोग करता है जो फ़ाइल सिस्टम ड्राइवर द्वारा दी जाने वाली सिस्टम कॉल में अनुवाद करता है, इसलिए lsफ़ाइल सिस्टम को माउंट किए बिना (या उस मामले के लिए उन सिस्टम कॉल का उपयोग करके कुछ भी) का उपयोग करना संभव नहीं है ।

आप एक उपयोगिता लिख ​​सकते हैं जो फाइल सिस्टम ड्राइवर के कुछ हिस्सों की अपनी प्रति होने से इसे रोक देगा (ऐसी बात मौजूद है जैसे कि विंडोज से एक्सट्रीम 2 फाइल सिस्टम पढ़ने के लिए), लेकिन यह काफी अव्यवहारिक है।

यदि आपकी समस्या बस विभाजनों की पहचान कर रही है, तो आपको संभवतः GPT का उपयोग करना शुरू करना चाहिए जिसमें विभाजन नाम (विभाजन प्रति 72 बाइट्स) के लिए स्थान है। कुछ अतिव्यापी समाधान (उदाहरण के लिए लिनक्स एमडी या एलवीएम) नामकरण की भी अनुमति देते हैं।


1

जैसा कि पहले बताया गया है, डीबगफ़ अच्छी तरह से काम करता है।

debugfs -R "ls -l" /dev/sda1

NTFS के लिए, ntfs-3G से ntfsls है।

ntfsls /dev/sda2

FAT के लिए, mtools से mdir है।

mdir -i /dev/sdc1

एक्सफ़ैट के लिए मुझे हालांकि यकीन नहीं है। लगता है कि एक्सफ़ैट-बर्तनों में ऊपर वर्णित लोगों के समान कोई उपकरण शामिल नहीं है। हालांकि डंपएक्सफ़ैट है, लेकिन मुझे नहीं लगता कि यह मांगी गई जानकारी प्रदान करेगा।

संलग्न ड्राइव के बारे में अधिक जानकारी प्राप्त करने के लिए, lsblk है।

lsblk

व्यक्तिगत रूप से मैं इसे पसंद करता हूं, और इसके लिए एक उपनाम निर्धारित किया है:

alias lsblk="lsblk -o MODEL,TRAN,NAME,FSTYPE,LABEL,MOUNTPOINT,SIZE,MAJ:MIN"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.