ম্যাক লায়ন: fstab হ্রাস করা হয়েছে। সুতরাং এটির পরিবর্তে কোন পার্টিশনকে মাউন্ট থেকে আটকাতে পারে?


39

যদি fstabসিংহ (এবং এর আগে, আমার মনে হয়?) অবমূল্যায়ন করা হয় তবে কীভাবে একজন, সঠিকভাবে, কোনও পার্টিশনকে সিস্টেম বুটে মাউন্ট করা থেকে আটকাবে?

এটি এই প্রশ্নের সাথে আলস্যভাবে সম্পর্কিত যার এই পোস্টটির কোনও উত্তর নেই।

সম্পাদনা:

আমার বিভ্রান্তির সুতরাং সম্পর্কে পড়া থেকে আসে fstab ফাইলের এবং সম্পাদনা করতে বলা হচ্ছে /etc/fstab.hd। সুতরাং ... /etc/fstabআমার কি তৈরি করা প্রয়োজন এবং পার্টিশনগুলি মাউন্ট থেকে রোধ করার জন্য আমি যেখানে ইউআইডি তথ্য যুক্ত করব?

$ 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.

এর জন্য একটি স্ক্রিপ্ট রয়েছে ( লেখক অ্যাপল ফোরামে পোস্ট করেছেন ) - ব্যবহার করা সহজ, ১০.৯ এবং ১০.৯.১ নিয়ে কাজ করার পরীক্ষা করা হয়েছে।
দিমিত্রি ভারখোটুরভ

গৃহীত উত্তর fstab হ্রাস করা হয়েছে এমন ধারনাটিকে প্রশ্ন করে। আমাদের কি সেই অনুযায়ী প্রশ্নটি সম্পাদনা করা উচিত?
ডিএ ভিনসেন্ট

উত্তর:


29

আমরাও man fstabনা man diskarbitrationd(দেখুন এখানে উল্লেখ থামিয়ে দেওয়া উদাহরণস্বরূপ) /etc/fstab

এটি ডিফল্টরূপে সেখানে নেই, তবে এটি কেন হওয়া উচিত, যদি এটি খালি থাকে কারণ খেলাপিগুলি ভাল ছিল? আপনার প্রয়োজন হলে এটি সেখানে।


অবহেলার দাবিগুলি fstabবেশ কিছু সময় ধরে ওয়েবে চারপাশে ভাসছে।

থেকে এখানে :

ইত্যাদি / fstab চিতাবাঘে অবহেলা করা হয়

থেকে এখানে :

আমি / etc / fstab ফাইল সম্পাদনা করার পরামর্শ দিচ্ছিলাম, তবে দৃশ্যত এটি চিতাবাঘে অবহেলিত ছিল এবং সম্ভবত এখন স্নো চিতাবাঘ থেকে সরানো হয়েছে ...

এর ডকুমেন্টেশনে অবমূল্যায়নের কোনও উল্লেখ নেই এগুলি বাদ দিয়ে, কেন অ্যাপল অবচয়চিত কনফিগারেশন ফাইলগুলি সঠিকভাবে সম্পাদনার জন্য ইউটিলিটি যুক্ত করবে?

উদ্ধৃতি 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;
}

মেইন সি হিসাবে সংরক্ষণ করুন এবং নিম্নলিখিতগুলি ব্যবহার করে সংকলন করুন (আপনার বিকাশকারী সরঞ্জামগুলির প্রয়োজন):

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

এটি একই রকম cron। কোনও অবমূল্যায়ন নেই, কেবলমাত্র ডিফল্টরূপে ব্যবহার করা হয়নি। একটি পার্থক্য আছে।
ড্যানিয়েল বেক

আমি ইচ্ছাকৃতভাবে সেই অংশটির উত্তর দিচ্ছি না যা রেফারেন্সযুক্ত প্রশ্নের সদৃশ।
ড্যানিয়েল বেক

সম্ভবত আমি বিভ্রান্ত, ভাল, স্পষ্টতই! উপরে সম্পাদনা দেখুন । /etc/fstabএবং / ইত্যাদি / fstab.hd` এর মধ্যে পার্থক্য কী? সম্ভবত এটি আমার বিভ্রান্তি দূর করবে।
মেলতেমি

1
@ মেল্টেমি: এটি সম্পূর্ণ আলাদা ফাইল এবং সম্পর্কিত নয়। উদাহরণস্বরূপ এখানে বা এখানে দেখুন
ড্যানিয়েল অঙ্গুলিনির্দেশ

আইসি। আমি /etc/fstabএখন এটি ঠিক কাজ করে কাজ পেয়েছি । thx
মেলতেমি

20

প্রোগ্রাম চালানো বা fstab কোথায় অবস্থিত তা নিয়ে চিন্তা করার দরকার নেই।

কেবল সুডো ভিআইএফ চালান এবং ফাইলটিতে উপযুক্ত লাইন যুক্ত করুন। খনিটি হ'ল: -

#
# 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

ভিএম-তে কোনও ফাইলকে কীভাবে সংশোধন ও সংরক্ষণ করতে হবে তা নিশ্চিত করুন। ভিমটিউটর আপনাকে বেসিকগুলি শিখিয়ে দেবে।

পিএস / প্রাইভেট / ইত্যাদি আসলে / ইত্যাদি হিসাবে একই। ওএস এক্স ইউআরএল অভ্যন্তরীণভাবে প্রসেস করে (এটি এপিআই ডকুমেন্টেশনে ব্যাখ্যা করা হয়েছে - যদিও আমি এখনও বুঝতে পারি না)


আপনি যদি প্যারাগন এনটিএফএসের মতো তৃতীয় অংশের ড্রাইভার ব্যবহার করেন তবে এই কৌশলটি সংশোধন না করে কাজ করতে পারে। উদাহরণস্বরূপ, আমাকে একটি লেবেল ব্যবহার করতে হবে (ইউইউডিগুলি কাজ করবে না) এবং ফাইল সিস্টেমের ধরণটি পরিবর্তে ufsd_NTFS হতে হবে। যদি আরও মানক বিকল্পগুলি ব্যবহার করা হয় তবে এটি কিছুই ভাঙ্গেনি, এটি ঠিক কাজ করে না।
Zxaos

এটি কাজ করে না fat32! আমি উভয় UUIDএবং LABELপাশাপাশি চেষ্টা ।
নেকটিবি

2

যেহেতু আমার একই সমস্যা রয়েছে এবং এর জন্য কোনও অনুরোধযোগ্য সমাধান আমি খুঁজে পাইনি, তাই আমি সামান্য প্রবর্তন ডেমন পরিষেবা লিখেছি যা নির্দিষ্ট লেবেলগুলির সাথে ভলিউম বাড়ানো রোধ করে।

এটি এখানে: https://github.com/nanoant/mount blockd


1
এছাড়াও, মাউন্টব্লকডে, প্লিস্টটি ভলিউমের নাম লিখতে বলে। তবে একই নামটি নিয়ে আমার দুটি খণ্ড রয়েছে। এর পরিবর্তে প্লিস্ট কি ইউইউডি নিতে পারে?
এডওয়ার্ড নেড হার্ভে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.