Ni man fstab
ni man diskarbitrationd
(ver aquí por ejemplo) mencionan la depreciación de /etc/fstab
.
No está allí por defecto, pero ¿por qué debería estarlo, si solo estuviera vacío porque los valores predeterminados son buenos? Está ahí si lo necesitas.
Las reclamaciones de depreciación fstab
han estado flotando en la web desde hace algún tiempo.
Desde aquí :
etc / fstab está en desuso en Leopard
Desde aquí :
Iba a sugerir editar el archivo / etc / fstab, pero aparentemente eso fue desaprobado en Leopard, y probablemente ahora sea eliminado de Snow Leopard ...
Además del hecho de que no se menciona la desaprobación en su documentación, ¿por qué Apple agregaría utilidades para editar adecuadamente los archivos de configuración desaprobados?
Citando man vifs
:
NAME
vifs -- safely edit fstab
[...]
HISTORY
The vifs utility originates from Mac OSX 10.5.
Mientras se ejecuta el siguiente programa (bucle infinito, Ctrl-C para salir), no se montará ningún disco, por supuesto, con las condiciones adecuadas puede controlarlo de forma más fina:
#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;
}
Guarde como main.c y compile usando lo siguiente (necesita herramientas de desarrollador):
cc main.c -o mountstopd -framework Foundation -framework DiskArbitration