Con G de GNU

Por qué usar las UUID en los discos duros

por Maxpowel en Ene.28, 2009

Antiguamente para referirse a las particiones en los archivos de configuración lo haciamos de la manera /dev/sda1 por ejemplo. Esto esta bien, es legible y te deja claro qué partición es pero hay un gran problema. Si por lo que sea (en mi caso muy frecuente jeje) cambias las particiones, borras unas y creas otras, la asignación de nombres cambia y puede darte problemas desde el fstab (no montará correctamente las particiones) hasta el grub (no se iniciará el sistema).

A mi siempre se me olvidaba cambiar esta configuración y se me hacía cansino volver a mirar que nombre tenían las particiones después de las modificaciones y esos royos.
Pero…por suerte tenemos los UUID!!

El UUID es un numerajo (también tiene letras así que es un numerajo con letras :P ) único para cada partición, así que por mucho que modifiques la tabla de particiones este numerito no cambiará.

El en grub por ejemplo, esto se agradece enormente ya que siempre es algo que se me olvida “reconfigurar” (como dije antes) y me doy cuenta cuando al encender el ordenador me dice que no arranca porque no encuentra la partición, ouch!. Por suerte con el tiempo se aprende a arreglar estas cosas fácilmente pero he visto casos en los que el usuario en cuestión se planteaba reinstalar el sistema operativo (esque vienen viciados por su anterior SO). Usando las UUID de las particiones esto no sucede, que alivio :P

title        Linux
root        (hd0,5)
kernel        /boot/vmlinuz-2.6.27.7-desktop-1mnb BOOT_IMAGE=desktop_2.6.27.7-1mnb root=UUID=5f954576-e7fb-11dd-a363-f3fa14c80e95 splash=silent vga=788
initrd        (hd0,6)/boot/initrd-2.6.27.7-desktop-1mnb.img
savedefault
boot

Ejemplo de entradad de grub usando uuid

En el  /etc/fstab sucede lo mismo. Si has cambiado la tabla de particiones puedes encontrarte con que tu usuario ha desaparecido!! aaa!! No! tranquilos, no se ha perdido nada. Esto sucede si tienes una partición destinada al home (como debe hacerse) y resulta que ahora tiene otro nombre (ej. antes /dev/sda5 y ahora /dev/sda4) y como la partición no se monta la información del usuario queda inaccesible hasta que modifiquemos a mano la configuración.

UUID=e3aa1e81-0025-44ee-a83b-83a5a8929d3d /               ext3    relatime,errors=remount-ro 0       1
UUID=dd67227e-ce85-4888-8df6-5495dd6ad38b /home        ext3    defaults    0    1
UUID=8763a276-d7ca-4e15-86e7-df8cea25ebad swap        swap    defaults    0    0

Ejemplo de fstab usando uuids

Para ver la uuid de una partición (entre otros datos) usamos el comando vol_id, para el cual necesitamos privilegios de root

root@flanders:/home/alvaro# vol_id /dev/sda3
ID_FS_USAGE=other
ID_FS_TYPE=suspend
ID_FS_VERSION=ulsuspend
ID_FS_UUID=39197eca-0b05-40cf-b54c-3a61ffa60fe2
ID_FS_UUID_ENC=39197eca-0b05-40cf-b54c-3a61ffa60fe2
ID_FS_LABEL=
ID_FS_LABEL_ENC=
ID_FS_LABEL_SAFE=

Vemos que el uuid de la partición /dev/sda3 es 39197eca-0b05-40cf-b54c-3a61ffa60fe2

Resumiendo, que gracias a las uuid nos ahorramos la preocupación de las nomenclaturas de las particiones y así olvidarnos de tener que reconfigurar diferentes archivos (incluso scripts propios donde usemos el comando mount).

Pero remarco que esto es sobre todo útil en scripts automatizados. Cuando usamos mount a mano es más facil escribir /dev/sda3 que 5f954576-e7fb-11dd-a363-f3fa14c80e95 evidentemente, cada cosa tiene sus usos y ahí es donde cada uno elige.

Espero que quienes no veían la utilidad de las uuid de las particiones ahora las vean un poco “útiles” y que esos endiablados numerajos son bastante útiles ;)

Comparte esto!
  • Meneame
  • Bitacoras.com
  • Technorati
  • BarraPunto
  • del.icio.us
  • MySpace
  • Facebook
  • TwitThis
  • email

Entradas relacionadas:

  1. Seagate se corona: Discos Duros suicidas Si eres poseedor de un seagate barracuda 7200.11 ten cuidado,...

General
8 cometarios:
  1. deckerix

    muy bien explicado, gracias :)

  2. Dalai

    ¡Me viene de perlas!, justo voy a adquirir un nuevo disco y voy a reordenar las particiones, me acabas de ahorrar un dolor de cabeza XD

  3. DiCrEn

    Añadir que para conocer las UUID todas de golpe se puede usar “ls -lF /dev/disk/by-uuid/”

  4. Maxpowel

    a mi también me ha ahorrado dolores de cabeza :P
    Pero cuidado, si borras una partición y la vuelves a crear se le asignará otro uuid a esa partición. Lo de las uuid sirve para que no se vean afectadas el resto de las particiones, no se si me explico

  5. Dalai

    Si, lo entiendo, me servira para que no haya problemas con las particiones que no voy a tocar.

  6. juan

    Mi comentario es una consulta: por si acaso. He instalado 9.04 en un USB de 350 GB. La identificación de disco en menu.lst se hace mediante UUID. Según tu explicación es lo ideal. El problema: cuando monta el initrd no crea /dev/disk/by-UUID del disco USB y me dice que no encuentra el disco (dropping to a shell).
    No se sufiente para inspeccionar el init del initrd.img así que no sé porque no crea esa carpeta.
    A ver si se os ocurre algo.

    Gracias, por si acaso

  7. Maxpowel

    Quizás al instalar ubuntu se volvió a crear la partición, en ese caso la uuid sería diferente.

    Lo de la uuid es útil cuando modificas las demás particiones, pero si modificas la propia partición tendrás que cambiar la uuid por la nueva. Asegúrate de que no ha cambiado y me cuentas.

  8. fermin

    Hola

    Soy nuevo en esto del software libre y tengo un problema.

    Formatee una partición que ya tenia cuando instale Ubuntu y ahora no puede arrancar el sistema.

    Me aparece un error que dice “one of more of the mounts…”

    Revise en foros y encontre la nueva UUID de la partición.

    Lo que no puedo hacer es reemplazar esta nueva UUID por la anterior.

    Agradeceria me pudieran explicar paso a paso como hacerlo (es que de verdad no se mucho)

    Muchas gracias y espero me puedan ayudar

Deja tu comentario! no mordemos!

¿Buscando algo?

Usa el formulario de debajo:

¿Sigues sin encontrar lo que buscas? ¡Deja un comentario o ponte en contacto con nosotros para que lo encontremos por ti!