Um eine zufällige neue UUID zu generieren, kann man verwenden:
$ uuidgen
Die tatsächliche Änderung der UUID ist vom Dateisystem abhängig.
Unter der Annahme eines Dateisystems der Ex-Familie
# tune2fs -U <output of uuidgen> /dev/sdb1
Oder wenn Sie sicher sind, dass uuidgen funktionieren wird:
# tune2fs -U $(uuidgen) /dev/sdb1
Btrfs-Dateisystem vorausgesetzt
# btrfstune -U $(uuidgen) /dev/sdb1
Die UUID wird im Superblock gespeichert, sodass eine Byte-für-Byte-Kopie des Dateisystems dieselbe UUID hat.
Verwendung:
tune2fs -U random /dev/sdb1
wenn es ein ext ist Dateisystem oder
xfs_admin -U generate /dev/sdb1
wenn es ein xfs ist Dateisystem.
Die zweite Partition hat dieselbe UUID, weil dd
kopiert einfach Daten von einer Datei in eine andere (dd if=/dev/sda1 of=/dev/sdb1
=cat /dev/sda1 > /dev/sdb1
); dd
weiß nicht, was eine Partition ist oder wie man eine UUID generiert, also kopiert es einfach alle Daten wie sie sind, einschließlich der UUID, die im Dateisystem-Superblock nahe dem Anfang der Partition gespeichert ist.
Übrigens,
Ich denke auch, dass UUID (Universally Unique IDentifier) ein seltsamer Name ist. Es sollte PGUID (Possibly Globally Unique IDentifier) heißen, oder besser noch ARLN (A Reasonably Large Number).
Neben ext2 /ext3 / ex4 und xfs können Sie auch die UUID des folgenden Dateisystems oder Blockgeräts oder die PARTUUID der GPT-Partition ändern.
Wechseln
swaplabel -U $NEW_UUID
Software-RAID (MD-RAID)
Für MD-RAID müssen Sie zuerst das RAID stoppen und dann die UUID beim erneuten Zusammenbau aktualisieren. Wenn Ihr RAID also auf /
gemountet ist , Sie können es nicht stoppen, Sie müssen die UUID im Offline-Modus aktualisieren – verwenden Sie dazu eine Live-CD/USB.
mdadm --stop $RAID_DEVICE
mdadm --assemble $RAID_DEVICE --update=uuid --uuid=$NEW_UUID $MEMBER_DEVICES...
Beispiel:
mdadm --stop /dev/md127
mdadm --assemble /dev/md127 --update=uuid --uuid=2A1D2A1D-2A1D-2A1D-2A1D-2A1D2A1D2A1D /dev/sda2 /dev/sdb2
Nachdem die UUID aktualisiert wurde, müssen Sie möglicherweise grub.cfg
aktualisieren (rd.md.uuid=$NEW_UUID
in linux/linuxefi/linux16
Befehlszeile) und/oder fstab
und/oder mdadm.conf
und/oder update-initramfs
(Debian-Familie) und/oder dracut --force
(Red Hat-Familie), damit Sie beim nächsten Mal erfolgreich booten können.
LUKS (cryptsetup)
cryptsetup luksUUID --uuid=$NEW_UUID $LUKS_DEVICE
Beispiel:
cryptsetup luksUUID --uuid=e0c0e0c0-e0c0-e0c0-e0c0-e0c0e0c0e0c0 ~/encrypted-LUKS.loop
NTFS-Dateisystem
Da ist ntfslabel
Dienstprogramm (dank ntfs-3g) zum Ändern der UUID des NTFS-Dateisystems. Siehe die Antwort von abchk1234.
Falls Sie die gesamte UUID des NTFS-Dateisystems anstelle von --new-half-serial
ändern möchten , verwenden Sie den --new-serial
Option.
Beispiel:
ntfslabel --new-serial=1122334455667788 /dev/sda3
FAT / exFAT-Dateisystem
Das ist hier eine andere Geschichte, derzeit gibt es keine Dienstprogramme, um die Dateisystem-UUID dieser Dateisysteme zu ändern (Siehe Reichharts Antwort – der mlabel
Tool), aber wir können Rohdaten auf der Festplatte ändern, um dies zu tun.
WARNUNG, es ist gefährlich, Rohdaten auf der Festplatte zu ändern, und ohne sorgfältige Vorgehensweise können Daten verloren gehen.
Hier sind detaillierte Schritte zum Ändern von Rohdaten auf der Festplatte mit hexedit
.
-
blkid
, notieren Sie sich die UUID des Dateisystems auf Papier oder merken Sie sich diese. Der UUID-String von FAT / exFAT sieht wie folgt aus:1122-3344
, UUID-String von NTFS sieht aus wie1122334455667788
. -
Öffnen Sie das Partitionsgerät mit hexedit
hexedit <partition device such as /dev/sda1>
-
Drücken Sie / , geben Sie die UUID in umgekehrter Reihenfolge ein (falls
blkid
1234-ABCD
gemeldet , suchen Sie dann nachCDAB3412
), um die UUID-Daten auf der Festplatte zu durchsuchen. -
Sobald die UUID gefunden wurde, ändern Sie sie, drücken Sie F2 zum Speichern und Beenden.
-
blkid
um die UUID zu überprüfen. -
Nachdem die UUID geändert wurde, müssen Sie möglicherweise
grub.cfg
aktualisieren und/oderfstab
damit Sie beim nächsten Mal erfolgreich booten können. -
Führen Sie
fsck <partition device such as /dev/sda1>
aus und siehe "Es gibt Unterschiede zwischen dem Bootsektor und seinem Backup" Botschaft. Um es zu lösen, wählen Sie "1) Original in Backup kopieren" , und wenn Sie gefragt werden "Änderungen durchführen ? (j/n)" Sie drücken y .
PARTUUID der GPT-Partition
Eine Kurzgeschichte :Ich hätte nie gedacht, dass ich PARTUUID der GPT-Partition berühren muss, bis jetzt, wenn ich versuche, Windows von einer kleinen Festplatte auf eine große Festplatte zu migrieren, konnte Windows nicht auf der großen Festplatte booten und es kann nicht einmal automatisch repariert werden. Der Grund dafür ist, dass das Ändern der UUID des NTFS-Dateisystems in das ursprüngliche für Windows + UEFI nicht ausreicht. Sie müssen auch die PARTUUID der GPT-Partition ändern - PARTUUID ist wichtig. (Nachdem die PARTUUID auf die ursprüngliche geändert wurde, startete Windows erfolgreich von der großen Festplatte.)
Es gibt bereits eine Antwort hier auf askubuntu.com, um zu zeigen, wie man die PARTUUID der GPT-Partition mit gdisk
ändert Dienstprogramm.
Die aktuelle Version von fdisk
(2.35.2 in den Fedora 32-Repositories zum Zeitpunkt der Bearbeitung) von util-linux kann das auch im Expertenmodus, tatsächlich wurde fdisk ab util-linux v2.23 GPT-fähig.
Hier ist ein Beispiel für die Änderung von PARTUUID mit util-linux fdisk
Dienstprogramm:
# truncate -s 200M /tmp/file-as-a.disk
# LANG=en_US.UTF-8 fdisk /tmp/file-as-a.disk
Welcome to fdisk (util-linux 2.35.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xc0fc8503.
Command (m for help): g
Created a new GPT disklabel (GUID: 4CD23B97-80C5-BD42-8466-1B9476653A92).
Command (m for help): n
Partition number (1-128, default 1):
First sector (2048-409566, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-409566, default 409566):
Created a new partition 1 of type 'Linux filesystem' and of size 199 MiB.
Command (m for help): i
Selected partition 1
Device: /tmp/file-as-a.disk1
Start: 2048
End: 409566
Sectors: 407519
Size: 199M
Type: Linux filesystem
Type-UUID: 0FC63DAF-8483-4772-8E79-3D69D8477DE4
UUID: 7265D7C3-6277-DE4B-956C-41E3BFFF8E0D
Command (m for help): w
The partition table has been altered.
Syncing disks.
# LANG=en_US.UTF-8 fdisk /tmp/file-as-a.disk
Welcome to fdisk (util-linux 2.35.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): x
Expert command (m for help): m
Help (expert commands):
GPT
i change disk GUID
n change partition name
u change partition UUID
l change table length
M enter protective/hybrid MBR
A toggle the legacy BIOS bootable flag
B toggle the no block IO protocol flag
R toggle the required partition flag
S toggle the GUID specific bits
Generic
p print the partition table
v verify the partition table
d print the raw data of the first sector from the device
D print the raw data of the disklabel from the device
f fix partitions order
m print this menu
Save & Exit
q quit without saving changes
r return to main menu
Expert command (m for help): u
Selected partition 1
New UUID (in 8-4-4-4-12 format): 11223344-5566-7788-9900-AABBCCDDEEFF
Partition UUID changed from 7265D7C3-6277-DE4B-956C-41E3BFFF8E0D to 11223344-5566-7788-9900-AABBCCDDEEFF.
Expert command (m for help): w
w: unknown command
Expert command (m for help): r
Command (m for help): w
The partition table has been altered.
Syncing disks.
# losetup --partscan /dev/loop101 /tmp/file-as-a.disk
# blkid /dev/loop101*
/dev/loop101: PTUUID="4cd23b97-80c5-bd42-8466-1b9476653a92" PTTYPE="gpt"
/dev/loop101p1: PARTUUID="11223344-5566-7788-9900-aabbccddeeff"