Supongamos que estamos realizando algunas operaciones en unidades utilizando, por ejemplo diskutil
. Normalmente utilizamos /dev/diskX
para indicar en qué unidad estamos trabajando, pero el número X podría cambiar la próxima vez que conectemos la unidad al ordenador, así que tenemos que mirar y comprobar el número X una y otra vez. En Linux tenemos /dev/disk/by-uuid
. ¿Cómo podríamos conseguirlo en MacOS?
Respuestas
¿Demasiados anuncios?Utilice el siguiente comando para obtener el UUID de un disco:
diskutil info diskX | awk '/Volume UUID:/ {print $5}'
Esto le dará la UUID de disco/volumen (He omitido la parte "Disco" en la sentencia awk para simplificar).
Una vez que lo tengas, puedes utilizarlo con diskutil:
diskutil info XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
He probado esto con una unidad externa WD USB y funcionó como se esperaba.
Advertencias
-
Unidades APFS: La unidad sintetizada debe estar referenciada . Ejemplo:
/dev/disk5
es la unidad física y/dev/disk6
sería la unidad sintetizada. -
HFS/HFS+ en GPT: Se debe hacer referencia a una partición/corte. Ejemplo:
/dev/disk5s1
te dará la primera partición de la unidad. Alternativamente, puede obtener los UUID de las particiones con el comando:sudo gpt show diskX | awk '/GPT\ part\ -/ {print $3 "--" $7}'
Y obtendrá los UUID de las particiones por índice:
1--XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 2--YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY
-
MS-DOS en GPT: Se puede hacer referencia a la unidad o partición. Ejemplos:
/dev/diskX
o/dev/diskXsN
-
MS-DOS en MBR: No hay UUID de disco disponible . Sin embargo, puede obtener el UUID del volumen con el comando:
diskutil info diskXsN | awk '/Volume\ UUID:/ {print $3}'
-
HFS/HFS+ en MBR: Igual que MS-DOS en MBR.
No hay /dev/disk/by-uuid
estructura de carpetas en MacOS.
MacOS utiliza UUIDs para estructuras internas dentro de un disco físico, como una partición (equiparable a un contenedor APFS o partición HFS+), o un volumen APFS. Lo mejor que puede hacer es identificar un dispositivo físico después de la conexión por las estructuras que contiene, en lugar de cualquier cosa asociada con el propio dispositivo físico.
La especificación del dispositivo en diskutil
aceptarán un UUID como argumento. Compruebe man diskutil
y busque DEVICES
para todos los identificadores de dispositivo aceptados.
Puedes recuperar el UUID de un contenedor o volumen concreto utilizando, por ejemplo diskutil info disk5
y buscando el Disk / Partition UUID
o Volume UUID
.
Desafortunadamente no creo que haya ningún cambio que hacer diskutil list
emite el UUID. Sin embargo, puede utilizar diskutil apfs list
que también mostrará los UUID de los contenedores y volúmenes APFS.
df | grep "/dev/" | awk '{print $NF " = " $1}'
es una forma de asignar los nombres de los volúmenes a sus ID de dispositivo. El nombre del volumen ( $NF
) no cambiará hasta que un usuario o script lo cambie. A sed
o perl
(etc.) regex puede eliminar el ID de trozo si es necesario: s:(/dev/disk\d+)s\d+:\1: