वास्तव में एक फाइलसिस्टम को बल देने के लिए कैसे (मैनुअल जांच के बिना यह व्यस्त क्यों है)


13

लिनक्स में एक फाइल सिस्टम को अनमाउंट करने के लिए कैसे जांच के बिना यह व्यस्त है?

मैं इसे एक कमांड में करना चाहता हूं। यह उस फाइलसिस्टम, सबमाउंट, कंटेनर ( lxc-execute -n qqq <command>) और अन्य सभी चीजों का उपयोग करके अनुप्रयोगों को संभालना चाहिए ।

बस "अनमाउंट। कोई आपत्ति नहीं!"। विशेष कर्नेल पैच या कॉन्फ़िगरेशन की अनुमति है।

फाइलसिस्टम वास्तव में बेशुमार होना चाहिए, इसलिए umount -lनिश्चित रूप से एक विकल्प नहीं है। उदाहरण के लिए, cryptsetup remove(BTW जबरन कैसे करें cryptsetup remove? अद्यतन:, cryptsetup luksSuspend लेकिन आप यह नहीं कर पाएंगे cryptsetup luksResumeकि यह LUKS नहीं है)।

उस फाइलसिस्टम पर सभी फाइलहैंडल्स को अवैध कैसे बनाया जाए?

एकमात्र विश्वसनीय तरीका जो मुझे पता है कि फाइल सिस्टम को FUSE के माध्यम से बढ़ रहा है (आमतौर पर FUSE चीज को अनमाउंट करने के लिए कोई समस्या नहीं है क्योंकि मैं बस इसे मार सकता हूं)।

पुनश्च पहले से ही पता माउंट fuser, lsof | grep, cat /proc/*/mounts | grepऔर अप्रचलित गैर काम "badfs पैच"।

जवाबों:


3

जादू SysRq कुंजी कॉम्बो का उपयोग करें : Alt+ SysRq+u

ध्यान दें कि आपको संभवतः पहले एक आपातकालीन सिंक करना चाहिए: Alt+ SysRq+s

यह भी ध्यान दें कि कुछ (विशेष रूप से नए) कीबोर्ड पर, आपको इसके PrtScबजाय उपयोग करना होगाSysRq


शिफ्ट कुंजी आवश्यक नहीं है, बस Alt + SysRq + कुंजी। उल्लेख के लायक एक और बात (विशेष रूप से लैपटॉप उपयोगकर्ताओं के लिए) यह है कि आप Alt दबा सकते हैं, SysRq को दबा सकते हैं, फिर अक्षर / अंक को दबा सकते हैं और अंत में Alt को छोड़ सकते हैं। सबसे महत्वपूर्ण बात यह है कि यह सभी फाइल सिस्टमों को रीड-ओनली के रूप में रिमूव करता है, इसलिए यह जबरन रिबूट करने से पहले एक अंतिम-खाई वाली चीज है, केवल फाइल-सिस्टम रिमूव करने का सामान्य तरीका नहीं है।
गिल्स एसओ- बुराई को रोकना '

@ गिल्स: शिफ्ट की के बारे में टिप के लिए धन्यवाद। मैंने अपने निर्देश ठीक कर लिए हैं।
sml 16'10

1. यह केवल-केवल पढ़ने के लिए याद करता है। ऐसा नहीं है कि वह चाहता था। उदाहरण के लिए, मैं इसे अनमाउंट करना चाहता हूं और FUSE का उपयोग करके रिमाउंट करना चाहता हूं। 2. बुरी बात यह है कि मुझे सामान्य कार्य पर वापस लौटने के लिए "-o रीमाउंट, आरडब्ल्यू" रूट फाइलसिस्टम और उसके बाद अन्य की आवश्यकता है।
वि।

3

umount --forceया umount -f(समतुल्य)

यदि वह विफल रहता है, तो उपयोग करें:

umount --lazyया umount --l(समतुल्य)

" आलसी " विकल्प "फाइलसिस्टम पदानुक्रम से फाइल सिस्टम को अलग कर देगा, और फाइलसिस्टम के सभी संदर्भों को जल्द से जल्द साफ कर देगा क्योंकि यह अब व्यस्त नहीं है। (कर्नेल 2.4.11 या बाद के संस्करण की आवश्यकता है)" यह अस्थिरता का कारण हो सकता है, लेकिन यह बेमतलब की चीज़ मिलेगी। ड्राइव का उपयोग करने वाला कोई भी प्रोग्राम क्रैश हो सकता है।


बेशक --forceकाम नहीं करता। और --lazyअसली अनमाउंट नहीं है - यह एलवीएम, लूपबैक या क्रायसिपेटअप चीजें जारी नहीं करता है।
वि।

1
umount -f

जब फ़ाइल सिस्टम व्यस्त है, तो किसी अनमाउंट को बाध्य करने के लिए उपयोग किया जा सकता है।


1
इसने मेरे लिए कभी काम नहीं किया: umount2: Device or resource busyकेवल आंशिक सफलता तब मिली जब मैंने बैड्स पैच के साथ प्रयोग किया।
वि।

मेरे पास एक ही "त्रुटि" संदेश था, लेकिन यह फिर भी काम कर रहा था।
Umount

3
"आलसी umount", umount -l का प्रयास करें। यह हमेशा umounts लेकिन एक अस्थिर फाइल सिस्टम का उत्पादन कर सकता है।
जिमी हेडमैन

मुझे लगता है कि इस जवाब पर जिमी की टिप्पणी वास्तव में सबसे अच्छा विकल्प है। यह सच है कि एक "आलसी" अनमाउंट अस्थिरता पैदा कर सकता है, लेकिन यह माना जाता है कि आप पहले से ही अस्थिर अवस्था में हैं यदि आपको फाइल सिस्टम को बाध्य करने की आवश्यकता है। यह अंत करने के लिए, '-l' एक विकल्प क्यों नहीं है?
डेस्टो

@ डिएस्टो, लेजी अनमाउंट अनडिलींग ब्लॉक डिवाइस (LVM वॉल्यूम, LUKS कंटेनर, लूपबैक) को अनफ्रेंड नहीं करता है।
वि।

1

मुझे डर है कि एक कमांड पर ऐसा करने का कोई तरीका नहीं है। umount -fवास्तव में उतनी सुगमता से काम नहीं करता जितना कोई आशा करता है। यदि कुछ अन्य माउंट के तहत सबमॉंट होते हैं, तो आप उन रैंडम को कुछ यादृच्छिक क्रम में अनमाउंट नहीं कर सकते हैं और आशा करते हैं कि वे नीचे जाएंगे।

लेकिन कोई चिंता नहीं है, यह सब एक एक आदेश बनाने का एक तरीका है: एक शेल / पर्ल स्क्रिप्ट बनाएं जो वांछित प्रक्रियाओं को मारता है, कंटेनरों को अनमाउंट करता है, सबमाउंट करता है और अंत में कुछ अन्य माउंट को अनमाउंट करता है। तब आप केवल मांग पर अपनी स्क्रिप्ट को कॉल कर सकते हैं। शुरू में यह आपके लिए अधिक काम करता है, लेकिन आपको स्क्रिप्ट काम करने के बाद सब कुछ एक बच्चे का खेल लगता है। :)


1
ये ऐसे मामले हैं जब मैं मैन्युअल रूप से भी अनमाउंट नहीं कर सकता: 1. निर्बाध-नींद की प्रक्रिया जिसे फिर से शुरू नहीं किया जा सकता है (दुर्घटनाग्रस्त ड्राइवर आदि) 2. असफल भंडारण (यह भी प्रत्येक अनुरोध को लटका देता है)। मैं इसे संभालने के लिए "गंदा मैला" चाहता हूं।
वि।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.