Tengo un script de respaldo que respalda algunos datos en un dispositivo USB. El problema que tengo es que OSX a veces cambia la ruta de montaje esperada. Por ejemplo, si algún archivo está bloqueado en la ruta de montaje esperada, OSX lo monta en otra ruta. Se puede montar un dispositivo USB llamado 'BACKUP' en /Volumes/BACKUP-1 en lugar de /Volumes/BACKUP.
¿Hay alguna manera de averiguar la ruta de montaje actual de un dispositivo USB en la Terminal OSX? ¿Algo como 'mount_path BACKUP' (el comando es falso) que luego devolvería '/Volumes/BACKUP-1' o nada si el dispositivo no estaba montado?
Respuesta1
Los siguientes comandos le muestran información sobre los volúmenes montados:
- El conocido Unix
mount
, que muestra, por ejemplo,/dev/disk5s3
montado en/Volumes/Foo
diskutil list
muestra una descripción general de todos los discos y volúmenesdiskutil info /dev/disk5s3
muestra información sobre ese volumen, incluida unaVolume UUID
que se puede utilizar para identificar de forma única ese volumen.
Puede realizar consultas diskutil info
utilizando el UUID del volumen:
$ diskutil info DEC8759E-F77D-3EAE-B3EB-B6438F1AA428 | grep 'Mount Point'
Mount Point: /Volumes/DroboOne
Ejemplo de salida del comando en mi sistema:
$ 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
Respuesta2
¿Qué pasa con este comando?
df -lH | grep "Filesystem"; df -lH | grep "/Volumes/*"
En la columna "Montado en" aparecen todos los puntos de montaje de todos los dispositivos montados "/Volumes"
, que en mi caso casi siempre son dispositivos USB ;-)
Los grep
comandos básicamente omiten el disco duro que está montado en "/"
.
En la terminal de mi OSX Snow Leopard, lo uso para obtener una descripción general rápida de los puntos de montaje de mis dispositivos USB actualmente conectados. Si solo está interesado en los puntos de montaje y no en todos los demás parámetros como UUID, etc., en mi opinión, esta sería la forma más sencilla de hacerlo "diskutil"
con toda su información.
Respuesta3
Lo recupero en una variable:
media=\`df | grep "media" | awk '{print $6}'\`
o
media=$(df | awk '/media/ {print $6}')
El df
comando enumera las particiones, la salida resultante se canaliza como entrada al comando grep que filtra y mantiene solo las líneas que contienen la palabra media, que luego se canaliza al awk
comando que solo mantiene la sexta columna de su entrada de una línea.
Respuesta4
Sólo los buenos viejos diskutil
. Esto no es Linux, donde probablemente puedas echar un vistazo a /sys o algo así.
diskutil info "$VolumeName" | grep "Mount Point" | tr " " "\n" | tail -1