एंड्रॉइड / etc / fstab के बराबर क्या है?


26

कभी-कभी मुझे लगता है कि वे लिनक्स के साथ बहुत गड़बड़ नहीं करते थे! मुझे पता है कि /etc/fstabवहाँ कहीं है, लेकिन कहाँ?

मैं वैकल्पिक फाइल सिस्टम के साथ कुछ विभाजन माउंट करना चाहता हूं (क्योंकि मुझे FAT32 पसंद नहीं है)।

जवाबों:


19

एंड्रॉइड के बारे में भारी संशोधित लिनक्स वितरण के बारे में मत सोचो। क्योंकि यह नहीं है। लगभग केवल एक चीज जो लिनक्स वितरण के साथ एंड्रॉइड साझा करती है वह कर्नेल है। और यहां तक ​​कि इस घटक को संशोधित किया गया है। इसके अलावा, अन्य मुख्य घटक, जैसे कि libc, भिन्न हैं।

Android के पास नहीं है /etc/fstab

आपको /etc/fstabविभाजन को माउंट करने की आवश्यकता नहीं है । लेकिन IIRC कोई mountकमांड नहीं है। dev_mountकाम करना चाहिए (रूट आवश्यक)। आपके प्रश्नों के शीर्षक का उत्तर देने के लिए: सभी स्टार्टअप सिस्टम बढ़ते /etc/vold.fstabहेल्पर स्क्रिप्ट के साथ किया जाता है ।


मुझे लगता है कि मैं वास्तव में एक इच्छाधारी Maemo उपयोगकर्ता हूँ। हाँ, यह मुझे लगता है कि लिनक्स से बहुत दूर है। सूचक के लिए vold.fstab के लिए धन्यवाद!
बैरीमैक

3
Vold.fstab ने केवल मेरे सांठगांठ पर sd कार्ड सामान दिया है
gcb

7

Fstab फ़ाइल में है /

यह कहा जाता है /fstab.$systemname.rcजहां $systemnameहैंडसेट की फिंगरप्रिंट संपत्ति पर आधारित है, या तो चिपसेट या हैंडसेट की श्रेणी के रूप में पहचाना जाता है।


3
यह निर्भर करता है और ROM से ROM में भिन्न होता है। AOSP में इसकी /etc/vold.fstab। :)
t0mm13b

और जब यह CM10 के लिए सच है - मेरे पास /fstab.p1c है - यह रिबूट पर ओवरराइट हो जाता है, जिसे मैंने अभी तक नहीं निकाला है।
jcomeau_ictx 12

3
Source.android.com/devices/storage/config.html के अनुसार , एंड्रॉइड में 4.2.2 और इससे पहले vold.fstabऔर 4.3 में और बाद में यह है /fstab.<device>
लार्स

1
मेरे Moto E पर, यह फ़ाइल केवल माउंटेड फ़ाइल सिस्टम पढ़ने पर है :(
एंटोन क्रोसनेव

5

मैं परस्पर विरोधी जानकारी देख रहा हूं। एक संसाधन का कहना है कि यह हार्डकोडेड है , इसलिए ऐसा कुछ नहीं जिसे आप उपयोगकर्ता-पक्ष बदल सकें:

Android- विशिष्ट init प्रोग्राम डिवाइस / सिस्टम / init में पाए जाते हैं। डिवाइस / सिस्टम / init / init.c में परिभाषित लॉग मैक्रो के साथ संभावित समस्याओं को डीबग करने में मदद करने के लिए लॉग संदेश जोड़ें।

इनिट प्रोग्राम सीधे सभी फाइल सिस्टमों और डिवाइसों को हार्ड-कोडित फाइल नामों या डिवाइस नामों का उपयोग करके उत्पन्न करता है, जो sysfs फाइल सिस्टम की जांच करके उत्पन्न होते हैं (जिससे Android में / etc / fstab फाइल की आवश्यकता समाप्त हो जाती है)।

अन्यत्र /etc/vold.fstabऔर /etc/vold.confउल्लेखित हैं। मैंने उन्हें सीएम 7.1 के तहत अपने डिवाइस पर रखा है लेकिन मुझे यकीन नहीं है कि उनका उपयोग कैसे किया जाता है।


3
यह हार्डकोड है, लेकिन यह इस तरह का नहीं है। एक init.rcफ़ाइल है जो आपके रैमडिस्क में रहती है, इसलिए आप अपने boot.img को खींच सकते हैं, अपनी ramdisk को निकाल सकते हैं, और फिर init.rcइसे संशोधित कर सकते हैं और इसे फिर से वापस ला सकते हैं (संक्षेप में यहाँ चर्चा की जा सकती है , और Tiamat का स्रोतinit.rc
माउंटपॉइंट्स

5

आप अपने बाहरी भंडारण को चलाने के द्वारा निष्पादन योग्य बना सकते हैं

mount -o remount, rw /mnt/sdcard

यह नॉइसेक, नोसिड और नोडव झंडे को हटा देगा, लेकिन यह अभी भी vfat fs होगा। आप इस fs के लिंक बना सकते हैं लेकिन भीतर से नहीं। रीमाउंट एक रिबूट से नहीं बचता है, क्योंकि vold.fstab फ़ाइल को पढ़ा जाएगा और वे नोनेक्स झंडे के साथ रिबूट में रीमाउंट किए जाएंगे।

यदि आप अपने किसी भी बाहरी स्टोरेज को vfat के अलावा किसी अन्य चीज में सुधारते हैं, तो उन्हें रिबूट पर रीमाउंट नहीं किया जाएगा, और आपके द्वारा किसी भी बाहरी स्टोरेज में ले जाने वाले किसी भी एप्लिकेशन को उपयोग करने योग्य नहीं बनाया जाएगा। यदि आप ऐप्स के लिए बाहरी संग्रहण का उपयोग करने का इरादा नहीं रखते हैं, तो आप अपने बाहरी संग्रहण को अनमाउंट कर सकते हैं और busybox mke2fs DEVICEइसे ext2 बनाने के लिए उपयोग कर सकते हैं। का प्रयोग करें busybox newfs_msdos DEVICEयह vfat पर लौटने और इसे फिर से उपयोगी बनाने के लिए।

नोट busybox mkfs.vfatटूट गया है, आपको कुछ ऐसा मिलेगा

lseek: परिभाषित डेटा प्रकार के लिए मूल्य बहुत बड़ा है

तो अपना समय बर्बाद मत करो। यह सब मान लिया गया है कि आप निहित हैं, और एक काम करने वाला बाइनरी बॉक्स है।


2

मुझे एहसास है कि यह एक पुराना विषय है, लेकिन यहाँ कुछ उत्तर वास्तव में मेरे fstabऔर एंड्रॉइड के बारे में जानने के प्रयासों में बाधा डालते हैं क्योंकि वे इतनी दृढ़ता से कहते हैं कि fstabएंड्रॉइड की स्थिति अन्य लिनक्स वितरणों से बिल्कुल अलग है। मैं जो बता सकता हूं, वह नहीं है।

हालांकि, यहां विभिन्न प्रतिक्रियाओं को पढ़ने से मुझे आश्चर्य हुआ: मेरे डिवाइस fstabपर किस -असमान फ़ाइल या फाइलें हैं ?

एक पल के लिए पीछे हटना, यह देखते हुए कि " एंड्रॉइड का कोई / आदि / fstab नहीं है" शायद ओपी के लिए सहायक नहीं है क्योंकि वे पहले से ही यह जानते होंगे। यदि यह असत्य थे, तो उनका प्रश्न (एंड्रॉइड समतुल्य क्या /etc/fstabहै) पूछकर कोई मतलब नहीं होगा। दूसरी ओर, हम जानते हैं कि @Flow का मतलब यह नहीं था कि एंड्रॉइड पर कोई समान नहीं था, क्योंकि उन्होंने उनमें से एक का उल्लेख किया था, जिसका नाम "सहायक स्क्रिप्ट" था /etc/vold.fstab

सब सब में, मुझे लगता है कि @ फ़्लो के पोस्ट से takeaway यह है कि कुछ सिस्टम पर, एक फ़ाइल है (संभवतः एक "सहायक स्क्रिप्ट" - मैं अपने फोन पर यह सत्यापित नहीं कर सकता) कहा जाता है /etc/vold.fstab, और उन सिस्टमों पर, यह फ़ाइल है के बराबर है /etc/fstab

अपने स्वयं के डिवाइस के बारे में सोचकर वापस आना, मैं ओपी की आयु के बावजूद, कई कारणों से अपने निष्कर्ष यहां पोस्ट करने जा रहा हूं:

  • सबसे पहले, मैं उन सभीfstab -स्टाइल फ़ाइलों का दस्तावेज़ करना चाहता हूं जो मैं अपने फोन पर पा सकता हूं, एक पिक्सेल 2 एक्सएल।
  • दूसरा, मैं लोगों को, विशेष रूप से लिनक्स / एंड्रॉइड के नए शौक दिखाना चाहता हूं, कि इन फ़ाइलों को अपने डिवाइस पर ढूंढना काफी आसान है ("उन्हें मछली को सिखाना")।
  • तीसरा, मेरे लिए अपने निष्कर्षों को लिखना मेरे लिए मददगार है (बोनस: मैं हमेशा इसे स्टैकएक्सचेंज पर फिर से यहां पा सकूंगा!)।
  • अंत में, Google अभी भी इस पृष्ठ की सेवा कर रहा है, इसलिए यह एक मौका है जो मेरे अलावा किसी और को मदद करेगा।

तो मुझे इस सब से मैंने जो कुछ भी सीखा है उसे संक्षेप में बताने की कोशिश करता हूं:

एंड्रॉइड, या कम से कम इसके वेरिएंट जिन्हें मैं एक्सेस करता हूं, fstab-स्टाइल फाइल का उपयोग करता है । हालाँकि, इन फ़ाइलों का सटीक नाम, स्थान और कार्य, वितरण से भिन्न होता है - Android संस्करण और उपकरण द्वारा अर्थ, और ROM द्वारा भी यदि आप एक कस्टम ROM का उपयोग करते हैं।

अपने सिस्टम पर इन फ़ाइलों को खोजने के लिए, टर्मिनल एमुलेटर को खोलें tmuxया adb shellजैसे कुछ चलाएं find / -type f -iname '*fstab*' 2>/dev/null:। फ़ाइल 2 का पुनर्निर्देशन ( stderr) /dev/nullआपके आउटपुट को बहुत अधिक क्लीनर बना देगा क्योंकि आप अपने द्वारा प्राप्त किए गए त्रुटि संदेशों के हमले को अनदेखा करने में सक्षम होंगे find, भले ही आप हों root

मेरे सिस्टम पर (एक पिक्सेल 2XL, कोड नाम "taimen"), मुझे तीन उम्मीदवार फाइलें मिलीं:

taimen:/ # find / -type f -iname '*fstab*' 2>/dev/null

/sbin/.core/mirror/vendor/etc/fstab.taimen
/vendor/etc/fstab.taimen
/data/data/com.android.omadm.service/files/dm/dmt_data/fstab

पहली दो अलग-अलग फाइलें हैं जिनमें न तो दूसरे के लिए एक कठिन या प्रतीकात्मक लिंक है, लेकिन यदि आप diffउन्हें देखते हैं तो आप पाएंगे कि वे समान हैं। थोड़ी गहराई से देखें, यदि आप statफाइलों पर चलते हैं, तो आप देखेंगे कि उनके पास एक ही डिवाइस और इनोड मान हैं:

taimen:/ # stat /sbin/.core/mirror/vendor/etc/fstab.taimen /vendor/etc/fstab.taimen

  File: `/sbin/.core/mirror/vendor/etc/fstab.taimen'
  Size: 1326     Blocks: 16      IO Blocks: 512 regular file
Device: fc00h/64512d     Inode: 925      Links: 1
Access: (644/-rw-r--r--)        Uid: (    0/    root)   Gid: (    0/    root)
Access: 2009-01-01 02:00:00.000000000
Modify: 2009-01-01 02:00:00.000000000
Change: 2009-01-01 02:00:00.000000000

  File: `/vendor/etc/fstab.taimen'
  Size: 1326     Blocks: 16      IO Blocks: 512 regular file
Device: fc00h/64512d     Inode: 925      Links: 1
Access: (644/-rw-r--r--)        Uid: (    0/    root)   Gid: (    0/    root)
Access: 2009-01-01 02:00:00.000000000
Modify: 2009-01-01 02:00:00.000000000
Change: 2009-01-01 02:00:00.000000000

statइन दोनों फ़ाइलनामों को नियमित फ़ाइलों के रूप में केवल एक लिंक के साथ रिपोर्ट करता है (ताकि कोई कड़ी या प्रतीकात्मक लिंक शामिल न हो)। मैं एक फाइल सिस्टम विशेषज्ञ नहीं हूँ, लेकिन यहाँ क्या हुआ है कि एक ही डिवाइस को दो बार माउंट किया गया है। आप इसे निम्न कमांड के आउटपुट में देख सकते हैं, जहां आउटपुट की दो लाइनों के बीच एकमात्र अंतर माउंट पॉइंट ("ऑन" के तुरंत बाद का भाग) हैं:

taimen:/ $ mount | grep vendor

/dev/block/dm-0 on /vendor type ext4 (ro,seclabel,relatime,block_validity,delalloc,barrier,user_xattr)
/dev/block/dm-0 on /sbin/.core/mirror/vendor type ext4 (ro,seclabel,relatime,block_validity,delalloc,barrier,user_xattr)

तीसरी फ़ाइल केवल मुझे दिखाई देती है यदि मैं रूट के रूप में लॉगिन करता हूं, इसलिए यदि आपके पास मेरा समान डिवाइस है, तो भी आपको यह फ़ाइल नहीं मिलेगी, या इस तक पहुंच होगी, जब तक कि आपका फ़ोन रूट नहीं हो जाता। उस फ़ाइल को ओपन मोबाइल एलायंस डिवाइस मैनेजमेंट नामक एक सेवा के साथ करना है, लेकिन यह एक ऐसी सेवा है जिसके बारे में मुझे बहुत कम जानकारी है, इसलिए मैं बस यहाँ इसका उल्लेख करूंगा, और आप चाहें तो इस बारे में जानकारी के लिए Google से संपर्क कर सकते हैं।


1
पुराने विषय वास्तव में, और उसके बाद से चीजें काफी हद तक बदल गई हैं, इस हद तक कि मैंने जिन डिवाइसों के लिए ROM का निर्माण किया है, उनमें /system/etcया तो स्टैंडअलोन fstab फाइल होगी /vendor/etc। ताज़ा जानकारी लाने के लिए धन्यवाद।
एंडी यान

इस पोस्ट को इस कारण से खोजा गया है कि माउंट त्रुटि क्यों देता है mount: bad /etc/fstab: No such file or directory। क्या आपके पास इसके लिए कोई विचार या कोई उपाय है?
माइकल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.