¿Cómo cambio el UUID de un disco a lo que quiera?

29

Tengo una situación única en la que necesito cambiar el UUID de la unidad flash USB al UUID anterior. Lo formateé y obviamente el número cambió ...

Tengo la configuración del servidor ubuntu con 1 TB de disco duro y una unidad flash usb de 4 GB para arrancar. Grub en HDD está configurado para UUID que cambió cuando formateé la unidad USB y reinstalé el servidor ubuntu. No tengo monitor externo, así que conecto el usb a la computadora portátil e instalo el servidor allí ... luego lo muevo al hardware del servidor.

Como mencioné, mi problema es que necesito usb para volver al UUID anterior, de lo contrario, el servidor no se iniciará. ¡Y no puedo obtener un monitor externo hasta el lunes! :)

Sé que necesito cambiar estos archivos después:

Los archivos para los que UUID es más crítico:

/boot/grub/menu.lst

/etc/fstab

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

Pero no puedo encontrar información en la red sobre la personalización de UUID.

¿Nadie?

muru
fuente

Respuestas:

37

Si usaste ext para ello:

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

Desde man tune2fs

-U UUID

Establezca el identificador universalmente único (UUID) del sistema de archivos en UUID. El formato del UUID es una serie de dígitos hexadecimales separados por guiones, así: c1b9d5a2-f162-11cf-9ece-0020afc76f16. El parámetro UUID también puede ser uno de los siguientes:

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

El UUID puede ser utilizado por mount (8), fsck (8) y / etc / fstab (5) (y posiblemente otros) especificando UUID = uuid en lugar de un nombre de dispositivo especial de bloque como / dev / hda1.

Rinzwind
fuente
¡Eso funciono! Pero no puedo encontrar: /etc/initramfs-tools/conf.d/resume Encontré que /boot/grub/menu.lst se había convertido a /boot/grub/grub.cfg
Tengo un /etc/initramfs-tools/conf.d/resume en mi sistema. Y grub.cfg es de hecho el nuevo menu.lst (creo que uno entró en juego con el nuevo grub2.
Rinzwind
No importa lo que intente, aparece un error al intentar configurar mi propio UUID (tune2fs: formato de UUID no válido). ¿Hay un orden específico para las cosas?
Andrew
tun2fs no funciona en mi disco gpt de ZFS, ¿qué hago allí?
Brian Thomas
Mirando la respuesta para XFS (xfs_admin) sugeriría buscar un zfs_admin ¡Pero no es zfs Solaris ?! ¿Cómo ves que Ubuntu puede ayudar aquí?
Rinzwind
14

Me doy cuenta de que esta es una pregunta vieja, pero descubrí que había un nuevo cambio, y esto fue lo que Google buscó para mí, así que publicaré la respuesta que encontré aquí.

Cuando traté de cambiar el uuid de mi sistema de archivos raíz (a un principio bien conocido y un sufijo de número de serie) en el nuevo Ubuntu 14.04, descubrí que mi horror tune2fs informó: No puedo hacer eso en los sistemas de archivos montados. Depende de poder usar una imagen de plantilla con un uuid conocido y cambiar cada instalación a un uuid serializado. Encontré que el problema no era insuperable.

Hay una bandera que debe deshabilitarse, para permitir cambios de líquido montado con el nuevo tune2fs. así es como se veía mi proceso:

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
fuente
Gracias. Podría ser útil en el futuro, pero todavía estoy en 12.04 :)
1
Puede usar en root_disk=$(findmnt -n -o SOURCE /)lugar de tuberías para grep y cortar.
mivk
NO HAGAS ESO O CORRUPERÁS EL SISTEMA DE ARCHIVOS. Eliminé y luego agregué de nuevo uninit_bgy condujo a la corrupción de metadatos y al remontaje automático de solo lectura en el próximo arranque ( ext4_mb_generate_buddy:757: group 1, block bitmap and bg descriptor inconsistent: 3701 vs 3700 free clusterstipo de mensajes de error). La razón es que tune2fsmodifica directamente el disco, debajo de los pies del núcleo y cuando el núcleo llega a actualizar los bgmetadatos, ¡la mitad de las veces realmente corrompe los metadatos! Conclusión: el UUID del sistema de archivos no se puede cambiar de forma segura sin desmontar correctamente el sistema de archivos.
Eric
6

Para xfs ver man xfs_admin

xfs_admin -U {uuid} {device}

{uuid} se puede 'generar' para obtener un nuevo uuid.

Para reiserfs ver man tunefs.reiserfs

tunefs.reiserfs -i {uuid} {device}

Para btrfs, parece que el uuid se usa en los sistemas de archivos, por lo que cada nodo debe actualizarse. No hay una forma segura de hacerlo todavía.

Sylwester
fuente