जवाबों:
एंड्रॉइड के बारे में भारी संशोधित लिनक्स वितरण के बारे में मत सोचो। क्योंकि यह नहीं है। लगभग केवल एक चीज जो लिनक्स वितरण के साथ एंड्रॉइड साझा करती है वह कर्नेल है। और यहां तक कि इस घटक को संशोधित किया गया है। इसके अलावा, अन्य मुख्य घटक, जैसे कि libc, भिन्न हैं।
Android के पास नहीं है /etc/fstab
आपको /etc/fstab
विभाजन को माउंट करने की आवश्यकता नहीं है । लेकिन IIRC कोई mount
कमांड नहीं है। dev_mount
काम करना चाहिए (रूट आवश्यक)। आपके प्रश्नों के शीर्षक का उत्तर देने के लिए: सभी स्टार्टअप सिस्टम बढ़ते /etc/vold.fstab
हेल्पर स्क्रिप्ट के साथ किया जाता है ।
Fstab फ़ाइल में है /
।
यह कहा जाता है /fstab.$systemname.rc
जहां $systemname
हैंडसेट की फिंगरप्रिंट संपत्ति पर आधारित है, या तो चिपसेट या हैंडसेट की श्रेणी के रूप में पहचाना जाता है।
/etc/vold.fstab
। :)
vold.fstab
और 4.3 में और बाद में यह है /fstab.<device>
।
मैं परस्पर विरोधी जानकारी देख रहा हूं। एक संसाधन का कहना है कि यह हार्डकोडेड है , इसलिए ऐसा कुछ नहीं जिसे आप उपयोगकर्ता-पक्ष बदल सकें:
Android- विशिष्ट init प्रोग्राम डिवाइस / सिस्टम / init में पाए जाते हैं। डिवाइस / सिस्टम / init / init.c में परिभाषित लॉग मैक्रो के साथ संभावित समस्याओं को डीबग करने में मदद करने के लिए लॉग संदेश जोड़ें।
इनिट प्रोग्राम सीधे सभी फाइल सिस्टमों और डिवाइसों को हार्ड-कोडित फाइल नामों या डिवाइस नामों का उपयोग करके उत्पन्न करता है, जो sysfs फाइल सिस्टम की जांच करके उत्पन्न होते हैं (जिससे Android में / etc / fstab फाइल की आवश्यकता समाप्त हो जाती है)।
अन्यत्र /etc/vold.fstab
और /etc/vold.conf
उल्लेखित हैं। मैंने उन्हें सीएम 7.1 के तहत अपने डिवाइस पर रखा है लेकिन मुझे यकीन नहीं है कि उनका उपयोग कैसे किया जाता है।
init.rc
फ़ाइल है जो आपके रैमडिस्क में रहती है, इसलिए आप अपने boot.img को खींच सकते हैं, अपनी ramdisk को निकाल सकते हैं, और फिर init.rc
इसे संशोधित कर सकते हैं और इसे फिर से वापस ला सकते हैं (संक्षेप में यहाँ चर्चा की जा सकती है , और Tiamat का स्रोतinit.rc
आप अपने बाहरी भंडारण को चलाने के द्वारा निष्पादन योग्य बना सकते हैं
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: परिभाषित डेटा प्रकार के लिए मूल्य बहुत बड़ा है
तो अपना समय बर्बाद मत करो। यह सब मान लिया गया है कि आप निहित हैं, और एक काम करने वाला बाइनरी बॉक्स है।
मुझे एहसास है कि यह एक पुराना विषय है, लेकिन यहाँ कुछ उत्तर वास्तव में मेरे fstab
और एंड्रॉइड के बारे में जानने के प्रयासों में बाधा डालते हैं क्योंकि वे इतनी दृढ़ता से कहते हैं कि fstab
एंड्रॉइड की स्थिति अन्य लिनक्स वितरणों से बिल्कुल अलग है। मैं जो बता सकता हूं, वह नहीं है।
हालांकि, यहां विभिन्न प्रतिक्रियाओं को पढ़ने से मुझे आश्चर्य हुआ: मेरे डिवाइस fstab
पर किस -असमान फ़ाइल या फाइलें हैं ?
एक पल के लिए पीछे हटना, यह देखते हुए कि " एंड्रॉइड का कोई / आदि / fstab नहीं है" शायद ओपी के लिए सहायक नहीं है क्योंकि वे पहले से ही यह जानते होंगे। यदि यह असत्य थे, तो उनका प्रश्न (एंड्रॉइड समतुल्य क्या /etc/fstab
है) पूछकर कोई मतलब नहीं होगा। दूसरी ओर, हम जानते हैं कि @Flow का मतलब यह नहीं था कि एंड्रॉइड पर कोई समान नहीं था, क्योंकि उन्होंने उनमें से एक का उल्लेख किया था, जिसका नाम "सहायक स्क्रिप्ट" था /etc/vold.fstab
।
सब सब में, मुझे लगता है कि @ फ़्लो के पोस्ट से takeaway यह है कि कुछ सिस्टम पर, एक फ़ाइल है (संभवतः एक "सहायक स्क्रिप्ट" - मैं अपने फोन पर यह सत्यापित नहीं कर सकता) कहा जाता है /etc/vold.fstab
, और उन सिस्टमों पर, यह फ़ाइल है के बराबर है /etc/fstab
।
अपने स्वयं के डिवाइस के बारे में सोचकर वापस आना, मैं ओपी की आयु के बावजूद, कई कारणों से अपने निष्कर्ष यहां पोस्ट करने जा रहा हूं:
fstab
-स्टाइल फ़ाइलों का दस्तावेज़ करना चाहता हूं जो मैं अपने फोन पर पा सकता हूं, एक पिक्सेल 2 एक्सएल।तो मुझे इस सब से मैंने जो कुछ भी सीखा है उसे संक्षेप में बताने की कोशिश करता हूं:
एंड्रॉइड, या कम से कम इसके वेरिएंट जिन्हें मैं एक्सेस करता हूं, 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 से संपर्क कर सकते हैं।
/system/etc
या तो स्टैंडअलोन fstab फाइल होगी /vendor/etc
। ताज़ा जानकारी लाने के लिए धन्यवाद।
mount: bad /etc/fstab: No such file or directory
। क्या आपके पास इसके लिए कोई विचार या कोई उपाय है?