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.
mdadm --stop $RAID_DEVICE
mdadm --assemble $RAID_DEVICE --update=uuid --uuid=$NEW_UUID $MEMBER_DEVICES...
Exemple :
mdadm --stop /dev/md127
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
.
-
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
. -
Ouvrir le périphérique de partition en utilisant hexedit
hexedit <partition device such as /dev/sda1>
-
Appuyez sur / , entrez l'UUID dans l'ordre inverse (si
blkid
signalé1234-ABCD
, puis recherchezCDAB3412
) pour rechercher les données UUID sur le disque. -
Une fois l'UUID localisé, modifiez-le, appuyez sur F2 pour enregistrer et quitter.
-
blkid
pour vérifier l'UUID. -
Une fois l'UUID modifié, vous devrez peut-être mettre à jour
grub.cfg
et/oufstab
afin que vous puissiez démarrer avec succès la prochaine fois. -
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"