एंड्रॉइड के भीतर एसडी कार्ड की त्रुटियों को जांचें और ठीक करें?


42

कभी-कभी मेरा एसडी कार्ड "दूषित" हो जाता है और इससे कई पढ़ने / लिखने की त्रुटियां होती हैं। आमतौर पर, एसडी कार्ड को विंडोज़ 7 से कनेक्ट करना और "एरर चेकिंग" का चयन करना (ड्राइव पर राइट क्लिक करें> टूल्स> एरर चेकिंग) विकल्प भ्रष्टाचार को ढूंढता है और इसे ठीक करता है।

क्या ड्राइव त्रुटियों के लिए एसडी कार्ड की जांच करने और एंड्रॉइड के भीतर से ही इसे ठीक करने के लिए कोई उपकरण या ऐप है ?

मैं यह भी उल्लेख करना चाहूंगा कि मैं व्यस्त बॉक्स के साथ रूटेड फ्रायो पर हूं।


क्या आपने टर्मिनल ऐप के साथ प्रयास किया है, एक suऔर कर रहा है /system/bin/fsck.exfat?
इज़ी

@ इज़ी मुझे देता हैNo such file or directory
इरफान

विभिन्न स्थानों की जाँच करें, हो सकता है कि /system/xbinइसके बजाय यह हो ? cdनिर्देशिका में आईएनजी की कोशिश करें , और ls fsc*यह जांचने के लिए कि क्या उपलब्ध है। कहीं होना चाहिए :)
इज़ी

1
ठीक ठीक। बिजीबॉक्स यथासंभव पतला होने की कोशिश करता है। "मैन माउंट" के साथ चाची Google का प्रयास करें, ठीक काम करता है :) और नीचे मेरा जवाब देखें। यदि कुछ स्पष्ट नहीं है, तो वहां टिप्पणी करें (या मुझे चैट में देखें - हालांकि मैं अगले कुछ घंटों तक वहां उपलब्ध नहीं रहूंगा, अभी भी अन्य सदस्य हैं जो आपकी मदद करने के लिए हैं :)
इज़ी

2
यदि आपको बार-बार अपने एसडी कार्ड में त्रुटियां हैं, तो आपको यह सुनिश्चित करना चाहिए कि यह H2testw (केवल जर्मन में लिंक, जर्मन और अंग्रेजी में सॉफ़्टवेयर) का उपयोग करके बताई गई क्षमता है । मेरा मानना ​​है कि यह इसके विपरीत दिखने के बावजूद आधिकारिक घर है)। खराब एसडी कार्ड स्वतः भ्रष्ट हो जाएंगे।
कोड ब्लिंग

जवाबों:


17

आप इसे रूट और एक टर्मिनल एमुलेटर (जैसे एंड्रॉइड टर्मिनल एमुलेटर (या, वैकल्पिक रूप से, उपयोग कर रहे हैं adb shell) की सहायता से ठीक कर सकते हैं। काम करने के लिए बाइनरी को कहा जाता है fsck, और आमतौर पर /system/xbinया तो या /system/binकभी-कभी इसमें स्थित होता है । आपको इसके विशेष संस्करण की आवश्यकता होती है। , जिसे उदाहरण के लिए बुलाया fsck.exfatया पसंद किया जा सकता है । तो पहले यह सुनिश्चित करें कि हमें सही बाइनरी मिलें:

cd /system/xbin
ls fsc*

अगर नहीं मिला, तो साथ दोहराएं /system/bin। मैं मानूंगा कि यह पहली जगह में पाया गया था, और बस कहा जाता है fsck(यदि ऐसा नहीं है तो निम्नलिखित को समायोजित करें)।

जैसा fsckकि "लिनक्स कोर" से आता है, हम सिंटैक्स के लिए इसके मैन पेज से परामर्श कर सकते हैं । हालांकि एंड्रॉइड पर काम नहीं करने वाले कुछ विकल्प हो सकते हैं, सबसे बुनियादी चाहिए। विवरण के लिए लिंक किए गए मैन पेज देखें (या लिनक्स वीएम चलाएं और man fsckउस पेज के गायब होने की स्थिति में उपयोग करें ) - मैं यहां मूल बातें पर टिकूंगा:

पहले हमें उस डिवाइस को ढूंढना होगा जो आपका एसडी कार्ड के लिए बाध्य है। यदि यह माउंट है, तो mountकमांड हमारी सहायता करेगी:

mount

यह मूल रूप से है: आउटपुट की जांच करें और देखें कि आपका एसडी कार्ड कहां बैठता है। आमतौर पर यह कुछ का उपयोग कर रहा है vold, लेकिन यह उपकरणों के बीच अलग है। आउटपुट में कुछ ऐसा शामिल हो सकता है /dev/block/vold/179:17 on /mnt/storage/sdcard- उस स्थिति में, मेरी बोली का पहला भाग हमारी डिवाइस है। "ड्राइव" को ठीक करने के लिए, आपको पहले इसे अनमाउंट करने की आवश्यकता है। यह सेटिंग्स मेनू के माध्यम से किया जा सकता है, या, जैसा कि हम टर्मिनल में जारी कर रहे हैं

umount /dev/block/vold/179:17

अब हम मरम्मत कार्य के लिए जा सकते हैं। मूल वाक्यविन्यास है:

fsck [options] [-t fstype] <filesystem> [fsoptions]

इसलिए हम सबसे पहले सरल दृष्टिकोण और आशा के fsckआंकड़े खुद ही आजमाते हैं:

fsck -C -r /dev/block/vold/179:17

जिसका मूल रूप से अर्थ है: प्रगति दिखाना (-C), और हमेशा उपयोगकर्ता को (-r) किसी भी त्रुटि को सुधारने के लिए कहें /dev/block/vold/179:17। यदि यह काम नहीं करता है, तो आगे के विकल्पों के लिए लिंक किए गए मैन पेज की जांच करें।


4
cdयदि आप अपनी वर्तमान कार्यशील निर्देशिका का उपयोग करके ls /system/bin/fsc*और यदि आप चाहते हैं, तो आप स्वयं को भी सहेज सकते हैं ls /system/xbin/fsc*। आप दोनों को एक कमांड में जोड़ सकते हैं ls /system/xbin/fsc* /system/bin/fsc*
एल्डररैथिस

1
नहीं, मैं चीजों को भ्रमित नहीं करता, जो मुझे पता नहीं था वह यह है कि यह प्रश्न वास्तव में एसडी कार्ड के बारे में है। तो हाँ, मैं वास्तव में कुछ चीजों को भ्रमित किया था। अच्छी तरह से कड़ाई से बोलते हुए, आप अपने एसडी कार्ड को अतिरिक्त रूप में भी प्रारूपित कर सकते हैं, ताकि ऐसा करने वाले लोगों पर लागू हो सके।
रेयान

1
मुद्दा लेना। हालांकि "औसत उपयोगकर्ता" (या एक "संदेह में") एफएटी के साथ बेहतर छड़ी कर सकता है, कम से कम इंटरऑपरेबिलिटी के लिए। कम से कम जब तक ExtFS ओएस के बहुमत पर आसानी से और डिफ़ॉल्ट रूप से समर्थित है बिना अतिरिक्त ड्राइवरों की आवश्यकता है (लगता है कि विंडोज है और हमेशा की तरह यहाँ एक नुकसान होगा)।
इज़्ज़

1
इस उत्तर के लिए धन्यवाद, मुझे लगता है कि यह वही है जो मुझे चाहिए। मुझे एक त्रुटि मिली umount, क्या आपको जड़ होना है?
जैविक संगमरमर

1
@OrganicMarble हाँ, निश्चित रूप से - उपरोक्त सभी कमांडों के लिए, या आपको उपकरणों तक पहुँच नहीं मिलती है (सब कुछ /devउसी तरह से शुरू होता है )।
इज़ी

3

इसके लिए धन्यवाद, यह मेरा दिन बचाता है :)

root@android:/ # mount | grep -i sdcard
/dev/block/nandk /mnt/sdcard vfat rw,relatime,fmask=0000,dmask=0000,allow_utime=0022,codepage=cp437,iocharset=ascii,shortname=mixed,errors=remount-ro 0 0

root@android:/ # /system/bin/fsck_msdos -y /dev/block/nandk

इस उत्तर को पोस्ट करने के लिए धन्यवाद, इसने मुझे बहुत मदद की। स्वीकृत उत्तर से मुझे नहीं पता था कि vfat फाइलसिस्टम कैसे ठीक किया जाए। Upvoted।
आर्गेनिक मार्बल

2

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


इस लंबे समय से भुला दिए गए उत्तर पर उत्थान के लिए धन्यवाद। शायद एक टिप्पणी होनी चाहिए, लेकिन मैं उस समय के लिए प्रतिष्ठा नहीं था। मैं इसे अभी के लिए यहाँ छोड़ दूंगा जब तक कि टिप्पणी ऊपर न उठे और दिखाई दे।
कोड ब्लिंग

मैंने आपकी टिप्पणी को गलत ठहराया है।
अविस्मरणीय

@unfor अविस्मरणीयid धन्यवाद, बस यह सुनिश्चित करना चाहते हैं कि हर कोई इस जोखिम के बारे में जानता है। यह वास्तव में डेटा खोने के लिए बेकार है।
कोड ब्लिंग

ठीक है, इसलिए अब टिप्पणी को हटा दिया गया है, आप इस उत्तर को हटा सकते हैं। :)
अविस्मरणीय

@unfor अविस्मरणीयid दृश्यता के लिए अब दोनों को छोड़ देगा
कोड ब्लिंग


0

अगर मैं गलत नहीं हूँ, तो आप अपने रोम के आधार पर निम्नलिखित को करके रिबूट पर आंतरिक और बाहरी दोनों भंडारण को हटाने के लिए एंड्रॉइड को मजबूर कर सकते हैं।

टर्मिनल ऐप चलाएं और टाइप करें

su
touch /forcefsck

फिर रिबूट करें।

यदि आपका फोन रूट नहीं किया गया है, तो यह निश्चित रूप से विफल हो जाएगा।

स्रोत: http://forum.xda-developers.com/showpost.php?p=57027579&postcount=20


"आपके रॉम पर निर्भर करता है" से आपका क्या मतलब है?
अविस्मरणीय

हो सकता है कि यह ट्रिक सभी फोन पर काम न करे। विभिन्न फोन कुछ भी करने में विफल हो सकते हैं। साथ ही आपके फोन को रूट करना होगा।
ट्रेकिस

एक बार जब मैंने रिबूट किया, तो मुझे कैसे पता चल सकता है कि fsckवास्तव में भाग गया या नहीं?
अविस्मरणीय

1
-1। मैंने आपकी पोस्ट को डाउनवोट कर दिया है। यहाँ क्यों है: मैंने इस मामले को देखने में अधिक समय बिताया है। आपकी सुझाई गई तकनीक शायद 100% गलत है। यह पाठकों को यह सोचने में धोखा दे सकता है कि यह मदद करता है, लेकिन तकनीक वास्तव में कुछ नहीं करती है।
अविस्मरणीय

2
touch /forcefsckकेवल एक init स्क्रिप्ट के साथ एक डिवाइस पर काम करेगा जो एक /forcefsckफ़ाइल की उपस्थिति के लिए जांच करता है । मैं एक एकल Android डिवाइस के बारे में नहीं जानता, जिसमें इस तरह की एक स्क्रिप्ट है। तो, हालांकि आपकी तकनीक संभवतः डेबियन, उबंटू, और टकसाल उपकरणों पर काम करेगी, मुझे अत्यधिक संदेह है कि यह किसी भी एंड्रॉइड डिवाइस पर काम करेगा। अगर किसी को कभी भी एक init स्क्रिप्ट के साथ एक भी Android डिवाइस मिल जाए /forcefsck, जो मुझे चेक करे , तो कृपया मुझे बताएं! बस इस टिप्पणी का जवाब दें।
अविस्मरणीय
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.