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

Jak mogę uzyskać ścieżkę montowania urządzenia USB w systemie OSX?

Advertisement

Mam skrypt kopii zapasowej, który tworzy kopię zapasową niektórych danych na urządzeniu USB. Problem, który mam, polega na tym, że OSX czasami zmienia oczekiwaną ścieżkę montowania. Na przykład, jeśli jakiś plik jest zablokowany pod oczekiwaną ścieżką montowania, OSX montuje go na innej ścieżce. Urządzenie USB o nazwie ‘BACKUP’ może być zamontowane w /Volumes/BACKUP-1 zamiast /Volumes/BACKUP.

Czy istnieje sposób, aby dowiedzieć się o aktualnej ścieżce montowania urządzenia USB w Terminalu OSX? Coś w stylu ‘mount_path BACKUP’ (polecenie jest fałszywe), które zwróciłoby ‘/Volumes/BACKUP-1’ lub nic, jeśli urządzenie nie było zamontowane?

Advertisement
Advertisement

Odpowiedzi (8)

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

Następujące komendy pokazują informacje o zamontowanych woluminach:

  • Znany uniksowy mount, pokazujący np. /dev/disk5s3 zamontowany pod adresem /Volumes/Foo
  • diskutil list pokazuje przegląd wszystkich dysków i woluminów
  • diskutil info /dev/disk5s3 pokazuje informacje o tym woluminie, w tym Volume UUID, który może być użyty do unikalnej identyfikacji tego woluminu.

Możesz zapytać diskutil info używając UUID woluminu:

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

Przykładowe wyjście polecenia w moim systemie:

$ 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
``` * * * 

0x1&.
10
10
10
2012-10-26 20:32:46 +0000

A co z tym poleceniem:

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

W kolumnie “Mounted on” otrzymujemy wszystkie punkty montowania wszystkich urządzeń zamontowanych na "/Volumes", które w moim przypadku są prawie zawsze urządzeniami USB ;-)

Polecenia grep w zasadzie pomijają dysk twardy, który jest zamontowany na "/".

W terminalu mojego OSX Snow Leopard, używam tego do szybkiego przeglądu punktów montowania moich aktualnie podłączonych urządzeń USB. Jeśli interesują cię tylko punkty montowania, a nie wszystkie inne parametry jak UUID itp., to jest to moim zdaniem prostsza droga niż "diskutil" z wszystkimi informacjami.

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

Pobieram je w zmiennej:

media=Pobieram je w zmiennej: 

df | grep "media" | awk '{print $6}'Pobieram je w zmiennej: 


lub

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

Polecenie df listuje partycje, wynikowe wyjście jest przesyłane jako wejście do polecenia grep, które filtruje i zachowuje tylko linie zawierające słowo media, które następnie jest przesyłane do polecenia awk, które zachowuje tylko 6 kolumnę swojego jednowierszowego wejścia.

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

Po prostu stare dobre diskutil. To nie jest Linux, gdzie prawdopodobnie możesz zajrzeć do /sys czy coś takiego.

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

To jest to, czego używam w moich skryptach powłoki na OS X

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

Do tego celu użyłbym po prostu fstab. Jest wątek dotyczący tego tematu tutaj na Super User: Mac Lion: fstab jest przestarzały. więc co go zastąpi, aby zapobiec montowaniu partycji?

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

Skończyło się na użyciu następującego skryptu basha:

#!/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

To może działać lepiej:

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

Pytania pokrewne

12
11
6
5
6
Advertisement
Advertisement