Spotlight डिस्क की Ejection को क्यों रोकता है
external ड्राइव eject न होने की सबसे आम वजहों में से एक है Spotlight indexing। जानिए इससे कैसे निपटें।
आप अपनी external ड्राइव eject करने की कोशिश करते हैं और macOS मना कर देता है। आप Activity Monitor देखते हैं और पाते हैं कि mds या mds_stores नाम की प्रोसेस आपकी ड्राइव को एक्सेस कर रही हैं। बधाई हो, आपका सामना Spotlight indexing से हो गया है।
Mac पर external ड्राइव के eject न होने की शायद यह सबसे आम वजह है। Spotlight हर चीज़ को index करना चाहता है ताकि आप बाद में उसे खोज सकें, और उसे इससे कोई मतलब नहीं कि आपको दो मिनट में किसी मीटिंग के लिए निकलना है।
Spotlight असल में क्या कर रहा है
Spotlight का indexing सिस्टम कई बैकग्राउंड प्रोसेस के ज़रिए चलता है। मुख्य प्रोसेस है mds (metadata server), जो पूरे काम का तालमेल बिठाती है। फिर mds_stores है, जो index किए गए metadata की असल स्टोरेज संभालती है। आपको mdworker या mdworker_shared भी दिख सकती हैं, जो आपकी फ़ाइलों को पढ़ने और वर्गीकृत करने का भारी काम करती हैं।
जब आप कोई external ड्राइव जोड़ते हैं, तो Spotlight उसे खंगालने लायक एक नए इलाक़े की तरह देखता है। यह हर फ़ाइल को स्कैन करना, metadata निकालना और एक खोजने योग्य index बनाना शुरू कर देता है। यह अपने आप होता है, जब तक कि आपने Spotlight से साफ़ तौर पर न कह दिया हो कि उस ड्राइव को छोड़ दे।
समस्या यह है कि काम करते समय Spotlight file handles खुले रखता है। जब तक ये handles मौजूद रहते हैं, macOS ड्राइव को “इस्तेमाल में” मानता है और आपको उसे eject नहीं करने देता।
कैसे जाँचें कि दोषी Spotlight ही है
Activity Monitor खोलें (हास्यास्पद रूप से, इसे Spotlight में ही खोजें) और इन प्रोसेस नामों को देखें: mds, mds_stores, mdworker या mdworker_shared। अगर इनमें से किसी की प्रोसेस जानकारी में आपकी external ड्राइव का नाम दिखता है, तो Spotlight ही आपका रोकने वाला है।
आप Terminal से भी जाँच कर सकते हैं। यह कमांड चलाएँ, ड्राइव के नाम को अपने नाम से बदलकर:
lsof /Volumes/YourDriveName
अगर आपको आउटपुट में mds से जुड़ी प्रोसेस दिखती हैं, तो Spotlight आपकी ड्राइव को पकड़े हुए है।
झटपट हल: indexing अस्थायी रूप से बंद करें
सबसे तेज़ समाधान है उस ख़ास volume के लिए Spotlight indexing बंद कर देना:
sudo mdutil -i off /Volumes/YourDriveName
आपको अपना पासवर्ड डालना होगा। कमांड पूरी होने के बाद Spotlight ड्राइव को छोड़ देता है और आप सामान्य रूप से eject कर पाएँगे।
जब आप बाद में ड्राइव दोबारा जोड़ें और indexing वापस चाहें:
sudo mdutil -i on /Volumes/YourDriveName
स्थायी हल: ड्राइव को पूरी तरह बाहर रखें
अगर आप कभी नहीं चाहते कि Spotlight किसी ख़ास external ड्राइव को index करे, तो आप उसे privacy सूची में जोड़ सकते हैं।
System Settings खोलें, Siri and Spotlight में जाएँ (या पुराने macOS वर्शन पर सिर्फ़ Spotlight), फिर सबसे नीचे “Spotlight Privacy” पर क्लिक करें। अपनी external ड्राइव को इस सूची में खींचें या जोड़ने के लिए प्लस बटन पर क्लिक करें।
इस सूची की ड्राइव को Spotlight पूरी तरह अनदेखा कर देता है। आप Spotlight मेन्यू से उनकी सामग्री नहीं खोज पाएँगे, पर वे हर बार तुरंत eject होंगी।
एक छुपी हुई फ़ाइल का इस्तेमाल करने वाली एक तरकीब भी है। अपनी external ड्राइव की रूट में .metadata_never_index नाम की एक ख़ाली फ़ाइल बनाएँ:
touch /Volumes/YourDriveName/.metadata_never_index
Spotlight इस फ़ाइल की जाँच करता है और जिस भी volume में यह होती है उसे index करना छोड़ देता है। यह उन ड्राइव के लिए काम का है जिन्हें आप कई Macs के बीच साझा करते हैं, क्योंकि यह सेटिंग हर कंप्यूटर पर अलग-अलग सहेजे जाने के बजाय ड्राइव के साथ ही चलती है।
जब Spotlight छोड़ता ही नहीं
कभी-कभी Spotlight अटक जाता है। आपने indexing बंद कर दी, पर प्रोसेस फिर भी ड्राइव को नहीं छोड़तीं। Activity Monitor में आप गड़बड़ करने वाली mds प्रोसेस चुन सकते हैं और उसे force quit करने के लिए X बटन पर क्लिक कर सकते हैं।
ध्यान रखें कि सिस्टम प्रोसेस को force quit करने से कुछ देर के लिए अजीबोग़रीब हरकतें हो सकती हैं। Spotlight अपने आप फिर चालू हो जाएगा, पर हो सकता है कि आपको थोड़ी देर के लिए सुस्ती दिखे या सबकुछ ठीक होने तक एक पल रुकना पड़े।
अगर Spotlight प्रोसेस kill करने के बाद भी ड्राइव eject नहीं होती, तो कुछ और भी उसे खोले हुए है। यह देखने के लिए कि क्या बाक़ी रह गया है, lsof कमांड फिर से चलाएँ।
ऐसा बार-बार क्यों होता है
हर बार जब आप कोई external ड्राइव जोड़ते हैं, तो Spotlight उसे नए सिरे से index करना शुरू कर देता है, जब तक कि आपने उसे बाहर न रखा हो। जिन ड्राइव का आप पहले इस्तेमाल कर चुके हैं, वे भी फिर से index होंगी अगर उनका index पुराना या ख़राब हो गया हो।
macOS अपडेट भी Spotlight की privacy सेटिंग्स रीसेट कर सकते हैं। कुछ यूज़र्स ने बताया है कि नए macOS वर्शन में अपग्रेड करने के बाद, जिन ड्राइव को उन्होंने पहले बाहर रखा था वे अचानक फिर से index होने लगीं। बड़े अपडेट के बाद अपनी Spotlight Privacy सूची जाँच लेना ठीक रहेगा।
एक आसान तरीक़ा
हर बार ड्राइव अनप्लग करने के लिए Activity Monitor और Terminal में खोजबीन करना जल्दी ही उबाने लगता है। Ejecta आपको ठीक-ठीक दिखाता है कि कौन सी प्रोसेस eject को रोक रही हैं और आपको उन्हें एक क्लिक में quit करने देता है। ख़ास तौर पर Spotlight के लिए, यह संबंधित mds प्रोसेस पहचानता है और उन्हें सफ़ाई से संभालता है, ताकि आपको यह अंदाज़ा न लगाना पड़े कि किसे kill करना है और न ही सिस्टम की स्थिरता की चिंता करनी पड़े।
मूल समस्या (Spotlight का external ड्राइव को ज़ोर-शोर से index करना) जल्दी कहीं नहीं जाने वाली। पर हर बार जब आपको अपनी ड्राइव लेकर निकलना हो, तब इससे निपटना कोई शोध-परियोजना बनने की ज़रूरत नहीं।
अगर आप हर बार Terminal इस्तेमाल नहीं करना चाहते, तो Ejecta आपको ठीक-ठीक दिखाता है कि कौन सा process आपके drive को रोक रहा है — और सीधे आपके menu bar से एक क्लिक में उसे बंद कर देता है।
अभी खरीदें — $9.99