또한 ( 예를 들어 여기 참조 )의 비난을 언급 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