Mac Lion: fstab est obsolète. Alors, qu'est-ce qui le remplace pour empêcher une partition de monter?

Si fstab est obsolète dans Lion (et avant, je pense?) Comment un, correctement, empêche-t-il une partition de monter sur le démarrage du système?

Ceci est lié à cette question qui, à partir de cette publication, n'a pas de réponse.

Modifier:

Donc, ma confusion vient de lire à propos de fstab et d'être invité à modifier /etc/fstab.hd . Alors … /etc/fstab est ce que j'ai besoin de créer et où j'ajoute des informations UUID pour empêcher les partitions de monter?

 $ cat /etc/fstab.hd IGNORE THIS FILE. This file does nothing, contains no useful data, and might go away in future releases. Do not depend on this file or its contents. 

Ni l' man fstab ni l' man diskarbitrationd (voir ici par exemple) mentionnent la dépréciation de /etc/fstab .

Il n'est pas là par défaut, mais pourquoi devrait-il être, s'il était vide parce que les valeurs par défaut sont bonnes? C'est là si vous en avez besoin.


Les réclamations de dépréciation de fstab ont flotté sur le Web depuis un certain temps maintenant.

De là :

Etc / fstab est obsolète dans Leopard

De là :

J'allais suggérer d'éditer le fichier / etc / fstab, mais apparemment cela était obsolète dans Leopard, et il est probablement maintenant retiré de Snow Leopard …

Outre le fait qu'il n'y a aucune mention de la dépréciation dans sa documentation, pourquoi Apple ajouterait-il des utilitaires pour l'édition correcte des fichiers de configuration obsolètes?

Citant les man vifs :

 NAME vifs -- safely edit fstab [...] HISTORY The vifs utility originates from Mac OSX 10.5. 

Pendant que le programme suivant s'exécute (boucle infinie, Ctrl-C à quitter), aucun disque ne sera monté, avec des conditions appropriées, vous pouvez le contrôler plus bien, bien sûr:

 #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; } 

Enregistrez en tant que main.c et compilez en utilisant ce qui suit (vous avez besoin des outils de développement):

 cc main.c -o mountstopd -framework Foundation -framework DiskArbitration 

Il n'est pas nécessaire d'exécuter des programmes ou de s'inquiéter de l'endroit où se trouve fstab.

Il suffit de lancer sudo vifs et d'ajouter les lignes appropriées au fichier. Le mien est:-

 # # Warning - this file should only be modified with vifs(8) # # Failure to do so is unsupported and may be destructive. # UUID=E00F307A-9295-482E-8A79-2FA2C922F3CD none ntfs rw,noauto LABEL=Tempy none ntfs rw,noauto 

Assurez-vous de savoir comment modifier et enregistrer un fichier dans vim. Vimtutor vous enseignera les bases.

PS / private / etc est en fait le même que / etc. OS X traite l'URL en interne (ceci est expliqué dans la documentation de l'API – bien que je ne comprends toujours pas pourquoi)

Étant donné que j'ai le même problème et que je n'ai trouvé aucune solution résolue pour cela, j'ai écrit un petit service Daemon de démarrage qui empêche le montage de volumes avec des étiquettes spécifiées.

Voici: https://github.com/nanoant/mountblockd