GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie ändere ich die UUID des Dateisystems (2 gleiche UUID)?

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.

  1. mdadm --stop $RAID_DEVICE
  2. mdadm --assemble $RAID_DEVICE --update=uuid --uuid=$NEW_UUID $MEMBER_DEVICES...

Beispiel:

  1. mdadm --stop /dev/md127
  2. 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 .

  1. 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 wie 1122334455667788 .

  2. Öffnen Sie das Partitionsgerät mit hexedit

    hexedit <partition device such as /dev/sda1>

  3. Drücken Sie / , geben Sie die UUID in umgekehrter Reihenfolge ein (falls blkid 1234-ABCD gemeldet , suchen Sie dann nach CDAB3412 ), um die UUID-Daten auf der Festplatte zu durchsuchen.

  4. Sobald die UUID gefunden wurde, ändern Sie sie, drücken Sie F2 zum Speichern und Beenden.

  5. blkid um die UUID zu überprüfen.

  6. Nachdem die UUID geändert wurde, müssen Sie möglicherweise grub.cfg aktualisieren und/oder fstab damit Sie beim nächsten Mal erfolgreich booten können.

  7. 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"

Linux
  1. So ändern Sie einen Hostnamen unter Linux

  2. Wie ändern wir das Root-Passwort?

  3. So ändern Sie den Hostnamen in Debian

  4. CentOS / RHEL :So ändern Sie die UUID des Dateisystems

  5. So ändern Sie die Dateisystembezeichnungen in CentOS/RHEL

So ändern Sie den Benutzer unter Linux

So ändern Sie die IP-Adresse unter Linux

Wie ändere ich MX-Einträge?

So identifizieren Sie die UUID des Dateisystems in Linux:Das ultimative Tutorial

Wie ändere ich das Partitionsschema auf Ihrem Linux-Server?

So ändern Sie das Passwort auf Ubuntu