Come prevenire il assembly di un disco?

Ho un Iomega Prestige. La serie di dischi include una partizione di CD virtuale che include un'utilità di crittografia file che può essere utilizzata solo su una macchina Windows. Ogni volta che montano l'unità esterna nel mio filesystem, la partizione del CD virtuale viene montata correttamente insieme.

Vorrei impedire il assembly del CD virtuale consentendo il assembly del resto del disco senza problemi. Quindi, la domanda è: Come faccio a rimuovere la partizione del CD virtuale o come posso impedirlo di montare?

Ho visto un paio di opzioni ma non functionranno:

A proposito, non si può semplicemente formattare e ripartizionare il disco. Il CD virtuale non verrà rimosso.

L'utilità di crittografia che può anche rimuovere / hide il CD virtuale è ora disponibile per OSX.

Iomega Encryption Utility Versione 3.0 per Mac OS: Leggi prima

Tenere sempre in esecuzione il seguente programma in background, ad esempio con l'avvio automatico di launchd :

 #include <CoreFoundation/CoreFoundation.h> #include <DiskArbitration/DiskArbitration.h> DADissenterRef BlockMount(DADiskRef disk, void *context) { DADissenterRef dissenter = DADissenterCreate(kCFAllocatorDefault, kDAReturnNotPermitted, CFSTR("forbidden!")); CFDictionaryRef description = DADiskCopyDescription(disk); // UUID of the disk you don't want to mount: CFUUIDRef backupDisk = CFUUIDCreateFromString(NULL, CFStringCreateWithCString(NULL, "3B5315C1-96AE-3471-B43C-2C41CDB12A64", kCFStringEncodingUTF8)); if (CFDictionaryContainsKey(description, kDADiskDescriptionVolumeUUIDKey)) { CFUUIDRef value = CFDictionaryGetValue(description, kDADiskDescriptionVolumeUUIDKey); if (CFEqual(backupDisk, value)) { return dissenter; } } return NULL; } 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; } 

Scopri l'UUID del volume che non si desidera montare utilizzando diskutil list (per get il nome del dispositivo) e diskutil info per leggere l'UUID.

Salva come main.c e compila utilizzando il seguente command (ti serve Strumenti per sviluppatori):

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

Su Mac OS X 10.7.1, la seguente operazione è stata eseguita solo per me (praticamente identica a quella del suggerimento di OS X):

Innanzitutto, scopri il nome del dispositivo del volume che non desideri essere montato:

 diskutil list 

L'output parziale ha l'aspetto seguente:

 /dev/disk3 #: TYPE NAME SIZE IDENTIFIER 0: Apple_partition_scheme *2.2 TB disk3 1: Apple_partition_map 32.3 KB disk3s1 2: Apple_HFS DroboBackup 2.2 TB disk3s3 

In questo esempio, DroboBackup è la partizione effettiva, quindi /dev/disk3s3 è il dispositivo che abbiamo bisogno di seguito. Allora scopri il suo UUID:

 diskutil info /dev/disk3s3 

Cercare Volume UUID , ad esempio 3B5315C1-96AE-3471-B43C-2C41CDB12A64 .

Inserire quindi quanto segue:

 sudo touch /etc/fstab sudo sh -c 'echo "UUID=3B5315C1-96AE-3471-B43C-2C41CDB12A64 none hfs rw,noauto" >> /etc/fstab' 

Ciò impedisce il assembly del disco.

Non ho un Iomega Prestige da testare, ma potresti provare l'utilità di Disk Arbitrator di Aaron Burghardt.

Dall'introduzione nel README (enfasi mine):

Disk Arbitrator è utilità forensiva di Mac OS X progettata per aiutare l'utente a garantire che vengano seguiti correttamente procedure forensi durante l'imaging di un dispositivo di disco.

Arbitro di disco è essenzialmente un'interface utente al framework Arbitration Disk, che consente a un programma di partecipare alla gestione dei dispositivi di archiviazione di blocchi, incluso il assembly automatico dei file system. Quando abilitato, Disco Arbitro bloccherà il assembly dei file system per evitare il assembly come scrittura-lettura e violando l'integrità delle prove.

È importnte notare che Disk Arbitrator non è un block di software, non modifica lo stato dei dispositivi attualmente collegati, né influisce sui dispositivi di nuova connessione per forzare un dispositivo per essere solo in lettura. L'utente deve ancora essere attento a non scrivere accidentalmente su un disco con un command come dd . A causa di questo fatto, un block di scrittura hardware o software può ancora essere desiderabile per la procedura più salda. Disk Arbitrator complimenti un writ-blocker con ulteriori funzioni utili ed elimina la tipica raccomandazione forense per "distriggersre l'arbitrato del disco".