Alla ricerca di un modo pulito per montare una directory su un'unità HFS + come una directory su un'altra di tali unità sulla stessa macchina

1

Ho bisogno di montare senza problemi (e automount, ad esempio tramite fstab) una directory (cartella) su una unità per apparire a livello di linea di comando e GUI come una directory su un'altra, sulla stessa macchina. Questo per sconfiggere un software "intelligente" che rileva che i collegamenti simbolici e gli alias non sono directory "reali" e si rifiuta di agire su di essi.

In Linux, questo sarebbe banalmente facile, con:
mount --bind /path1/source_dir /path2/target_dir
Tuttavia, la versione di mount di Mac OS non supporta questa funzionalità di bind (in qualsiasi forma, incluso mount -o bind o mount -B ), per quanto posso determinare. Sembra inoltre che nessuno di Macport, Homebrew o Fink fornisca una versione con port di mount con tale opzione. Alcuni strumenti di montaggio più specializzati non sembrano riguardare, ad esempio (xmount è per le immagini del disco e djmount è per i volumi di rete).

Per essere chiari, non sto provando a montare un disco o una partizione come volume o come directory locale, né a creare una condivisione da montare arbitrariamente da vari utenti su vari computer. Piuttosto, voglio montare una cartella, posseduta e scrivibile solo da un particolare utente, su un disco HFS + come se fosse una cartella su un altro disco HFS +, localmente, in un modo che sia effettivamente trasparente, con le stesse autorizzazioni e senza sicurezza / problemi di integrità.

Una soluzione sciatta consiste nel creare una condivisione CIFS della cartella da montare e (chiamando una variante personalizzata di smb.conf) limita le sue autorizzazioni solo in Samba, in modo tale che non sia pubblico, e ha le stesse autorizzazioni della posizione di destinazione, esattamente il file e la maschera di directory corretti, ecc .; quindi montalo in questo modo. Ma questo sarebbe inefficiente, poiché utilizzerebbe il blingo protocollo di condivisione file di Windows, oltre a creare una condivisione visibile che si presenta come un volume montabile dal server SMB, a chiunque possa accedere a questa macchina tramite SMB / CIFS (anche se non possono farlo effettivamente montarlo). Probabilmente la GUI Mac rappresenterà anche un volume condiviso.

    
posta S. McCandlish 12.06.2016 - 12:44
fonte

1 risposta

1

Per montare un disco rigido su un punto di montaggio personalizzato:

You can do this with diskutil mount and the -mountPoint option. From the man page:

mount [readOnly] [-mountPoint path] device

Mount a single volume. If readOnly is specified, then the file system is mounted read-only, even if the volume's underlying file system and/or device and/or media supports writing; even the super-user may not write to it; this is the same as the rdonly option to mount (8). If a -mountPoint is specified, then that path, rather than the standard path of /Volumes/VolumeName, will be used as the view into the volume file con- tent; a directory at that path must already exist.

From man diskutil, section 'Verbs'.

     

La sintassi da montare su un punto di montaggio personalizzato è la seguente:

diskutil mount -mountPoint /path/to/custom/mountpoint [volume (identifier/UUID/label)]
     

Ricorda che /path/to/custom/mountpoint deve essere a   directory , proprio come con mount , e quella tua   identificatore / UUID / etichetta sono specifici per il volume (ad esempio /dev/diskXsY   non /dev/diskX ). Non è possibile eseguire il montaggio su un punto di montaggio personalizzato    diskutil mountDisk , e funziona solo con un singolo volume alla volta.

Da la mia risposta a Come montare il disco con UUID o LABEL in OS X El Capitan .

L'ho provato "montando" una penna USB su un disco rigido esterno. Ad esempio,

$ diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.3 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh SSD           499.4 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk1
   1:                        EFI EFI                     209.7 MB   disk1s1
   2:                  Apple_HFS HDD-1T                  999.8 GB   disk1s2
/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *31.6 GB    disk2
   1:               Windows_NTFS USB-32                  31.6 GB    disk2s1

Come puoi vedere, /dev/disk2s1 , o USB-32 è il nome della chiavetta USB che sto per montare sul disco rigido, /dev/disk1s2 o HDD-1T . Per fare ciò, usa l'opzione -mountPoint . Ma prima assicurati che ci sia una directory di destinazione da montare su:

$ mkdir /Volumes/HDD-1T/mountpoint

E ora, per montare:

$ diskutil mount -mountPoint /Volumes/HDD-1T/mountpoint /dev/disk1s2

Il disco montato verrà visualizzato nelle seguenti posizioni: /Volumes e /Volumes/HDD-1T/mountpoint come USB-32 e mountpoint rispettivamente.

Assicurati di smontare ( diskutil umount ) il tuo equivalente USB-32 prima di rimontare il tuo equivalente HDD-1T .

    
risposta data 12.06.2016 - 13:20
fonte

Leggi altre domande sui tag