J'ai un script de sauvegarde qui sauvegarde des données sur un périphérique USB. Le problème que j'ai, c'est qu'OSX modifie parfois le chemin de montage attendu. Par exemple, si un fichier est verrouillé sous le chemin de montage attendu, OSX le monte sur un autre chemin. Un périphérique USB nommé 'BACKUP' peut être monté sur/Volumes/BACKUP-1 au lieu de/Volumes/BACKUP.
Est-il possible de connaître le chemin de montage actuel d'un périphérique USB dans le terminal OSX? Quelque chose comme 'mount_path BACKUP' (la commande est fausse) qui renverrait alors '/ Volumes/BACKUP-1' ou rien si le périphérique n'était pas monté?
J'ai fini par utiliser ce script bash:
#!/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';
Les commandes suivantes vous montrent des informations sur les volumes montés:
mount
, montrant par exemple /dev/disk5s3
monté à /Volumes/Foo
diskutil list
affiche un aperçu de tous les disques et volumesdiskutil info /dev/disk5s3
affiche des informations sur ce volume, y compris un Volume UUID
pouvant être utilisé pour identifier ce volume de manière unique.Vous pouvez interroger diskutil info
en utilisant l'UUID du volume:
$ diskutil info DEC8759E-F77D-3EAE-B3EB-B6438F1AA428 | grep 'Mount Point'
Mount Point: /Volumes/DroboOne
Exemple de sortie de commande sur mon système:
$ 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
Qu'en est-il de cette commande:
df -lH | grep "Filesystem"; df -lH | grep "/Volumes/*"
Dans la colonne "Monté sur", vous trouverez tous les points de montage de tous les périphériques montés sur "/Volumes"
, qui dans mon cas sont presque toujours des périphériques USB ;-)
Les commandes grep
ignorent le disque dur qui est monté sur "/"
.
Dans le terminal de mon OSX Snow Leopard, je l'utilise pour un aperçu rapide des points de montage de mes périphériques USB actuellement connectés. Si vous êtes uniquement intéressé par les points de montage et non par tous les autres paramètres tels que UUID, etc., ce serait à mon avis le moyen le plus simple de procéder plutôt que "diskutil"
avec toutes ses informations.
Je le récupère dans une variable:
media=\`df | grep "media" | awk '{print $6}'\`
ou
media=$(df | awk '/media/ {print $6}')
La commande df
répertorie les partitions, la sortie résultante est acheminée vers la commande grep qui filtre et conserve uniquement les lignes contenant le média Word, qui est ensuite acheminée vers la commande awk
qui ne conserve que la 6e colonne de son entrée.
Je voudrais juste utiliser fstab pour cela. Il y a un fil à ce sujet ici sur Super User: Mac Lion: fstab est obsolète. alors qu'est-ce qui le remplace pour empêcher une partition de monter?
C’est ce que j’utilise dans mes scripts Shell sous OS X
df | awk '{print $6}' | grep -Ex "/Volumes/myvolume"