Tengo un sistema operativo invitado fedora en VMware. Quiero expandir la /boot
partición, así que agrego otro disco virtual a esta VM e intento clonar el disco.
Después dd if=/dev/sda1 of=/dev/sdb1
, blkid
informe que / dev / sda1 y / dev / sdb1 tienen el mismo UUID / GUID.
Es extraño que haya 2 mismos UUID en el universo, ¿cómo cambiar uno de ellos a otro valor de UUID?
Actualizar 2017-01-25
Sujeto cambiado, UUID aquí significa sistema de archivos UUID, no partición UUID.
Dado que es UUID del sistema de archivos, se necesitan utilidades específicas del sistema de archivos para cambiar el UUID, o usar el editor hexadecimal para modificar los datos sin procesar en el disco ( PELIGROSO, no recomendado a menos que sepa lo que está haciendo ).
linux
filesystems
cloning
uuid
LiuYan 刘 研
fuente
fuente
Respuestas:
Para generar un nuevo UUID aleatorio, uno puede usar:
Para cambiar realmente el UUID depende del sistema de archivos.
Asumiendo el sistema de archivos ext-family
O si estás seguro de que uuidgen va a funcionar:
Asumiendo el sistema de archivos btrfs
El UUID se almacena en el superbloque, por lo que una copia byte por byte del sistema de archivos tendrá el mismo UUID.
fuente
Utilizar:
si es un sistema de archivos ext , o
si es un sistema de archivos xfs .
La razón por la que la segunda partición tiene el mismo UUID es porque
dd
solo 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 o cómo generar un UUID, por lo que solo 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.Por cierto,
también creo que UUID (Universalmente IDentifier único) es un nombre extraño. Debería llamarse PGUID (posiblemente un identificador globalmente único), o incluso mejor, simplemente ARLN (un número razonablemente grande).
fuente
Además de ext2 / ext3 / ex4 y xfs, también puede cambiar el UUID del siguiente sistema de archivos o dispositivo de bloqueo.
Intercambiar
swaplabel -U $NEW_UUID
RAID de software (incursión de md)
Para MD RAID, primero debe detener el RAID, luego actualizar el UUID al volver a ensamblar. Entonces, si su RAID está montado
/
, necesita actualizar UUID en modo fuera de línea; use un CD 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 UUID, es posible que deba actualizar
grub.cfg
(rd.md.uuid=$NEW_UUID
en lalinux/linuxefi/linux16
línea de comando) y / ofstab
y / omdadm.conf
y / oupdate-initramfs
(familia Debian) y / odracut --force
(familia Red Hat) para que pueda arrancar con éxito la próxima vez.LUKS (cryptsetup)
cryptsetup luksUUID --uuid=$NEW_UUID $LUKS_DEVICE
Ejemplo:
cryptsetup luksUUID --uuid=e0c0e0c0-e0c0-e0c0-e0c0-e0c0e0c0e0c0 ~/encrypted-LUKS.loop
FAT / NTFS / exFAT
Esta es otra historia aquí,
actualmente no hay utilidades para modificar el UUID del sistema de archivos de estos sistemas de archivos(Ver la respuesta del reichhart : lamlabel
herramienta), pero podemos modificar los datos en bruto en el disco para hacerlo.ADVERTENCIA, es peligroso modificar datos sin procesar en el disco y podría perder datos sin una operación cuidadosa.
Aquí se detallan los pasos para modificar los datos sin procesar en el disco utilizando
hexedit
.blkid
, escriba el UUID del sistema de archivos en papel, o recuérdelo. La cadena UUID de FAT / exFAT se parece a la1122-3344
cadena UUID de NTFS1122334455667788
.Dispositivo de partición abierta usando hexedit
hexedit <partition device such as /dev/sda1>
blkid
informa1234-ABCD
, luego busqueCDAB3412
) para buscar los datos del UUID en el disco.blkid
para verificar el UUID.grub.cfg
y / ofstab
para que pueda arrancar con éxito la próxima vez.fsck <partition device such as /dev/sda1>
y vea el mensaje "Hay diferencias entre el sector de arranque y su copia de seguridad" . Para resolverlo, seleccione "1) Copiar original en copia de seguridad" , y si se le pregunta "¿Realizar cambios? (Y / n)" , presione y.fuente
mkfs.exfat -i 01234567 /dev/partitionname
donde elmkfs.exfat
comando fue instalado por el paquete exfat-utils en Fedora Linux. ¡Tal vez deberías agregar eso a tu respuesta, ya que la variante hexedit es bastante peligrosa!ntfslabel
herramienta. askubuntu.com/questions/642591/…Para XFS, use:
xfs_admin -U <uuid> <device>
Úselo
xfs_admin -u <device>
para ver un UUID (observe la opción de minúsculas para ver, frente a la opción de mayúsculas para configurar). Otra publicación en U&L señaló elblkid
comando para ver todos o algunos de los UUID en el sistema.fuente
Respuesta parcial para VFAT
Para los sistemas de archivos ext * y xfs ya hay buenas respuestas. Pero para VFAT, recomiendo usar mlabel del paquete mtools. Usar editores hexadecimales es PELIGROSO.
Use algo como esto para crear un nuevo UUID:
fuente
mlabel -n -i /dev/sdb3 ::
BTRFS
btrfsck
Se recomienda ejecutar porque cambiar UUID en BTRFS no es una operación atómica.fuente
Para NTFS, consulte este hilo para más detalles.
Resumen:
fuente
Bajo Fedora 27, descubrí que el orden de los argumentos juega un papel crucial ... Primero debe escribir el dispositivo; de lo contrario, el UUID no cambia. Por ejemplo
fuente
-U
antes deldevice
.Para cambiar el comando dd resultante de particiones de disco duplicadas UUID / s - Use GParted.
Desde la interfaz de usuario GParted, seleccione la unidad, seleccione la partición, desmonte la partición. En la 'Carpeta de partición', elija 'NUEVO UUID', repita hasta que todos los uuid / s de la partición duplicada de la unidad dd estén marcados para su reemplazo. Para discos de arranque, no reemplace el uuid de partición UEFI.
Revise la letra de unidad seleccionada y la partición / s: ¿todo bien? ...
Haga clic en el icono 'Aplicar todas las operaciones' en la interfaz de usuario de GParted.
Para los discos de arranque, edite el archivo / etc / fstab UUID = string / sy punto de montaje / s .:
fuente