Comment changer l'UUID d'un disque en ce que je veux?

29

J'ai une situation unique où je dois changer l'UUID du lecteur flash USB en UUID précédent. Je l'ai formaté et évidemment le numéro a changé ...

J'ai une configuration de serveur Ubuntu avec un disque dur de 1 To et un lecteur flash USB de 4 Go pour démarrer. Grub sur hdd est configuré pour UUID qui a changé lorsque j'ai formaté le lecteur USB et réinstallé le serveur Ubuntu. Je n'ai pas de moniteur externe, donc je connecte une clé USB à un ordinateur portable et j'y installe un serveur ... que je le déplace vers le matériel du serveur.

Comme je l'ai mentionné, mon problème est que j'ai besoin d'une clé USB pour revenir à l'UUID précédent, sinon le serveur ne démarrera pas. Et je ne peux pas obtenir de moniteur externe avant lundi! :)

Je sais que j'ai besoin que ces fichiers soient modifiés par la suite:

Les fichiers pour lesquels l'UUID est le plus critique:

/boot/grub/menu.lst

/etc/fstab

/etc/initramfs-tools/conf.d/resume

Mais je ne trouve nulle part sur le net des informations sur la personnalisation de l'UUID.

N'importe qui?

muru
la source

Réponses:

37

Si vous avez utilisé ext pour cela:

tune2fs /dev/{device} -U {uuid}

De man tune2fs

-U UUID

Définissez l'identificateur universel unique (UUID) du système de fichiers sur UUID. Le format du UUID est une série de chiffres hexadécimaux séparés par des traits d' union, comme ceci: c1b9d5a2-f162-11cf-9ece-0020afc76f16. Le paramètre UUID peut également être l'un des suivants:

clear  clear the filesystem UUID
random generate a new randomly-generated UUID
time   generate a new time-based UUID

L'UUID peut être utilisé par mount (8), fsck (8) et / etc / fstab (5) (et éventuellement d'autres) en spécifiant UUID = uuid au lieu d'un nom de périphérique spécial de bloc comme / dev / hda1.

Rinzwind
la source
Ça a marché! Mais je ne trouve pas: /etc/initramfs-tools/conf.d/resume J'ai trouvé que /boot/grub/menu.lst avait été converti en /boot/grub/grub.cfg
J'ai un /etc/initramfs-tools/conf.d/resume sur mon système. Et grub.cfg est en effet le nouveau menu.lst (je pense que l'on est entré en jeu avec le nouveau grub2.
Rinzwind
Peu importe ce que j'essaie, j'obtiens une erreur lorsque j'essaie de définir mon propre UUID (tune2fs: format UUID non valide). Y a-t-il un ordre spécifique aux choses?
Andrew
tun2fs ne fonctionne pas sur mon disque gpt ZFS, que dois-je y faire?
Brian Thomas
En regardant la réponse pour XFS (xfs_admin) je suggérerais de chercher un zfs_admin Mais n'est-ce pas zfs Solaris?! Comment voyez-vous qu'Ubuntu peut aider ici?
Rinzwind
13

Je me rends compte que c'est une sorte de vieille question, mais j'ai trouvé qu'il y avait un nouveau changement, et c'est ce que Google a fouillé pour moi, donc je vais poster la réponse que j'ai trouvée ici.

quand j'ai essayé de changer l'uid de mon système de fichiers racine (à un début bien connu et à un suffixe de numéro de série) sur le nouveau ubuntu 14.04, j'ai trouvé à mon horreur tune2fs signalé en retour: je ne peux pas faire ça pour les systèmes de fichiers montés. Je dépend de la possibilité d'utiliser une image de modèle avec un uuid bien connu et de changer chaque installation en un uuid sérialisé. J'ai trouvé que le problème n'était pas insurmontable.

Il y a un indicateur qui doit être désactivé, pour permettre les modifications montées-uuid avec le nouveau tune2fs. voici à quoi ressemblait mon processus:

root@ubuntu1404:~# blkid
/dev/sda1: UUID="2ec827b0-72be-4c73-b58a-102a37aa24a3" TYPE="ext4"
root@ubuntu1404:~# uuid="deafcafe-abba-daba-deca-fc0ffee05065"
root@ubuntu1404:~# root_disk=$(df /|grep /|cut -d' ' -f1)
root@ubuntu1404:~# echo $root_disk
/dev/sda1
root@ubuntu1404:~# tune2fs -U $uuid $root_disk
tune2fs 1.42.9 (4-Feb-2014)
The UUID may only be changed when the filesystem is unmounted.
root@ubuntu1404:~# tune2fs -O ^uninit_bg $root_disk
tune2fs 1.42.9 (4-Feb-2014)
root@ubuntu1404:~# tune2fs -U $uuid $root_disk
tune2fs 1.42.9 (4-Feb-2014)
root@ubuntu1404:~# tune2fs -O +uninit_bg $root_disk
tune2fs 1.42.9 (4-Feb-2014)
root@ubuntu1404:~# df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       7.3G  3.9G  3.0G  58% /
root@ubuntu1404:~# blkid
/dev/sda1: UUID="deafcafe-abba-daba-deca-fc0ffee05065" TYPE="ext4"
root@ubuntu1404:~#
kvm-user420
la source
Merci. Pourrait être utile à l'avenir, mais je suis toujours sur 12.04 :)
1
Vous pouvez utiliser à la root_disk=$(findmnt -n -o SOURCE /)place de la tuyauterie pour grep et couper.
mivk
1
NE FAITES PAS CELA OU VOUS CORROMPREZ VOTRE SYSTÈME DE FICHIERS. J'ai supprimé puis rajouté uninit_bget cela a entraîné une corruption des métadonnées et un remontage automatique en lecture seule au prochain démarrage ( ext4_mb_generate_buddy:757: group 1, block bitmap and bg descriptor inconsistent: 3701 vs 3700 free clusterstype de messages d'erreur). La raison en est que cela tune2fsmodifie directement le disque, sous les pieds du noyau et quand le noyau arrive à mettre à jour les bgmétadonnées, la moitié du temps il corrompt réellement les métadonnées! Conclusion: l'UUID du système de fichiers ne peut pas être modifié en toute sécurité sans démonter correctement le système de fichiers.
Eric
6

Pour xfs, voir man xfs_admin

xfs_admin -U {uuid} {device}

{uuid} peut être 'generate' pour obtenir simplement un nouvel uuid.

Pour les reiserfs voir man tunefs.reiserfs

tunefs.reiserfs -i {uuid} {device}

Pour btrfs, il semble que l'uuid soit utilisé dans tous les systèmes de fichiers, donc chaque nœud doit être mis à jour. Il n'y a pas encore de moyen sûr de le faire.

Sylwester
la source