Ни man fstab
ни man diskarbitrationd
(см. Здесь, например) не упоминают об устаревании /etc/fstab
.
Это не там по умолчанию, но почему это должно быть, если это просто было пусто, потому что значения по умолчанию хороши? Это там, если вам это нужно.
Заявления об устаревании fstab
уже некоторое время распространяются по сети.
Отсюда:
etc/fstab устарела в Leopard
Отсюда:
Я собирался предложить отредактировать файл /etc /fstab, но, видимо, он был объявлен устаревшим в Leopard и, вероятно, теперь удален из Snow Leopard ...
Помимо того, что в документации нет упоминания об устаревании, зачем 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