¿Existe un algoritmo interno para calcular los UUID de un sistema de archivos flash?

He estado experimentando con una tarjeta MicroSD formateada como ExFAT y me he encontrado con algo que me deja perplejo.

Parece que mi nuevo teléfono Android monta la tarjeta MicroSD como /storage/[UUID], así que, por ejemplo, en lugar de /mnt/sdcard-extcomo estoy acostumbrado, actualmente es /storage/0CCE-1C48.

Como eso es bastante arbitrario, pensé en cambiarlo por algo más fácil de recordar, como 1234-DFDF(mis iniciales en la segunda mitad). Usé tune2fs para especificar un nuevo UUID y pude confirmar el cambio abriendo el disco sin procesar en un editor hexadecimal.

De hecho, descubrí que el UUID se almacena en el desplazamiento hexadecimal 0x100064, al menos para mi disco en particular. Y debido a Endian-ness, se almacena al revés (por lo que 481CCE0Cel dispositivo lo analiza como 0CCE-1C48).

De todos modos, pude verificar que cambió a 0xDFDF3412, como debería ser. Lo puse en mi teléfono, encendí el teléfono... ¡voilá! era /storage/1234-DFDFahora

PERO... tan pronto como desmonté y volví a montar la tarjeta (o reinicié el teléfono, etc.) ¡cambió de nuevo a 0CCE-1C48! ¿Cómo puede ser esto? ¡Cambié el UUID, reemplazando el original por uno nuevo!

Esto hace que me pregunte si hay algún algoritmo integrado en ExFAT que genere un UUID basado en... cualquier cosa... el tamaño de la partición, la etiqueta, lo que sea. Obviamente, el teléfono está tratando de "validar" el número de serie y sigue sobrescribiendo el mío personalizado con el arbitrario que me dieron cuando formateé el disco por primera vez.

Y no, la serie de volumen ("UUID") no se parece en nada a una suma de comprobación, sino simplemente a un número (pseudo) aleatorio: github.com/relan/exfat/blob/…

Respuestas (1)

No tengo idea de cómo te las arreglaste tune2fspara cambiar el UUID, ya que solo debería poder manipular ext2/3/4.

En cualquier caso, aparentemente exFAT tiene un sector de arranque de respaldo como FAT (32). Entonces, supongo que solo logró cambiar el UUID en el sector de arranque principal pero no en el de respaldo. Entonces, cuando lo desmonta, el controlador del sistema de archivos revierte el cambio de acuerdo con el sector de arranque de respaldo automáticamente.

ingrese la descripción de la imagen aquí