it-swarm.com.de

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

Ich habe ein Sicherungsskript, das einige Daten auf einem USB-Gerät sichert. Das Problem, das ich habe, ist, dass OSX manchmal den erwarteten Bereitstellungspfad ändert. Wenn beispielsweise eine Datei unter dem erwarteten Mount-Pfad gesperrt ist, wird sie von OSX unter einem anderen Pfad gemountet. Ein USB-Gerät mit dem Namen 'BACKUP' kann unter/Volumes/BACKUP-1 anstelle von/Volumes/BACKUP eingehängt werden.

Gibt es eine Möglichkeit, den aktuellen Bereitstellungspfad eines USB-Geräts im OSX-Terminal herauszufinden? So etwas wie 'mount_path BACKUP' (Befehl ist falsch), der dann '/ Volumes/BACKUP-1' oder nichts zurückgibt, wenn das Gerät nicht gemountet ist?

56
xastor

Am Ende habe ich 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';
0
xastor

Die folgenden Befehle zeigen Informationen zu bereitgestellten Volumes an:

  • Das bekannte Unix mountname__, das z.B. /dev/disk5s3 eingehängt bei /Volumes/Foo
  • diskutil list zeigt eine Übersicht aller Festplatten und Volumes
  • diskutil info /dev/disk5s3 zeigt Informationen zu diesem Volume an, einschließlich eines Volume UUID, mit dem dieses Volume eindeutig identifiziert werden kann.

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

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

Beispielbefehlsausgabe 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
66
Daniel Beck

Was ist mit diesem Befehl:

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

In der Spalte "Mounted on" werden alle Mount Points aller auf "/Volumes" gemounteten Geräte angezeigt, bei denen es sich in meinem Fall fast immer um USB-Geräte handelt ;-)

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

Im Terminal meines OSX Snow Leopard verwende ich es, um einen schnellen Überblick über die Mount Points meiner aktuell angeschlossenen USB-Geräte zu erhalten. Wenn Sie sich nur für Mount Points und nicht für alle anderen Parameter wie UUID usw. interessieren, ist dies meiner Meinung nach der einfachere Weg als "diskutil" mit all seinen Informationen.

10
mallin

Ich rufe es in einer Variablen ab:

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

oder

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

Der Befehl df listet die Partitionen auf. Die resultierende Ausgabe wird als Eingabe an den Befehl grep weitergeleitet, der nur die Zeilen filtert und aufbewahrt, die das Word-Medium enthalten. Anschließend wird die Weiterleitung an den Befehl awk durchgeführt, der nur die 6. Spalte seiner Eingabe mit einer Zeile enthält.

2
Stephane

Ich würde dafür einfach fstab verwenden. Es gibt einen Thread zu diesem Thema hier auf Super User: Mac Lion: fstab ist veraltet. Was ersetzt es also, um die Montage einer Partition zu verhindern?

0
dag729

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

df | awk '{print $6}' | grep -Ex "/Volumes/myvolume"
0
DannyRe