2012-05-26 09:09:09 +0000 2012-05-26 09:09:09 +0000
61
61

Wie kann ich den Mount-Pfad eines USB-Geräts unter OSX ermitteln?

Ich habe ein Backup-Skript, das einige Daten auf einem USB-Gerät sichert. Das Problem, das ich habe, ist, dass OSX manchmal den erwarteten Einhängepfad ändert. Wenn zum Beispiel eine Datei unter dem erwarteten Einhängepfad gesperrt ist, hängt OSX sie unter einem anderen Pfad ein. Ein USB-Gerät mit dem Namen ‘BACKUP’ kann unter /Volumes/BACKUP-1 anstatt unter /Volumes/BACKUP gemountet werden.

Gibt es eine Möglichkeit, den aktuellen Einhängepfad eines USB-Gerätes im OSX Terminal herauszufinden? So etwas wie ‘mount_path BACKUP’ (der Befehl ist ein Fake), der dann ‘/Volumes/BACKUP-1’ oder nichts zurückgeben würde, wenn das Gerät nicht gemountet ist?

Antworten (8)

72
72
72
2012-05-26 09:56:13 +0000

Die folgenden Befehle zeigen Ihnen Informationen über gemountete Volumes:

  • Das bekannte Unix mount, das z. B. anzeigt, dass /dev/disk5s3 unter /Volumes/Foo gemountet ist
  • diskutil list zeigt eine Übersicht über alle Platten und Volumes
  • diskutil info /dev/disk5s3 zeigt Informationen über dieses Volume, einschließlich eines Volume UUID, das zur eindeutigen Identifizierung dieses Volumes verwendet werden kann.

Sie können diskutil info unter Verwendung der UUID des Volumes abfragen:

$ diskutil info DEC8759E-F77D-3EAE-B3EB-B6438F1AA428 | grep 'Mount Point'
   Mount Point: /Volumes/DroboOne

Beispielhafte Befehlsausgabe auf meinem System:

$ mount
/dev/disk1 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
localhost:/bNqIvVr1ZdFBdf19Io81Q4 on /Volumes/MobileBackups (mtmfs, nosuid, read-only, nobrowse)
/dev/disk4 on /Volumes/MyBook (hfs, local, nodev, nosuid, journaled)
/dev/disk5s3 on /Volumes/DroboOne (hfs, local, nodev, nosuid, journaled, noowners)
/dev/disk7s3 on /Volumes/DroboTwo (hfs, local, nodev, nosuid, journaled, noowners)
/dev/disk6s3 on /Volumes/DroboThree (hfs, local, nodev, nosuid, journaled, noowners)

$ diskutil list
/dev/disk0
   #: TYPE NAME SIZE IDENTIFIER
   0: GUID_partition_scheme *256.1 GB disk0
   1: EFI 209.7 MB disk0s1
   2: Apple_CoreStorage 240.0 GB disk0s2
   3: Apple_Boot Recovery HD 650.0 MB disk0s3
/dev/disk1
   #: TYPE NAME SIZE IDENTIFIER
   0: Apple_HFS Servus10 HD *239.7 GB disk1
/dev/disk2
   #: TYPE NAME SIZE IDENTIFIER
   0: GUID_partition_scheme *3.0 TB disk2
   1: EFI 209.7 MB disk2s1
   2: Apple_CoreStorage 3.0 TB disk2s2
   3: Apple_Boot Boot OS X 134.2 MB disk2s3
/dev/disk4
   #: TYPE NAME SIZE IDENTIFIER
   0: Apple_HFS MyBook *3.0 TB disk4
/dev/disk5
   #: TYPE NAME SIZE IDENTIFIER
   0: Apple_partition_scheme *2.2 TB disk5
   1: Apple_partition_map 32.3 KB disk5s1
   2: Apple_HFS DroboOne 2.2 TB disk5s3
/dev/disk6
   #: TYPE NAME SIZE IDENTIFIER
   0: Apple_partition_scheme *2.2 TB disk6
   1: Apple_partition_map 32.3 KB disk6s1
   2: Apple_HFS DroboThree 2.2 TB disk6s3
/dev/disk7
   #: TYPE NAME SIZE IDENTIFIER
   0: Apple_partition_scheme *2.2 TB disk7
   1: Apple_partition_map 32.3 KB disk7s1
   2: Apple_HFS DroboTwo 2.2 TB disk7s3

$ diskutil info /dev/disk5s3
   Device Identifier: disk5s3
   Device Node: /dev/disk5s3
   Part of Whole: disk5
   Device / Media Name: Untitled

   Volume Name: DroboOne
   Escaped with Unicode: DroboOne

   Mounted: Yes
   Mount Point: /Volumes/DroboOne
   Escaped with Unicode: /Volumes/DroboOne

   File System Personality: Journaled HFS+
   Type (Bundle): hfs
   Name (User Visible): Mac OS Extended (Journaled)
   Journal: Journal size 172032 KB at offset 0x4001000
   Owners: Disabled

   Partition Type: Apple_HFS
   OS Can Be Installed: No
   Media Type: Generic
   Protocol: FireWire
   SMART Status: Not Supported
   Volume UUID: DEC8759E-F77D-3EAE-B3EB-B6438F1AA428

   Total Size: 2.2 TB (2198888927232 Bytes) (exactly 4294704936 512-Byte-Blocks)
   Volume Free Space: 169.4 GB (169412173824 Bytes) (exactly 330883152 512-Byte-Blocks)
   Device Block Size: 512 Bytes

   Read-Only Media: No
   Read-Only Volume: No
   Ejectable: Yes

   Whole: No
   Internal: No
10
10
10
2012-10-26 20:32:46 +0000

Wie wäre es mit diesem Befehl:

df -lH | grep "Filesystem"; df -lH | grep "/Volumes/*"

In der Spalte “Mounted on” erhalten Sie alle Mount Points aller Geräte, die auf "/Volumes" gemountet sind, was in meinem Fall fast immer USB-Geräte sind ;-)

Die grep-Befehle überspringen grundsätzlich die Festplatte, die an "/" gemountet ist.

verwende ich im Terminal meines OSX Snow Leopard, um einen schnellen Überblick über die Mount Points meiner aktuell angeschlossenen USB-Geräte zu bekommen. Wenn Sie nur an den Mount Points und nicht an all den anderen Parametern wie UUID usw. interessiert sind, wäre dies meiner Meinung nach der einfachere Weg als "diskutil" mit all seinen Informationen.

2
2
2
2015-12-29 11:14:55 +0000

Ich rufe sie in einer Variablen ab:

media=Ich rufe sie in einer Variablen ab: 

df | grep "media" | awk '{print $6}'Ich rufe sie in einer Variablen ab: 


oder

media=$(df | awk '/media/ {print $6}')

Der Befehl df listet die Partitionen auf, die resultierende Ausgabe wird als Eingabe an den Befehl grep geleitet, der nur die Zeilen filtert und behält, die das Wort media enthalten, das dann an den Befehl awk geleitet wird, der nur die 6.

1
1
1
2019-05-11 12:18:33 +0000

Einfach das gute alte diskutil. Dies ist nicht Linux, wo Sie wahrscheinlich in /sys oder so gucken können.

diskutil info "$VolumeName" | grep "Mount Point" | tr " " "\n" | tail -1
0
0
0
2015-02-25 15:53:57 +0000

Dies ist, was ich in meinen Shell-Skripten unter OS X verwende

df | awk '{print $6}' | grep -Ex "/Volumes/myvolume"
0
0
0
2012-05-26 12:33:15 +0000

Ich würde dafür einfach fstab verwenden. Es gibt einen Thread zu diesem Thema hier auf Super User: Mac Lion: fstab is deprecated. so what replaces it to prevent a partition from mounting?

0
0
0
2012-09-26 09:25:39 +0000

Ich habe schließlich dieses Bash-Skript verwendet:

#!/bin/sh
#
# Retrieves the mount point of an OSX volume name or UUID.
# @param $1 Name of the volume or UUID of the volume.
# @return returns the mount path or an empty string if the volume is not mounted. 
#
diskutil info $1 | grep 'Mount Point' | cut -d : -f 2 | sed 's/^ *//g' | sed 's/ *$//g';
-1
-1
-1
2017-04-27 13:40:38 +0000

Dies könnte besser funktionieren:

df -lH | grep -E "*putinyourvolumelabel*$" | awk '{print $1}''