A veces es necesario cambiar el UUID de una partición, sea cual sea el motivo en este artículo explico brevemente cómo hacerlo para particiones ext2/ext3 y NTFS.

Para particiones ext2/ext3 es muy sencillo, simplemente se debe generar un nuevo UUID y luego asignarlo a la particion deseada:

uuidgen
tune2fs /dev/sdxx -U  [número generado por uuidgen]



Se puede verificar el cambio mediante:

blkid

Para particiones NTFS, en cambio, no hay una herramienta como tune2fs y se debe hacer "cirugía" del superbloque NTFS. Afortunadamente Microsoft ha documentado muy bien la estructura del superbloque NTFS, por lo que el siguiente procedimiento se puede realizar de forma segura. Según Microsoft, el número de serie del volumen NTFS está formado por los 8 bytes a partir del offset 0x48. Entonces, si alteramos el número de serie obtendremos un nuevo UUID, de la siguiente forma:

!!!!!!!!!! ADVERTENCIA !!!!!!!!!!
Para particiones NTFS asegurarse de identificar la partición correcta, por ejemplo: sda1, sda2, sdb1, sdb2, sdc1, sdc2, etc.
NO poner sda o se destruirá la MBR!
Ejecutar "sudo blkid" para asegurarse de modificar la partición adecuada.
NO olvidarse ninguna parte del código o se corre el riesgo de modificar más que sólo el UUID.
Es posible causar pérdida de datos EN CUALQUIER DISCO CONECTADO A LA MÁQUINA si se especifica el disco o partición incorrectos. Los discos /dev/sdx (a diferencia de los discos /dev/hdx) no tienen un ordenamiento predecible. Ejecutar esto en una partición no-NTFS, o peor, un disco entero (por ejemplo /dev/sda en lugar de /dev/sda1) puede provocar serias pérdidas de datos.
!!!!!!!!!! FIN !!!!!!!!!!

  1. Primero hacemos un backup del superbloque NTFS:
    dd if=/dev/sdxx of=superb bs=512 count=1
    cp superb superb.bak
  2. Editamos el superbloque con un editor hexadecimal (por ejemplo heme, existen varios dependiendo de la distribución...). Se deben alterar sólo los 8 bytes comprendidos entre 0x48 y 0x4f inclusive:
    heme superb
  3. Finalmente sobreescribimos el superbloque NTFS modificado (ésta es la parte más riesgosa):
    dd if=superb of=/dev/sdxx bs=512 count=1

Eso es todo, nuevamente se puede comprobar el cambio mediante blkid. Hay una forma de hacerlo en una sola línea de código de la siguiente manera:

sudo dd if=/dev/urandom of=/dev/[ntfspartition] bs=8 count=1 seek=9

Los UUID de las particiones permiten, por ejemplo, montar precisamente las particiones (ya que los discos SATA no tienen un ordenamiento predecible) en el archivo /etc/fstab de la siguiente forma:

UUID={UUID-de-la-particion} {/ruta/al/punto/de/montaje} {tipo-de-filesystem} defaults,errors=remount-ro 0 1

Esto puede ser importante en un sistema que cuenta con más de un disco SATA.


Tal vez pueda interesarte


Compartí este artículo