আমরাও 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