Ich muss ein Verzeichnis (Ordner) auf einem Laufwerk nahtlos mounten (und automatisch mounten, z. B. über fstab), um auf der Befehlszeilen- und GUI-Ebene als Verzeichnis auf einem anderen Laufwerk auf demselben Computer angezeigt zu werden. Dies dient dazu, einige "intelligente" Software zu besiegen, die erkennt, dass symbolische Links und Aliase keine "echten" Verzeichnisse sind, und sich weigert, darauf zu reagieren.
Unter Linux wäre dies trivial einfach, mit:
mount --bind /path1/source_dir /path2/target_dir
Allerdings unterstützt die Mount-Version von Mac OS diese Bindungsfunktion nicht (in irgendeiner Form, einschließlich mount -o bind
, oder mount -B
), soweit ich feststellen kann. Es scheint auch, dass keiner von Macports, Homebrew oder Fink eine portierte Version von mount mit einer solchen Option anbietet. Einige verfügbare, spezialisiertere Mount-Tools scheinen auch nicht in Beziehung zu stehen (z. B. xmount ist für Disk-Images und djmount für Netzwerk-Volumes).
Um es klar zu sagen, ich versuche nicht, eine Festplatte oder Partition als Volume oder als lokales Verzeichnis zu mounten, noch eine Freigabe zu erstellen, die willkürlich von verschiedenen Benutzern auf verschiedenen Computern gemountet werden soll. Vielmehr möchte ich einen Ordner, der nur einem bestimmten Benutzer gehört und beschreibbar ist, auf einer HFS+-Festplatte bereitstellen, als wäre es ein Ordner auf einer anderen HFS+-Festplatte, lokal, auf eine Weise, die effektiv transparent ist, mit denselben Berechtigungen und ohne Sicherheit /Integritätsprobleme.
Eine schlampige Problemumgehung besteht darin, eine CIFS-Freigabe des Ordners zu erstellen, der gemountet werden soll, und (durch Aufrufen einer benutzerdefinierten, einmaligen Variante von smb.conf) seine Berechtigungen in Samba einfach so einzuschränken, dass er nicht öffentlich ist und die hat gleiche Berechtigungen wie der Zielort, genau die richtige Datei- und Verzeichnismaske etc.; dann so montieren. Dies wäre jedoch ineffizient, da es das blöde Windows-Filesharing-Protokoll verwenden und eine sichtbare Freigabe erstellen würde, die als ein montierbares Volume vom SMB-Server für jeden angezeigt wird, der über SMB/CIFS auf diesen Computer zugreifen kann (auch wenn dies nicht möglich ist). tatsächlich montieren). Die Mac-GUI wird es wahrscheinlich auch als freigegebenes Volume darstellen.
So mounten Sie eine Festplatte an einem benutzerdefinierten Mountpoint:
diskutil mount
Sie können dies mit und der Option tun-mountPoint
. Aus der Manpage:mount [schreibgeschützt] [-mountPoint-Pfad] Gerät
Mounten Sie ein einzelnes Volume. Wenn readOnly angegeben ist, wird das Dateisystem schreibgeschützt gemountet, selbst wenn das zugrunde liegende Dateisystem und/oder Gerät und/oder Medium des Volumes Schreiben unterstützt; selbst der Superuser darf nicht darauf schreiben; Dies ist dasselbe wie die rdonly Option zum Einhängen (8). Wenn ein -mountPoint angegeben ist, wird dieser Pfad anstelle des Standardpfads von /Volumes/VolumeName als Ansicht des Inhalts der Volume-Datei verwendet; ein Verzeichnis unter diesem Pfad muss bereits vorhanden sein.
Aus
man diskutil
, Abschnitt 'Verben'.Die Syntax zum Mounten an einem benutzerdefinierten Mountpoint lautet wie folgt:
diskutil mount -mountPoint /path/to/custom/mountpoint [volume (identifier/UUID/label)]
Denken Sie daran, dass es
/path/to/custom/mountpoint
sich um ein Verzeichnis handeln muss , genau wie beimount
, und dass Ihre Kennung/UUID/Label spezifisch für das Volume sind (dh/dev/diskXsY
nicht/dev/diskX
). Das Mounten an einem benutzerdefinierten Mountpoint kann nicht mit durchgeführt werdendiskutil mountDisk
und funktioniert nur mit jeweils einem Volume.
Aus meiner Antwort auf So mounten Sie die Festplatte per UUID oder LABEL in OS X El Capitan .
Ich habe dies getestet, indem ich einen USB-Stick auf einer externen Festplatte "gemountet" habe. Als Beispiel,
$ 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
Wie Sie sehen können, ist /dev/disk2s1
, oder USB-32
der Name des USB-Sticks, den ich auf der Festplatte mounten werde, /dev/disk1s2
, oder HDD-1T
. Nutzen Sie dazu die -mountPoint
Option. Stellen Sie jedoch zuerst sicher, dass es ein Landing-Verzeichnis gibt, in das gemountet werden kann:
$ mkdir /Volumes/HDD-1T/mountpoint
Und jetzt zum montieren:
$ diskutil mount -mountPoint /Volumes/HDD-1T/mountpoint /dev/disk1s2
Die bereitgestellte Festplatte wird an den folgenden Orten angezeigt: /Volumes
, und /Volumes/HDD-1T/mountpoint
als bzw.USB-32
mountpoint
Stellen Sie sicher, dass Sie Ihr Äquivalent unmounten ( diskutil umount
) , bevor Sie es erneut auf Ihrem Äquivalent mounten.USB-32
HDD-1T
IconDaemon
S. McCandlish
IconDaemon
S. McCandlish