Para generar un nuevo UUID aleatorio, se puede usar:
$ uuidgen
Cambiar realmente el UUID depende del sistema de archivos.
Suponiendo un sistema de archivos de la familia ext
# tune2fs -U <output of uuidgen> /dev/sdb1
O si está seguro de que uuidgen funcionará:
# tune2fs -U $(uuidgen) /dev/sdb1
Suponiendo sistema de archivos btrfs
# btrfstune -U $(uuidgen) /dev/sdb1
El UUID se almacena en el superbloque, por lo que una copia byte por byte del sistema de archivos tendrá el mismo UUID.
Usar:
tune2fs -U random /dev/sdb1
si es una ext sistema de archivos, o
xfs_admin -U generate /dev/sdb1
si es un xfs sistema de archivos.
La razón por la que la segunda partición tiene el mismo UUID es porque dd
simplemente copia datos de un archivo a otro (dd if=/dev/sda1 of=/dev/sdb1
=cat /dev/sda1 > /dev/sdb1
); dd
no sabe qué es una partición ni cómo generar un UUID, por lo que simplemente copió todos los datos tal como están, incluido el UUID, que se almacena en el superbloque del sistema de archivos cerca del inicio de la partición.
De paso,
También creo que UUID (Universally Unique IDentifier) es un nombre extraño. Debería llamarse PGUID (Identificador único posiblemente global), o incluso mejor, simplemente ARLN (Número razonablemente grande).
Además de ext2/ext3/ex4 y xfs, también puede cambiar el UUID del siguiente sistema de archivos o dispositivo de bloque o PARTUUID de la partición GPT.
Intercambiar
swaplabel -U $NEW_UUID
RAID de software (incursión md)
Para MD RAID, primero debe detener el RAID y luego actualizar el UUID al volver a ensamblar. Entonces, si su RAID está montado en /
, no puede detenerlo, necesita actualizar el UUID en modo fuera de línea; use un CD/USB en vivo para hacerlo.
mdadm --stop $RAID_DEVICE
mdadm --assemble $RAID_DEVICE --update=uuid --uuid=$NEW_UUID $MEMBER_DEVICES...
Ejemplo:
mdadm --stop /dev/md127
mdadm --assemble /dev/md127 --update=uuid --uuid=2A1D2A1D-2A1D-2A1D-2A1D-2A1D2A1D2A1D /dev/sda2 /dev/sdb2
Después de actualizar el UUID, es posible que deba actualizar grub.cfg
(rd.md.uuid=$NEW_UUID
en linux/linuxefi/linux16
línea de comando) y/o fstab
y/o mdadm.conf
y/o update-initramfs
(familia Debian) y/o dracut --force
(familia Red Hat) para que pueda iniciar correctamente la próxima vez.
LUKS (configuración de criptas)
cryptsetup luksUUID --uuid=$NEW_UUID $LUKS_DEVICE
Ejemplo:
cryptsetup luksUUID --uuid=e0c0e0c0-e0c0-e0c0-e0c0-e0c0e0c0e0c0 ~/encrypted-LUKS.loop
Sistema de archivos NTFS
Hay ntfslabel
utilidad (gracias a ntfs-3g) para cambiar el UUID del sistema de archivos NTFS. Ver la respuesta de abchk1234.
En caso de que quiera cambiar todo el UUID del sistema de archivos NTFS en lugar de --new-half-serial
, utilice el --new-serial
opción.
Ejemplo:
ntfslabel --new-serial=1122334455667788 /dev/sda3
Sistema de archivos FAT/exFAT
Esta es otra historia aquí, actualmente no hay utilidades para modificar el UUID del sistema de archivos de estos sistemas de archivos (Vea la respuesta de reichhart -- el mlabel
herramienta), pero podemos modificar los datos sin procesar en el disco para hacer esto.
ADVERTENCIA, es peligroso modificar datos sin procesar en el disco y podría perder datos sin una operación cuidadosa.
Aquí hay pasos detallados para modificar datos sin procesar en el disco usando hexedit
.
-
blkid
, anote el UUID del sistema de archivos en papel, o recuérdelo. La cadena UUID de FAT/exFAT parece1122-3344
, la cadena UUID de NTFS parece1122334455667788
. -
Abra el dispositivo de partición usando hexedit
hexedit <partition device such as /dev/sda1>
-
Pulse / , ingrese el UUID en orden inverso (si
blkid
reportado1234-ABCD
, luego buscaCDAB3412
) para buscar los datos UUID en el disco. -
Una vez que se encuentra el UUID, cámbielo, presione F2 para guardar y salir.
-
blkid
para verificar el UUID. -
Una vez que se modifica el UUID, es posible que deba actualizar
grub.cfg
y/ofstab
para que pueda arrancar con éxito la próxima vez. -
Ejecutar
fsck <partition device such as /dev/sda1>
y ver un "Hay diferencias entre el sector de arranque y su copia de seguridad" mensaje. Para solucionarlo, seleccione "1) Copiar original a copia de seguridad" , y si se le pregunta "¿Realizar cambios? (sí/no)" presionas y .
PARTUUID de partición GPT
Una historia corta :Nunca pensé que necesitaría tocar PARTUUID de la partición GPT, hasta ahora, cuando intento migrar Windows de un disco pequeño a un disco grande, Windows no pudo arrancar en el disco grande y ni siquiera se puede reparar automáticamente. La razón es que cambiar el UUID del sistema de archivos NTFS al original no es suficiente para Windows + UEFI, también debe cambiar el PARTUUID de la partición GPT:el PARTUUID es un asunto. (Después de cambiar PARTUUID al original, Windows arrancó con éxito desde el disco grande).
Ya hay una respuesta aquí en askubuntu.com para mostrar cómo cambiar PARTUUID de la partición GPT usando gdisk
utilidad.
La versión actual de fdisk
(2.35.2 en los repositorios de Fedora 32 en el momento de la edición) de util-linux también puede hacerlo en modo experto; de hecho, a partir de util-linux v2.23, fdisk ha sido habilitado para GPT.
Aquí hay un ejemplo de cómo cambiar PARTUUID usando util-linux fdisk
utilidad:
# 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"