Né man fstab
né man diskarbitrationd
(vedi qui per esempio) menzione deprecazione di /etc/fstab
.
Non è presente per impostazione predefinita, ma perché dovrebbe essere, se fosse vuoto perché le impostazioni predefinite sono buone? È lì se ne hai bisogno.
Le rivendicazioni di deprecazione di fstab
fluttuano nel web da qualche tempo ormai.
Da qui :
etc / fstab è deprecato in Leopard
Da qui :
Stavo per suggerire di modificare il file / etc / fstab, ma apparentemente era deprecato in Leopard e probabilmente ora è stato rimosso da Snow Leopard ...
A parte il fatto che non c'è menzione di deprecazioni nella sua documentazione, perché Apple dovrebbe aggiungere utilità per modificare correttamente i file di configurazione obsoleti?
Citando man vifs
:
NAME
vifs -- safely edit fstab
[...]
HISTORY
The vifs utility originates from Mac OSX 10.5.
Mentre viene eseguito il seguente programma (ciclo infinito, Ctrl-C per uscire), nessun disco verrà montato, con le condizioni adeguate è possibile controllarlo più chiaramente, ovviamente:
#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;
}
Salva come main.c e compila usando il seguente (hai bisogno di Strumenti per gli sviluppatori):
cc main.c -o mountstopd -framework Foundation -framework DiskArbitration