मैक लायन: fstab को पदावनत किया जाता है। तो क्या यह विभाजन को बढ़ने से रोकने के लिए बदल देता है?


39

यदि fstabशेर में (और इससे पहले, मुझे लगता है?) पदावनत किया जाता है, तो एक, ठीक से, सिस्टम बूट पर विभाजन से कैसे रोका जा सकता है?

यह इस सवाल से संबंधित है जिसका इस पोस्ट के पास कोई उत्तर नहीं है।

संपादित करें:

तो मेरा भ्रम fstab के बारे में पढ़ने और संपादित करने के बारे में बताया जा रहा है /etc/fstab.hd। इसलिए ... /etc/fstabक्या मुझे बनाने की आवश्यकता है और जहां मैं बढ़ते हुए विभाजन को रोकने के लिए UUID जानकारी जोड़ता हूं?

$ cat /etc/fstab.hd 
IGNORE THIS FILE.
This file does nothing, contains no useful data, and might go away in
future releases.  Do not depend on this file or its contents.

इसके लिए एक स्क्रिप्ट है ( लेखक द्वारा ऐप्पल फोरम पर पोस्ट की गई ) - सरल उपयोग करने के लिए, 10.9 और 10.9.1 के साथ परीक्षण किया गया।
दिमित्री वेरखोटुरोव

स्वीकार किए जाते हैं कि fstab पदावनत होने की धारणा पर सवाल का जवाब दिया। क्या हमें उसके अनुसार प्रश्न को संपादित करना चाहिए?
डीए विंसेंट

जवाबों:


29

न तो man fstabऔर न ही man diskarbitrationd( उदाहरण के लिए यहां देखें ) के पदावनत का उल्लेख है /etc/fstab

यह डिफ़ॉल्ट रूप से नहीं है, लेकिन यह क्यों होना चाहिए, अगर यह सिर्फ खाली था क्योंकि चूक अच्छे हैं? यह वहाँ है अगर आपको इसकी आवश्यकता है।


पिछले fstabकुछ समय से वेब के इर्द गिर्द डेप्रिसिएशन के दावे तैर रहे हैं।

से यहाँ :

आदि / fstab तेंदुए में पदावनत है

से यहाँ :

मैं / etc / fstab फ़ाइल को संपादित करने का सुझाव देने जा रहा था, लेकिन जाहिर है कि तेंदुए में पदावनत किया गया था, और शायद अब हिम तेंदुए से हटा दिया गया है ...

इस तथ्य के अलावा कि इसके प्रलेखन में पदावनति का कोई उल्लेख नहीं है, Apple उचित रूप से विन्यास फाइल का संपादन करने के लिए उपयोगिताओं को क्यों जोड़ेगा?

उद्धरण man vifs:

NAME
     vifs -- safely edit fstab
[...]
HISTORY
     The vifs utility originates from Mac OSX 10.5.

हालांकि, निम्न प्रोग्राम चलता है (अनंत लूप, Ctrl-C छोड़ने के लिए), कोई डिस्क नहीं लगाई जाएगी, उचित परिस्थितियों के साथ आप इसे और अधिक सूक्ष्म रूप से नियंत्रित कर सकते हैं:

#include <CoreFoundation/CoreFoundation.h>
#include <DiskArbitration/DiskArbitration.h>

DADissenterRef BlockMount(DADiskRef disk, void *context)
{
        DADissenterRef dissenter = DADissenterCreate(kCFAllocatorDefault, kDAReturnNotPermitted, CFSTR("forbidden!"));
        return dissenter;
}

int main (int argc, const char * argv[])
{
    DAApprovalSessionRef session = DAApprovalSessionCreate (kCFAllocatorDefault);
    if (!session)
    {
        fprintf(stderr, "failed to create Disk Arbitration session");
    }
        else
        {
        DARegisterDiskMountApprovalCallback(session, NULL, BlockMount, NULL);
        DAApprovalSessionScheduleWithRunLoop(session, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);

        while (true) {
            CFRunLoopRunInMode(kCFRunLoopDefaultMode, 60 /* seconds */, false);
        }

        DAApprovalSessionUnscheduleFromRunLoop(session, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
        DAUnregisterApprovalCallback(session, BlockMount, NULL);
        CFRelease(session);
    }
    return 0;
}

Main.c के रूप में सहेजें और निम्नलिखित का उपयोग करके संकलन करें (आपको डेवलपर टूल की आवश्यकता है):

cc main.c -o mountstopd -framework Foundation -framework DiskArbitration

इसके साथ भी ऐसा ही है cron। कोई पदावनत नहीं, बस डिफ़ॉल्ट रूप से उपयोग नहीं किया जाता है। एक अंतर है।
डैनियल बेक

मैं जानबूझकर उस भाग का उत्तर नहीं दे रहा हूं जो संदर्भित प्रश्न का डुप्लिकेट है।
डैनियल बेक

शायद मैं उलझन में हूँ, ठीक है, जाहिर है! ऊपर संपादित देखें । /etc/fstabऔर / etc / fstab.hd के बीच क्या अंतर है ? शायद इससे मेरा भ्रम दूर हो जाएगा।
मुल्तेमी

1
@ मल्तेमी: यह पूरी तरह से अलग फ़ाइल है और असंबंधित है। उदाहरण के लिए यहाँ या यहाँ देखें ।
डैनियल बेक

I C। मैं इसे /etc/fstabअभी ठीक से काम कर रहा हूँ thx
मेल्टैमी

20

जहां fstab स्थित है, वहां प्रोग्राम चलाने या चिंता करने की कोई आवश्यकता नहीं है।

बस sudo vif चलाएं और फ़ाइल में उचित लाइनें जोड़ें। मेरा है:-

#
# Warning - this file should only be modified with vifs(8)
#
# Failure to do so is unsupported and may be destructive.
#
UUID=E00F307A-9295-482E-8A79-2FA2C922F3CD none ntfs rw,noauto
LABEL=Tempy none ntfs rw,noauto

सुनिश्चित करें कि आप जानते हैं कि किसी फ़ाइल को कैसे संशोधित और सहेजना है। विम्मुटोर आपको मूल बातें सिखाएगा।

PS / निजी / आदि वास्तव में / etc के समान है। OS X आंतरिक रूप से url को संसाधित करता है (इसे एपीआई प्रलेखन में समझाया गया है - हालाँकि मुझे अभी भी समझ नहीं आया है कि क्यों)


यदि आप पैरागॉन NTFS जैसे तीसरे भाग के ड्राइवर का उपयोग कर रहे हैं, तो यह तकनीक बिना संशोधन के काम नहीं कर सकती है। उदाहरण के लिए, मुझे एक लेबल (UUIDs काम नहीं करेगा) का उपयोग करना था और इसके बजाय फाइलसिस्टम का प्रकार ufsd_N_NFS होना चाहिए था। अधिक मानक विकल्पों का उपयोग करने पर यह कुछ भी नहीं तोड़ता है, यह सिर्फ काम नहीं करता है।
Zxaos

यह काम नहीं किया fat32! मैंने UUIDऔर LABELसाथ ही दोनों की कोशिश की ।
नेकटविली

2

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

यहाँ यह है: https://github.com/nanoant/mountblockd


1
Ada Ad, माउंटब्लॉक में, प्लिस्ट वॉल्यूम नाम दर्ज करने के लिए कहता है। लेकिन मेरे पास एक ही नाम के दो खंड हैं। क्या इसके बदले प्लिस्ट UUID ले सकता है?
एडवर्ड नेड हार्वे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.