Gibt es einen internen Algorithmus zur Berechnung von UUIDs eines Flash-Dateisystems?

Ich habe einige Experimente mit einer als ExFAT formatierten MicroSD-Karte durchgeführt und bin auf etwas gestoßen, das mich verwirrt.

Es scheint, dass mein neues Android-Telefon die MicroSD-Karte als einhängt /storage/[UUID], also zum Beispiel nicht /mnt/sdcard-extwie ich es gewohnt bin, es ist derzeit /storage/0CCE-1C48.

Da das ziemlich willkürlich ist, dachte ich, ich würde es in etwas ändern, das man sich leichter merken kann, wie 1234-DFDF(meine Initialen in der zweiten Hälfte). Ich habe tune2fs verwendet, um eine neue UUID anzugeben, und konnte die Änderung bestätigen, indem ich die Raw-Festplatte in einem Hex-Editor öffnete.

Ich habe tatsächlich entdeckt, dass die UUID 0x100064zumindest für meine bestimmte Festplatte bei hex offset gespeichert ist. Und wegen der Endian-ness wird es rückwärts gespeichert ( 481CCE0Cwird also vom Gerät als geparst 0CCE-1C48).

Wie auch immer, ich konnte überprüfen, ob es sich geändert hat 0xDFDF3412, wie es sollte. Ich steckte es in mein Telefon, schaltete das Telefon ein ... voila! Es war jetzt /storage/1234-DFDF.

ABER ... sobald ich die Karte ausgehängt und wieder eingehängt (oder das Telefon neu gestartet usw.) hatte, änderte sie sich sofort wieder in 0CCE-1C48! Wie kann das sein? Ich habe die UUID geändert und die ursprüngliche durch eine neue ersetzt!

Ich frage mich, ob in ExFAT ein Algorithmus integriert ist, der eine UUID basierend auf ... irgendetwas ... der Partitionsgröße, dem Label oder was auch immer generiert. Das Telefon versucht offensichtlich, die Seriennummer zu "validieren" und überschreibt ständig meine benutzerdefinierte mit der willkürlichen, die ich beim ersten Formatieren der Festplatte erhalten habe.

Und nein, die Volume-Seriennummer ("UUID") ist nichts wie eine Prüfsumme, sondern lediglich eine (Pseudo-)Zufallszahl: github.com/relan/exfat/blob/…

Antworten (1)

Ich habe keine Ahnung, wie Sie es geschafft haben, tune2fsdie UUID zu ändern, da sie nur in der Lage sein sollte, ext2/3/4 zu manipulieren.

Auf jeden Fall hat exFAT anscheinend genau wie FAT (32) einen Backup-Bootsektor. Ich vermute also, dass Sie es nur geschafft haben, die UUID im primären Bootsektor zu ändern, aber nicht im Backup-Sektor. Wenn Sie es also unmounten, macht der Dateisystemtreiber die Änderung gemäß dem Backup-Bootsektor automatisch rückgängig.

Geben Sie hier die Bildbeschreibung ein