Wie kann ich den Einbindungspfad eines USB-Geräts unter OSX abrufen?

Wie kann ich den Einbindungspfad eines USB-Geräts unter OSX abrufen?

Ich habe ein Backup-Skript, das einige Daten auf einem USB-Gerät sichert. Das Problem dabei ist, dass OSX manchmal den erwarteten Mount-Pfad ändert. Wenn beispielsweise eine Datei unter dem erwarteten Mount-Pfad gesperrt ist, mountet OSX sie unter einem anderen Pfad. Ein USB-Gerät mit dem Namen „BACKUP“ kann unter /Volumes/BACKUP-1 statt unter /Volumes/BACKUP gemountet werden.

Gibt es eine Möglichkeit, den aktuellen Mount-Pfad eines USB-Geräts im OSX-Terminal herauszufinden? So etwas wie „mount_path BACKUP“ (Befehl ist gefälscht), das dann „/Volumes/BACKUP-1“ oder nichts zurückgeben würde, wenn das Gerät nicht gemountet wurde?

Antwort1

Die folgenden Befehle zeigen Ihnen Informationen zu gemounteten Volumes:

  • Das bekannte Unix mount, beispielsweise /dev/disk5s3gemountet unter/Volumes/Foo
  • diskutil listzeigt eine Übersicht aller Datenträger und Volumes
  • diskutil info /dev/disk5s3zeigt Informationen zu diesem Datenträger an, einschließlich eines Volume UUID, mit dem dieser Datenträger eindeutig identifiziert werden kann.

Sie können die Abfrage diskutil infomithilfe der UUID des Datenträgers durchführen:

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

Beispiel für die 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

Antwort2

Was ist mit diesem Befehl:

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

In der Spalte "Mounted on" erhältst Du alle Mount Points aller auf gemounteten Geräte "/Volumes", was in meinem Fall fast immer USB-Geräte sind ;-)

Die grepBefehle überspringen grundsätzlich die Festplatte, die auf gemountet ist "/".

Im Terminal meines OSX Snow Leopard verwende ich es für einen schnellen Überblick über die Mount Points meiner aktuell angeschlossenen USB-Geräte. Wenn Sie nur an Mount Points und nicht an allen anderen Parametern wie UUID usw. interessiert sind, ist dies meiner Meinung nach der direktere Weg als "diskutil"mit all seinen Informationen.

Antwort3

Ich rufe es in einer Variablen ab:

media=\`df | grep "media" | awk '{print $6}'\`

oder

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

Der dfBefehl listet die Partitionen auf, die resultierende Ausgabe wird als Eingabe an den Befehl grep weitergeleitet, der nur die Zeilen filtert und behält, die das Wort „media“ enthalten. Dieses wird dann an den awkBefehl weitergeleitet, der nur die 6. Spalte seiner einzeiligen Eingabe behält.

Antwort4

Nur das gute alte diskutil. Dies ist nicht Linux, wo Sie wahrscheinlich einen Blick in /sys oder so werfen können.

diskutil info "$VolumeName" | grep "Mount Point" | tr " " "\n" | tail -1

verwandte Informationen