Ändern Sie die UUID der vfat-Partition

3816
friederbluemle

Wie ändere ich die UUID einer vfatPartition? Denn ext2/ext3/ext4dies geschieht mit einem einfachen

tune2fs -U <new-uuid> /dev/<partition> 

Gibt es einen ähnlichen Befehl für vfatPartitionen?

5

2 Antworten auf die Frage

7
Tommy

Die Volume-ID von FAT32 wird im ersten Sektor am Offset 67 (0x43) gespeichert, für FAT16 bei 39 (0x27). Sie können den ddBefehl verwenden, um ihn zu lesen (durch /dev/sdc1Ihre echte Partition ersetzen ):

dd bs=1 skip=67 count=4 if=/dev/sdc1 2>/dev/null \ | xxd -plain -u \ | sed -r 's/(..)(..)(..)(..)/\4\3-\2\1/' 

Und natürlich kann man auch eine neue UUID speichern (durch 1234-ABCDden gewünschten Wert ersetzen ):

UUID="1234-ABCD" printf "\x$\x$\x$\x$" \ | dd bs=1 seek=67 count=4 conv=notrunc of=/dev/sdc1 

Referenz: Physikalische FAT-Struktur (Offset der Volume-Seriennummer): https://technet.microsoft.com/en-us/library/cc776720(v=ws.10).aspx#w2k3tr_fat_how_gkxz

das ist erstaunlich! Dies ist besonders praktisch, wenn Sie eine externe Micro-SD-Karte auf einem Android-Gerät austauschen möchten und die neue mit dem gleichen Pfad wie die alte übereinstimmen möchte. therealmarv vor 5 Jahren 0
Beachten Sie, dass für FAT12 / FAT16-Volumes der Versatz 39 ist, nicht 67! Dies kann passieren, wenn Ihre Partition wirklich klein ist (meine war eine 256-MB-microSD-Karte). Sie können eine Sicherheitsüberprüfung durchführen, wenn Sie die Anzeige von `dd` mit der Ausgabe von` blkid` vergleichen, bevor Sie versuchen, in Ihre Partition zu schreiben. Ruslan vor 5 Jahren 0
5
Rod Smith

Es kann hilfreich sein zu wissen, warum Sie dies tun möchten. Ich kenne kein Werkzeug, um das zu tun, was Sie möchten, aber es gibt möglicherweise andere Optionen ....

Technisch gesehen haben FAT-Partitionen keine UUIDs; Sie haben Seriennummern, die mehrere Linux-Tools und -Dateien (wie mountund /etc/fstab) anstelle von UUIDs verwenden können. Auf GPT-Platten haben die Partitionen, die FAT-Dateisysteme enthalten, GUIDs, die (in letzter Zeit ausreichend Linux-Distributionen) in mountund als PARTUUIDs bezeichnet werden können /etc/fstab. Sowohl FAT-Dateisysteme als auch (auf GPT-Platten) die Partitionen, die diese enthalten, können auch Namen haben, die auch von mountoder in verwendet werden können /etc/fstab. Jede dieser Funktionen kann anstelle der FAT-Seriennummer verwendet werden.

Ich kenne zwar kein Werkzeug, um die Seriennummern von FAT-Partitionen zu ändern, sie können jedoch beim Erstellen des Dateisystems über die -iOption auf gesetzt werden mkdosfs, wie in:

mkdosfs -i ABCD1234 /dev/sdc1 

In diesem Beispiel wird die Seriennummer von /dev/sdc1ABCD-1234 festgelegt. Wenn das Dateisystem klein genug ist, können Sie es sichern, ein neues Dateisystem mit der gewünschten Seriennummer erstellen und es wiederherstellen. Wenn Sie versuchen, die Seriennummer als Teil eines Datenträgers oder eines Installationsskripts festzulegen, reicht es mkdosfsmöglicherweise aus, die Seriennummer über einzustellen .

Sie können die GUID der Partition mit gdiskoder ändern sgdisk. Mit letzterem erledigen Sie die Arbeit über die -uOption wie in:

sgdisk -u 1:BC87D91A-02F3-4C52-87CD-536A3DF2A074 /dev/sdc 

In diesem Beispiel wird die GUID von /dev/sdc1BC87D91A-02F3-4C52-87CD-536A3DF2A074 festgelegt. (Beachten Sie, dass -uein durch Doppelpunkte getrennter Satz von Optionen erforderlich ist. Die erste davon ist die Partitionsnummer und die zweite der GUID-Wert. Der Gerätename für das gesamte Festplattengerät [ nicht die Partition] ist die letzte Option.)

Je nach Ihren Bedürfnissen kann einer dieser Ansätze funktionieren. Wenn Sie sich weiter bewegen, können Sie die Bezeichnung des Dateisystems mit dem dosfslabelTool festlegen . oder Sie können den Namen einer GPT-Partition mit sgdiskder -cOption 's ändern, die ähnlich funktioniert -u, aber einen Namen anstelle einer GUID annimmt.

Die Service-Nummer eines vfat-Geräts kann über den Befehl mlabel der [mtools] (https://www.gnu.org/software/mtools/) geändert werden. liquidat vor 6 Jahren 2