ड्राइव को रिमाउंट करने के लिए `/ etc / fstab` का उपयोग किया जाता है?


9

मेरे पास Ubuntu 14.04.5 के साथ एक उपकरण स्थापित है जिसमें एक ext4 फ़ाइल सिस्टम के साथ एक ही हार्ड ड्राइव है।

दस्तावेज़ Ext4 फाइलसिस्टम को पढ़कर मैंने सीखा कि डिफ़ॉल्ट डेटा मोड orderedजो केवल मेटाडेटा की सुरक्षा करता है। मेरी परियोजना में, हम इसे journalफ़ाइल डेटा की सुरक्षा के लिए भी बदलना चाहते हैं क्योंकि डेटा सुरक्षा अधिक मूल्य की है।

पहली चीज़ जो मैंने कोशिश की वह थी /etc/fstabफ़ाइल को संशोधित करना । मैंने बदलने की कोशिश की

UUID=<UUID> / ext4 errors=remount-ro 0 1

सेवा

UUID=<UUID> / ext4 errors=remount-ro,data=journal 0 1

data=journalविकल्प क्षेत्र में संलग्न करके ।

हालाँकि, जब मैंने डिवाइस को रिबूट किया, तो मैंने एक त्रुटि संदेश के साथ कहा cannot change data mode on remount। मैंने डेटा मोड के dmesgसाथ ड्राइव माउंट करने के बारे में एक पूर्व संदेश देखा और देखा ordered

एक शर्मनाक लंबे समय के लिए, मुझे लगा /etc/fstabकि डिफ़ॉल्ट बढ़ते विकल्पों को ओवरराइड करने के लिए उपयोग किया जाता है, इसलिए ड्राइव केवल एक बार घुड़सवार होते हैं। लेकिन अब यह गलत लगता है: ड्राइव को इसके डिफ़ॉल्ट माउंट विकल्पों का उपयोग करके माउंट किया /etc/fstabजाता है , फिर इसे हटाने के लिए उठाया जाता है।

मेरे प्रश्न हैं :

  • क्या यह "माउंट-रिमाउट" सिस्टम के डिजाइन की प्रक्रिया है? मैंने Fstabविकी पेज पढ़ा लेकिन यह नहीं देखा कि इसमें "माउंट-रिमाउंट" चीज़ का उल्लेख है।
  • यदि /etc/fstabवास्तव में रिमाउंटिंग के लिए उपयोग किया जाता है, तो बूटिंग प्रक्रिया के किस चरण में पहली बार ड्राइव किया जाता है? क्या इसे लागू किया गया है /etc/init.d? मैंने कुछ लिपियों को /etc/init.dबुलाया umountfsऔर umountroot, लेकिन, उनकी सामग्री को कम करके देखा, वे प्रासंगिक नहीं दिखतीं।

2
मुझे लगता है कि यह "चिकन और अंडे" की समस्या है जिसका उल्लेख यहां किया गया है ( /etc/fstabरूट फाइल सिस्टम पर रहता है, लेकिन इसे तब तक नहीं पढ़ा जा सकता है जब तक फाइलमाइटम माउंट नहीं हो जाता है): क्या
स्टीलड्राइवर

जवाबों:


8

से man ext4:

डेटा = {पत्रिका | आदेश दिया | writeback}
              फ़ाइल डेटा के लिए जर्नलिंग मोड निर्दिष्ट करता है। मेटाडेटा हमेशा है
              जर्नल। रूट filesys than पर आदेश के अलावा अन्य मोड का उपयोग करने के लिए
              मंदिर, बूट पैरामीटर के रूप में कर्नेल में मोड पास करें, जैसे रूट mode
              झंडे = डेटा = पत्रिका।

data=orderedअपने fstab- लाइन से निकालें और /etc/default/grubइसके बजाय संपादित करें । में /etc/default/grubपरिवर्तन लाइन

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

सेवा

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash root‐flags=data=journal"

भागो sudo update-grubऔर रिबूट।


5

जब / etc / fstab का उपयोग किया जाता है

यदि आप चलाते हैं sudo strace -e open,openat mount -o remount,rw /तो आप देखेंगे कि कमांड वास्तव में खुला है /etc/fstab। यह सबसे आम कमांड है जिसे आप अक्सर देखेंगे, पुनर्प्राप्ति शेल से काम करने पर लेखों में संदर्भित किया जाता है।

Sourcejedi के उत्तर को उद्धृत करने के लिए (जो mount(8)मैनुअल से आता है ):

माउंट-रिम रिमाउंट, आरडब्ल्यू / डीआईआर

इस कॉल के बाद, माउंट fstab पढ़ता है और कमांड लाइन (-o) से विकल्पों के साथ इन विकल्पों को मर्ज करता है । यदि कोई माउंट पॉइंट fstab में नहीं मिलता है, तो अनिर्दिष्ट स्रोत के साथ एक रिमाउंट की अनुमति है।

हालांकि, इसका मतलब यह नहीं है कि /etc/fstabहमेशा उपयोग किया जाता है। विशेष रूप से, जब आप डिवाइस फ़ाइल भी निर्दिष्ट करते हैं; mount(8)मैनुअल का संदर्भ :

रिमाउंट कार्यक्षमता मानक तरीके का पालन करती है कि माउंट कमांड fstab से विकल्पों के साथ कैसे काम करता है। इसका मतलब है कि माउंट कमांड केवल एक डिवाइस और डीआईआर पूरी तरह से निर्दिष्ट होने पर fstab (या mtab) नहीं पढ़ता है।

माउंट-रिम रिमाउंट, आरडब्ल्यू / देव / फू / डीआईआर

इस कॉल के बाद सभी पुराने माउंट विकल्पों को बदल दिया जाता है और फ़ॉस्टब से मनमाना सामान को अनदेखा कर दिया जाता है , सिवाय पाश = विकल्प के जो आंतरिक रूप से माउंट कमांड द्वारा बनाए और बनाए रखा जाता है।

यह समझ में आता है, क्योंकि /dirमनमाना हो सकता है - एक डिवाइस को विभिन्न माउंटपॉइंट पर रिमूव करना।

यह /etc/fstabभी संदर्भित नहीं है जब /बूट समय कर्नेल पर बढ़ते फाइल सिस्टम को कुछ भी नहीं पता है /etc/fstabPsusi के उत्तर को उद्धृत करने के लिए :

आखिरकार बूट लोडर साथ आए और कर्नेल को कमांड लाइन दे सकते हैं। यदि रूट = तर्क पारित किया गया था, तो उस कर्नेल को बताया जहां रूट एफएस निर्मित मूल्य के बजाय था। ड्राइवरों को एक्सेस करने की आवश्यकता थी जो अभी भी कर्नेल में बनाए जाने थे

...

अंत में, आज हमारे पास initramfs है। यह initrd के समान है, लेकिन एक संपीड़ित फ़ाइल सिस्टम छवि होने के बजाय जो कि रैमडिस्क में लोड है, यह एक संकुचित cioio संग्रह है। एक tmpfs को रूट के रूप में माउंट किया जाता है, और संग्रह को वहां निकाला जाता है। Pivot_root का उपयोग करने के बजाय, जिसे एक गंदे हैक के रूप में माना जाता था, initramfs बूट स्क्रिप्ट / रूट को वास्तविक रूट में माउंट करता है, सभी फ़ाइलों को tmpfs रूट में हटाता है, फिर chroot को / root में, और / sbin / init को निष्पादित करता है।

फाइलसिस्टम जिन्हें fstab की जरूरत नहीं है

यह भी ध्यान दें, कि लिनक्स कर्नेल में अन्य फाइल सिस्टम हैं जो मेमोरी में रहते हैं - ये सामान्य रूप से उपयोगकर्ताओं के लिए उपलब्ध नहीं हैं, जिनमें से कुछ में माउंटपॉइंट नहीं है, जबकि कुछ उपयोगकर्ताओं के संपर्क में हैं। कर्नेल को /etc/fstabउन लोगों के लिए संदर्भ नहीं देना है । इसका उदाहरण यह है /proc- यह एक वर्चुअल फाइलसिस्टम है जो प्रक्रियाओं के बारे में ज्यादातर जानकारी को उजागर करता है, और हार्डवेयर और सिस्टम के बारे में कुछ सामान जो वास्तव में होना चाहिए /sys- एक और वर्चुअल फाइलसिस्टम।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.