GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo cambiar el UUID del sistema de archivos (2 mismos UUID)?

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.

  1. mdadm --stop $RAID_DEVICE
  2. mdadm --assemble $RAID_DEVICE --update=uuid --uuid=$NEW_UUID $MEMBER_DEVICES...

Ejemplo:

  1. mdadm --stop /dev/md127
  2. 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 .

  1. blkid , anote el UUID del sistema de archivos en papel, o recuérdelo. La cadena UUID de FAT/exFAT parece 1122-3344 , la cadena UUID de NTFS parece 1122334455667788 .

  2. Abra el dispositivo de partición usando hexedit

    hexedit <partition device such as /dev/sda1>

  3. Pulse / , ingrese el UUID en orden inverso (si blkid reportado 1234-ABCD , luego busca CDAB3412 ) para buscar los datos UUID en el disco.

  4. Una vez que se encuentra el UUID, cámbielo, presione F2 para guardar y salir.

  5. blkid para verificar el UUID.

  6. Una vez que se modifica el UUID, es posible que deba actualizar grub.cfg y/o fstab para que pueda arrancar con éxito la próxima vez.

  7. 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"

Linux
  1. Cómo cambiar un nombre de host en Linux

  2. ¿Cómo cambiamos la contraseña raíz?

  3. Cómo cambiar Shell en Linux

  4. Cómo cambiar el nombre de host en Debian

  5. Cómo usar el comando "xfs_admin" para cambiar los parámetros de un sistema de archivos XFS

Cómo cambiar de usuario en Linux

Cómo cambiar la dirección IP en Linux

¿Cómo cambiar los registros MX?

Cómo identificar el UUID del sistema de archivos en Linux:el tutorial definitivo

¿Cómo cambiar el esquema de partición en su servidor Linux?

Cómo cambiar la contraseña en Ubuntu