10 votos

/dev/disk/by-id en MacOS?

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?

6voto

Douglas Puntos 10417

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.

2voto

Andy Griffiths Puntos 1

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.

1voto

WGroleau Puntos 255
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:

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X