Supposons que nous effectuions des opérations sur des disques en utilisant par exemple diskutil
. En général, nous utilisons /dev/diskX
pour indiquer le lecteur sur lequel nous travaillons, mais le numéro X peut changer la prochaine fois que nous connectons le lecteur à l'ordinateur, nous devons donc regarder et vérifier le numéro X encore et encore. Sous Linux, nous avons /dev/disk/by-uuid
. Comment obtenir cela sur MacOS ?
Réponses
Trop de publicités?Utilisez la commande suivante pour obtenir l'UUID d'un disque :
diskutil info diskX | awk '/Volume UUID:/ {print $5}'
Vous obtiendrez ainsi la Disque / Volume UUID (J'ai omis la partie "Disk" dans la déclaration awk pour des raisons de simplicité).
Une fois que vous l'avez, vous pouvez l'utiliser avec diskutil :
diskutil info XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
J'ai testé cela avec un disque externe WD USB et cela a fonctionné comme prévu.
Mises en garde
-
lecteurs APFS : L'entraînement synthétisé doit être référencé . Exemple :
/dev/disk5
est le lecteur physique et/dev/disk6
serait l'entraînement synthétisé. -
HFS/HFS+ sur GPT : Une partition/tranche doit être référencée. Exemple :
/dev/disk5s1
vous donnera la première partition du disque. Vous pouvez également obtenir les UUID des partitions à l'aide de la commande :sudo gpt show diskX | awk '/GPT\ part\ -/ {print $3 "--" $7}'
Vous obtiendrez les UUID des partitions par index :
1--XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 2--YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY
-
MS-DOS sur GPT : Le lecteur ou la partition peut être référencé. Exemples :
/dev/diskX
ou/dev/diskXsN
-
MS-DOS sur MBR : Il n'y a pas d'UUID de disque disponible . Toutefois, vous pouvez obtenir le UUID du volume avec la commande :
diskutil info diskXsN | awk '/Volume\ UUID:/ {print $3}'
-
HFS/HFS+ sur MBR : Identique à MS-DOS sur MBR.
Il n'y a pas de /dev/disk/by-uuid
dans MacOS.
MacOS utilise des UUID pour les structures internes d'un disque physique, telles qu'une partition (équivalente à un conteneur APFS ou à une partition HFS+) ou un volume APFS. Le mieux que vous puissiez faire est d'identifier un périphérique physique après la connexion par les structures qu'il contient, plutôt que par tout ce qui est associé au périphérique physique lui-même.
La spécification de l'appareil dans diskutil
accepteront un UUID comme argument. Vérifier man diskutil
et rechercher DEVICES
pour tous les identificateurs de dispositifs acceptés.
Vous pouvez récupérer l'UUID d'un conteneur ou d'un volume particulier en utilisant ex. diskutil info disk5
et en recherchant le Disk / Partition UUID
ou Volume UUID
.
Malheureusement, je ne pense pas qu'il y ait de changement à faire. diskutil list
sortir l'UUID. Cependant, vous pouvez utiliser diskutil apfs list
qui produira également les UUID pour les conteneurs et les volumes APFS.
df | grep "/dev/" | awk '{print $NF " = " $1}'
est un moyen de faire correspondre les noms des volumes à leurs identifiants. Le nom du volume ( $NF
) ne changera pas jusqu'à ce qu'un utilisateur ou un script le modifie. A sed
ou perl
(etc.) peut supprimer l'identifiant de la tranche si nécessaire : s:(/dev/disk\d+)s\d+:\1: