1 votes

Recherche d'un moyen propre de monter un répertoire sur un lecteur HFS+ en tant que répertoire sur un autre lecteur similaire sur la même machine

J'ai besoin de monter (et d'automonter, par exemple via fstab) de façon transparente un répertoire sur un lecteur pour qu'il apparaisse au niveau de la ligne de commande et de l'interface graphique comme un répertoire sur un autre lecteur, sur la même machine. Cela permet de contourner certains logiciels "intelligents" qui détectent que les liens symboliques et les alias ne sont pas des répertoires "réels" et refusent d'agir dessus.

Sous Linux, cela serait très simple, avec :
mount --bind /chemin1/répertoire_source /chemin2/répertoire_cible
Cependant, la version de mount de Mac OS ne prend pas en charge cette fonctionnalité de liaison (sous aucune forme, y compris mount -o bind, ou mount -B), autant que je puisse le déterminer. Il semble également que ni Macports, Homebrew, ni Fink ne fournissent une version portée de mount avec une telle option. Certains outils de montage plus spécialisés disponibles ne semblent pas non plus correspondre (par exemple, xmount est pour les images disque, et djmount est pour les volumes réseau).

Pour être clair, je n'essaie pas de monter un disque ou une partition en tant que volume ou en tant que répertoire local, ni de créer un partage à monter arbitrairement par différents utilisateurs sur différentes machines. Plutôt, je veux monter un répertoire, possédé et modifiable uniquement par un utilisateur particulier, sur un disque HFS+ comme s'il s'agissait d'un répertoire sur un autre disque HFS+, localement, de manière transparente, avec les mêmes autorisations et sans problèmes de sécurité/intégrité.

Une solution de contournement approximative est de créer un partage CIFS du répertoire à monter, et (en appelant une variante personnalisée de smb.conf) limiter ses autorisations dans Samba de manière appropriée, de sorte qu'il ne soit pas public, et ait les mêmes autorisations que l'emplacement cible, exactement le bon masque de fichier et de répertoire, etc. ; puis le monter de cette manière. Mais cela serait inefficace, car cela utiliserait le protocole de partage de fichiers Windows, en créant en plus un partage visible qui apparaît comme un volume montable à partir du serveur SMB, pour quiconque peut accéder à cette machine via SMB/CIFS (même s'ils ne peuvent pas réellement le monter). L'interface graphique de Mac le représentera probablement également comme un volume partagé.

-1voto

F0RR Points 337

Pour monter un disque dur sur un point de montage personnalisé:

Vous pouvez le faire avec diskutil mount et l'option -mountPoint. De la page de manuel :

mount [readOnly] [-mountPoint path] device

Monter un seul volume. Si readOnly est spécifié, alors le système de fichiers est monté en lecture seule, même si le système de fichiers sous-jacent du volume et/ou le périphérique et/ou le média supportent l'écriture; même le super-utilisateur ne peut pas écrire dessus; c'est la même chose que l'option rdonly de la commande mount (8). Si un -mountPoint est spécifié, alors ce chemin, plutôt que le chemin standard de /Volumes/NomDuVolume, sera utilisé comme la vue dans le contenu du fichier de volume; un répertoire à ce chemin doit déjà exister.

De man diskutil, section 'Verbes'.

La syntaxe pour monter sur un point de montage personnalisé est la suivante :

diskutil mount -mountPoint /chemin/vers/point/de/montage/personnalise [volume (identifiant/UUID/étiquette)]

Gardez à l'esprit que /chemin/vers/point/de/montage/personnalise doit être un répertoire, tout comme avec mount, et que votre identifiant/UUID/étiquette sont spécifiques au volume (c'est-à-dire /dev/diskXsY et non /dev/diskX). Monter sur un point de montage personnalisé ne peut pas être fait avec diskutil mountDisk, et ne fonctionne qu'avec un seul volume à la fois.

De ma réponse à Comment monter un disque par UUID or LABEL dans OS X El Capitan.

J'ai testé ceci en "montant" une clé USB sur un disque dur externe. Par exemple,

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

Comme vous pouvez le voir, /dev/disk2s1, ou USB-32 est le nom de la clé USB que je vais monter sur le disque dur, /dev/disk1s2, ou 1T-HDD. Pour ce faire, utilisez l'option -mountPoint. Mais d'abord, assurez-vous qu'il y a un répertoire d'atterrissage pour monter dessus :

$ mkdir /Volumes/1T-HDD/pointdemontage

Et maintenant, pour monter :

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

Le disque monté apparaîtra aux emplacements suivants : /Volumes, et /Volumes/1T-HDD/pointdemontage en tant que USB-32 et pointdemontage respectivement.

N'oubliez pas de démonter (diskutil umount) votre équivalent de USB-32 avant de le remonter sur votre équivalent de 1T-HDD.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X