GNU/Linux >> Tutoriels Linux >  >> Linux

Comment changer l'UUID du système de fichiers (2 mêmes UUID) ?

Pour générer un nouvel UUID aléatoire, on peut utiliser :

$ uuidgen

Changer réellement l'UUID dépend du système de fichiers.

En supposant un système de fichiers de la famille externe

# tune2fs -U <output of uuidgen> /dev/sdb1

Ou si vous êtes sûr que uuidgen fonctionnera :

# tune2fs -U $(uuidgen) /dev/sdb1

En supposant que le système de fichiers btrfs

# btrfstune -U $(uuidgen) /dev/sdb1

L'UUID est stocké dans le superbloc, donc une copie octet par octet du système de fichiers aura le même UUID.


Utiliser :

tune2fs -U random /dev/sdb1

s'il s'agit d'un poste système de fichiers, ou

xfs_admin -U generate /dev/sdb1

si c'est un xfs système de fichiers.

La raison pour laquelle la deuxième partition a le même UUID est que dd copie simplement les données d'un fichier à un autre (dd if=/dev/sda1 of=/dev/sdb1 =cat /dev/sda1 > /dev/sdb1 ); dd ne sait pas ce qu'est une partition ou comment générer un UUID, il a donc simplement copié toutes les données telles quelles, y compris l'UUID, qui est stocké dans le superbloc fileysystem près du début de la partition.

D'ailleurs,
Je pense aussi que UUID (Universally Unique IDentifier) ​​est un nom étrange. Il devrait s'appeler PGUID (Possibly Globally Unique IDentifier), ou mieux encore, simplement ARLN (A Reasonably Large Number).


Outre ext2 /ext3 / ex4 et xfs, vous pouvez également modifier l'UUID du système de fichiers ou du périphérique de bloc suivant ou PARTUUID de la partition GPT.

Échanger

swaplabel -U $NEW_UUID

RAID logiciel (raid md)

Pour MD RAID, vous devez d'abord arrêter le RAID, puis mettre à jour l'UUID lors du réassemblage. Donc, si votre RAID est monté sur / , vous ne pouvez pas l'arrêter, vous devez mettre à jour l'UUID en mode hors ligne - utilisez un CD/USB live pour le faire.

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

Exemple :

  1. mdadm --stop /dev/md127
  2. mdadm --assemble /dev/md127 --update=uuid --uuid=2A1D2A1D-2A1D-2A1D-2A1D-2A1D2A1D2A1D /dev/sda2 /dev/sdb2

Une fois l'UUID mis à jour, vous devrez peut-être mettre à jour grub.cfg (rd.md.uuid=$NEW_UUID en linux/linuxefi/linux16 ligne de commande) et/ou fstab et/ou mdadm.conf et/ou update-initramfs (famille Debian) et/ou dracut --force (famille Red Hat) afin que vous puissiez démarrer avec succès la prochaine fois.

LUKS (configuration du cryptage)

cryptsetup luksUUID --uuid=$NEW_UUID $LUKS_DEVICE

Exemple :

cryptsetup luksUUID --uuid=e0c0e0c0-e0c0-e0c0-e0c0-e0c0e0c0e0c0 ~/encrypted-LUKS.loop

Système de fichiers NTFS

Il y a ntfslabel utilitaire (grâce à ntfs-3g) pour changer l'UUID du système de fichiers NTFS. Voir la réponse de abchk1234.

Si vous souhaitez modifier l'ensemble de l'UUID du système de fichiers NTFS au lieu de --new-half-serial , utilisez le --new-serial option.

Exemple :

ntfslabel --new-serial=1122334455667788 /dev/sda3

Système de fichiers FAT/exFAT

Ceci est une autre histoire ici, il n'y a actuellement aucun utilitaire pour modifier l'UUID du système de fichiers de ces systèmes de fichiers (Voir la réponse de Reichhart - le mlabel outil), mais nous pouvons modifier les données brutes sur le disque pour ce faire.

ATTENTION, il est dangereux de modifier des données brutes sur le disque et vous risquez de perdre des données sans une opération minutieuse.

Voici les étapes détaillées pour modifier les données brutes sur le disque en utilisant hexedit .

  1. blkid , notez l'UUID du système de fichiers sur papier ou souvenez-vous-en. La chaîne UUID de FAT / exFAT ressemble à 1122-3344 , la chaîne UUID de NTFS ressemble à 1122334455667788 .

  2. Ouvrir le périphérique de partition en utilisant hexedit

    hexedit <partition device such as /dev/sda1>

  3. Appuyez sur / , entrez l'UUID dans l'ordre inverse (si blkid signalé 1234-ABCD , puis recherchez CDAB3412 ) pour rechercher les données UUID sur le disque.

  4. Une fois l'UUID localisé, modifiez-le, appuyez sur F2 pour enregistrer et quitter.

  5. blkid pour vérifier l'UUID.

  6. Une fois l'UUID modifié, vous devrez peut-être mettre à jour grub.cfg et/ou fstab afin que vous puissiez démarrer avec succès la prochaine fois.

  7. Exécutez fsck <partition device such as /dev/sda1> et voir un "Il existe des différences entre le secteur de démarrage et sa sauvegarde" message. Pour le résoudre, sélectionnez "1) Copier l'original dans la sauvegarde" , et si on vous demande "Effectuer les modifications ? (o/n)" vous appuyez sur y .

PARTUUID de la partition GPT

Une petite histoire :Je n'ai jamais pensé que j'aurais besoin de toucher PARTUUID de la partition GPT, jusqu'à présent, lorsque j'essaie de migrer Windows d'un petit disque vers un grand disque, Windows n'a pas pu démarrer sur le grand disque et il ne peut même pas être réparé automatiquement. La raison en est que le remplacement de l'UUID du système de fichiers NTFS par celui d'origine n'est pas suffisant pour Windows + UEFI, vous devez également modifier le PARTUUID de la partition GPT - PARTUUID est important. (Après avoir remplacé PARTUUID par celui d'origine, Windows a démarré avec succès à partir du grand disque.)

Il y a déjà une réponse ici sur askubuntu.com pour montrer comment changer le PARTUUID de la partition GPT en utilisant gdisk utilitaire.

La version actuelle de fdisk (2.35.2 dans les référentiels Fedora 32 au moment de l'édition) de util-linux peut également le faire en mode expert, en fait, à partir de util-linux v2.23, fdisk a été compatible GPT.

Voici un exemple de modification de PARTUUID à l'aide de util-linux fdisk utilitaire :

# 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. Comment changer un nom d'hôte sous Linux

  2. Comment changer de shell sous Linux

  3. CentOS / RHEL :Comment changer l'UUID du système de fichiers

  4. Comment utiliser la commande "xfs_admin" pour modifier les paramètres d'un système de fichiers XFS

  5. Comment changer les étiquettes du système de fichiers dans CentOS/RHEL

Comment changer d'utilisateur sous Linux

Comment changer l'adresse IP sous Linux

Comment modifier les enregistrements MX ?

Comment identifier l'UUID du système de fichiers sous Linux :le didacticiel ultime

Comment changer le schéma de partition sur votre serveur Linux ?

Comment changer le mot de passe sur Ubuntu