Uso de UUID en /etc/fstab y en grub

No me preguntéis por qué, pero, de un día para otro (debido, sin duda a la actualización de algún paquete), mi Debian Lenny dejó de reconocer los discos duros (son IDE normalitos) como /dev/hdX, pasando a ser /dev/sdX, con el consiguiente pánico en el arranque.

Afortunadamente, pude arrancar con un kernel anterior (actualmente tengo, por defecto, el 2.6.22-2, pero tengo guardado el 2.6.21-2, que sigue reconociendo los discos como /dev/hdX).

Precisamente porque mantengo ambos kernels, decidí que no podía cambiar directamente el fichero /etc/fstab poniendo sd donde antes ponía hd sin más, por lo que decidí utilizar la posibilidad de usar etiquetas identificativas únicas (UUID) de cada una de las particiones de mis discos duros. Esto permitiría arrancar el sistema tanto con un kernel como con el otro.

Para ello, lo primero que tenía que hacer es averiguar el UUID de cada una de mis particiones. Esto es fácil y se puede hacer de dos formas:

  • Con el comando blkid. Al ejecutarlo en mi ordenador, la salida es la siguiente:
/dev/sda1: UUID="8121580a-584e-4700-907b-9b868acfe69e" SEC_TYPE="ext2" TYPE="ext3"
/dev/sda2: TYPE="swap" UUID="09e26881-a3c1-426f-a01d-39f8fd2dfde7"
/dev/sda3: UUID="8fba1ffc-2af0-41b9-a71e-f2bd2a307cac" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdb2: UUID="eb9c1b22-2c10-45a3-adf6-2c8fd0fad253" SEC_TYPE="ext2" TYPE="ext3"
  • Listando directamente los dispositivos mediante ls -l /dev/disk/by-uuid/. La salida del comando para mí es (dejo sólo la parte interesante):
09e26881-a3c1-426f-a01d-39f8fd2dfde7 -> ../../sda2
8121580a-584e-4700-907b-9b868acfe69e -> ../../sda1
8fba1ffc-2af0-41b9-a71e-f2bd2a307cac -> ../../sda3
eb9c1b22-2c10-45a3-adf6-2c8fd0fad253 -> ../../sdb2

Una vez identificadas las particiones, sólo queda editar el fichero /etc/fstab de la forma apropiada. En mi caso:

#/dev/sda3   /     auto   errors=remount-ro  0  1
UUID=8fba1ffc-2af0-41b9-a71e-f2bd2a307cac   /     auto   errors=remount-ro  0  1
#/dev/sda2   none  swap   sw                 0  0
UUID=09e26881-a3c1-426f-a01d-39f8fd2dfde7   none  swap   sw                 0  0
proc         /proc proc   defaults           0  0
#/dev/sda1   /boot auto   defaults           0  2
UUID=8121580a-584e-4700-907b-9b868acfe69e   /boot auto   defaults           0  2
#/dev/sdb2   /home auto   defaults           0  2
UUID=eb9c1b22-2c10-45a3-adf6-2c8fd0fad253   /home auto   defaults           0  2

¿Así de sencillo y de fácil? Nooooo. No cometáis el mismo error que yo. También hay que modificar el fichero /boot/grub/menu.lst del Grub. Es muy fácil, pero hay que hacerlo. En dicho archivo buscad las siguientes líneas:

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
## kopt_2_6_8=root=/dev/hdc1 ro
## kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=/dev/hda3 ro

Pues bien, sólo hay que cambiar la última línea y dejarla (en mi caso) del siguiente modo (¡no olvidéis dejar la #!):

# kopt=root=UUID=8fba1ffc-2af0-41b9-a71e-f2bd2a307cac ro

Luego basta con ejecutar update-grub y el propio Debian se encargará de actualizar el resto del fichero.

Ahora ya sí podéis rearrancar el sistema sin miedo.

Añadido: No olvidar tampoco editar el fichero /etc/uswsusp.conf o reinstalar el paquete uswsusp.

Uso de UUID en /etc/fstab y en grub
4.5 (2 votos)

15 thoughts on “Uso de UUID en /etc/fstab y en grub

  1. Pingback: UUID y problemas al montar unidades | Chicoloapan. Grupo de Usuarios Linux
  2. Gracias por las pistas para editar fstab! Actualicé mi sistema a 11.04 y puse mi antiguo /home en una partición distinta y ahora recuperé mi configuración y archivos editando el fstab. OJO! Casi se me cayeron los pocos pelos que me quedan porque no me levantaba la partición porque tipeado mal el UUID… cuidado con los deditos!!!
    🙂

  3. Se puede usar gparted para ver el UUID; voy a tener que usarlo porque me pasa lo mismo, pero afortunadamente no con la raíz y el directorio personal. En el fstab aparecen con ese identificador.

    Aparte no entiendo lo que dices con

    Añadido: No olvidar tampoco editar el fichero /etc/uswsusp.conf o reinstalar el paquete uswsusp.

    ¡Qué diantre hay ahí! Deberías mencionarlo.

    ¡Saludos!

  4. Pingback: Blogs 09/09
  5. Parece que vienes de Google buscando algo relacionado con “t”. Espero que encuentres en estas páginas la información que te interesa.

    XD

    Valga anotar que, casi siempre, el más mínimo cambio del tamaño de la particion, tabla de la particion, o formato (ext3, ntfs,…) cambia el uuid. Vale anotarlo para evitar dolores de cabeza

    Gran artículo.

  6. ok con el comando “ls -l /dev/disk/by-uuid” puedo ver los diskos por uid, pero aquellos que no son ext3 tienen un uuid mas corto, no entiendo si este debe ser el uid para un disko sun o de otro OS poco usado, ademas las particiones swap no salen con uid, si tienes una solu avisa en http://foros.venenux.org on en http://qgqlochekone.blogspot.com ok.

    mientras hice una especie de solucion, como la particion swap no tiene datos importantes, para saver su uuid la formatie de nuevo y lo obtuve en modo verbose, y asi lo asigne en el grub (para resume y hybernate) y en el fstab (para no tener que siempre saber!)

    esta solucion la especifique (formatear en vivo la swap) en los foros de venenux!

  7. Pingback: lsosl » Montar particiones al arrancar en Ubuntu
  8. Perdón ese que puse era otro que estaba modificando.

    Este es el menu.lst que estoy usando.

    menu.lst – See: grub(8), info grub, update-grub(8)
    # grub-install(8), grub-floppy(8),
    # grub-md5-crypt, /usr/share/doc/grub
    # and /usr/share/doc/grub-doc/.

    ## default num
    # Set the default entry to the entry number NUM. Numbering starts from 0, and
    # the entry number 0 is the default if the command is not used.
    #
    # You can specify ‘saved’ instead of a number. In this case, the default entry
    # is the entry saved with the command ‘savedefault’.
    # WARNING: If you are using dmraid do not change this entry to ‘saved’ or your
    # array will desync and will not let you boot your system.
    default 0

    ## timeout sec
    # Set a timeout, in SEC seconds, before automatically booting the default entry
    # (normally the first entry defined).
    timeout 10

    ## hiddenmenu
    # Hides the menu by default (press ESC to see the menu)
    #hiddenmenu

    # Pretty colours
    color cyan/blue white/blue

    #A splash image for the menu
    splashimage=(hd1,0)/boot/grub/splashimages/debsplash.xpm

    ## password [‘–md5’] passwd
    # If used in the first section of a menu file, disable all interactive editing
    # control (menu entry editor and command-line) and entries protected by the
    # command ‘lock’
    # e.g. password topsecret
    ## password –md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
    # password topsecret

    #
    # examples
    #
    # title Windows 95/98/NT/2000
    # root (hd0,0)
    # makeactive
    # chainloader +1
    #
    # title Linux
    # root (hd0,1)
    # kernel /vmlinuz root=/dev/hda2 ro
    #

    #
    # Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

    ### BEGIN AUTOMAGIC KERNELS LIST
    ## lines between the AUTOMAGIC KERNELS LIST markers will be modified
    ## by the debian update-grub script except for the default options below

    ## DO NOT UNCOMMENT THEM, Just edit them to your needs

    ## ## Start Default Options ##
    ## default kernel options
    ## default kernel options for automagic boot options
    ## If you want special options for specific kernels use kopt_x_y_z
    ## where x.y.z is kernel version. Minor versions can be omitted.
    ## e.g. kopt=root=/dev/hda1 ro
    ## kopt_2_6_8=root=/dev/hdc1 ro
    ## kopt_2_6_8_2_686=root=/dev/hdc2 ro
    # kopt=root=UUID=0e1dbe59-7db9-420f-ac21-9d98a1f73cbc ro
    # kopt=root=UUID=95f19adb-a8ff-4e0d-9074-5e33c1b06b8b ro

    ## Setup crashdump menu entries
    ## e.g. crashdump=1
    # crashdump=0

    ## default grub root device
    ## e.g. groot=(hd0,0)
    # groot=(hd1,2)

    ## should update-grub create alternative automagic boot options
    ## e.g. alternative=true
    ## alternative=false
    # alternative=true

    ## should update-grub lock alternative automagic boot options
    ## e.g. lockalternative=true
    ## lockalternative=false
    # lockalternative=false

    ## additional options to use with the default boot option, but not with the
    ## alternatives
    ## e.g. defoptions=vga=791 resume=/dev/hda5
    # defoptions=quiet splash locale=es_ES vga=792

    ## should update-grub lock old automagic boot options
    ## e.g. lockold=false
    ## lockold=true
    # lockold=false

    ## Xen hypervisor options to use with the default Xen boot option
    # xenhopt=

    ## Xen Linux kernel options to use with the default Xen boot option
    # xenkopt=console=tty0

    ## altoption boot targets option
    ## multiple altoptions lines are allowed
    ## e.g. altoptions=(extra menu suffix) extra boot options
    ## altoptions=(recovery) single
    # altoptions=(recovery mode) single

    ## controls how many kernels should be put into the menu.lst
    ## only counts the first occurence of a kernel, not the
    ## alternative kernel options
    ## e.g. howmany=all
    ## howmany=7
    # howmany=all

    ## should update-grub create memtest86 boot option
    ## e.g. memtest86=true
    ## memtest86=false
    # memtest86=true

    ## should update-grub adjust the value of the default booted system
    ## can be true or false
    # updatedefaultentry=false

    ## ## End Default Options ##

    title Windows
    root (hd0,0)
    makeactive
    chainloader +1

    title Ubuntu
    root (hd1,0)
    kernel /boot/vmlinuz-2.6.20-16-generic root=UUID=0e1dbe59-7db9-420f-ac21-9d98a1f73cbc ro quiet splash locale=es_ES vga=792
    initrd /boot/initrd.img-2.6.20-16-generic
    quiet
    savedefault

    title PCLinuxOS release 2007 (PCLinuxOS)
    kernel (hd0,4)/boot/vmlinuz BOOT_IMAGE=linux root=/dev/hda5 acpi=on resume=/dev/hda2 splash=silent vga=788
    initrd (hd0,4)/boot/initrd.img

    title Mandriva
    kernel (hd0,3)/boot/vmlinuz BOOT_IMAGE=Mandriva root=UUID=95f19adb-a8ff-4e0d-9074-5e33c1b06b8b resume=/dev/hda2 splash=silent vga=788
    initrd (hd0,3)/boot/initrd.img

  9. Esta muy interesante tu blog y tal vez me podas ayudar.

    Tengo un problemita con mi grub.

    Yo tengo el grub en un diskette y tengo Vista, XP, ubuntu, PcLinux y todos funcionan bien.

    Ahora quise probar Mandriva y lo instale y todo pero a la hora de iniciarlo no jala.

    Agrege Mandriva al menu.lst copiando las lineas del menu.lst de la particion donde tengo mandriva, pero no me arranca. Probe con la linea normal /dev/hda4 y con uuid pero nada.

    Realmente me esta molestando bastante esto y no encuentro como corregirlo.

    Te pongo mi menu.lst de donde arranco para que si tenes tiempo tal vez me podas ayudar.

    # menu.lst – See: grub(8), info grub, update-grub(8)
    # grub-install(8), grub-floppy(8),
    # grub-md5-crypt, /usr/share/doc/grub
    # and /usr/share/doc/grub-doc/.

    ## default num
    # Set the default entry to the entry number NUM. Numbering starts from 0, and
    # the entry number 0 is the default if the command is not used.
    #
    # You can specify ‘saved’ instead of a number. In this case, the default entry
    # is the entry saved with the command ‘savedefault’.
    # WARNING: If you are using dmraid do not change this entry to ‘saved’ or your
    # array will desync and will not let you boot your system.
    default 0

    ## timeout sec
    # Set a timeout, in SEC seconds, before automatically booting the default entry
    # (normally the first entry defined).
    timeout 10

    ## hiddenmenu
    # Hides the menu by default (press ESC to see the menu)
    #hiddenmenu

    # Pretty colours
    color cyan/blue white/blue

    #A splash image for the menu
    splashimage=(hd1,0)/boot/grub/splashimages/debsplash.xpm

    ## password [‘–md5’] passwd
    # If used in the first section of a menu file, disable all interactive editing
    # control (menu entry editor and command-line) and entries protected by the
    # command ‘lock’
    # e.g. password topsecret
    ## password –md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
    # password topsecret

    #
    # examples
    #
    # title Windows 95/98/NT/2000
    # root (hd0,0)
    # makeactive
    # chainloader +1
    #
    # title Linux
    # root (hd0,1)
    # kernel /vmlinuz root=/dev/hda2 ro
    #

    #
    # Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

    ### BEGIN AUTOMAGIC KERNELS LIST
    ## lines between the AUTOMAGIC KERNELS LIST markers will be modified
    ## by the debian update-grub script except for the default options below

    ## DO NOT UNCOMMENT THEM, Just edit them to your needs

    ## ## Start Default Options ##
    ## default kernel options
    ## default kernel options for automagic boot options
    ## If you want special options for specific kernels use kopt_x_y_z
    ## where x.y.z is kernel version. Minor versions can be omitted.
    ## e.g. kopt=root=/dev/hda1 ro
    ## kopt_2_6_8=root=/dev/hdc1 ro
    ## kopt_2_6_8_2_686=root=/dev/hdc2 ro
    # kopt=root=UUID=0e1dbe59-7db9-420f-ac21-9d98a1f73cbc ro

    ## Setup crashdump menu entries
    ## e.g. crashdump=1
    # crashdump=0

    ## default grub root device
    ## e.g. groot=(hd0,0)
    # groot=(hd1,2)

    ## should update-grub create alternative automagic boot options
    ## e.g. alternative=true
    ## alternative=false
    # alternative=true

    ## should update-grub lock alternative automagic boot options
    ## e.g. lockalternative=true
    ## lockalternative=false
    # lockalternative=false

    ## additional options to use with the default boot option, but not with the
    ## alternatives
    ## e.g. defoptions=vga=791 resume=/dev/hda5
    # defoptions=quiet splash locale=es_ES vga=792

    ## should update-grub lock old automagic boot options
    ## e.g. lockold=false
    ## lockold=true
    # lockold=false

    ## Xen hypervisor options to use with the default Xen boot option
    # xenhopt=

    ## Xen Linux kernel options to use with the default Xen boot option
    # xenkopt=console=tty0

    ## altoption boot targets option
    ## multiple altoptions lines are allowed
    ## e.g. altoptions=(extra menu suffix) extra boot options
    ## altoptions=(recovery) single
    # altoptions=(recovery mode) single

    ## controls how many kernels should be put into the menu.lst
    ## only counts the first occurence of a kernel, not the
    ## alternative kernel options
    ## e.g. howmany=all
    ## howmany=7
    # howmany=all

    ## should update-grub create memtest86 boot option
    ## e.g. memtest86=true
    ## memtest86=false
    # memtest86=true

    ## should update-grub adjust the value of the default booted system
    ## can be true or false
    # updatedefaultentry=false

    ## ## End Default Options ##

    title Ubuntu, kernel 2.6.20-16-generic
    root (hd1,2)
    kernel /boot/vmlinuz-2.6.20-16-generic root=UUID=0e1dbe59-7db9-420f-ac21-9d98a1f73cbc ro root=UUID=95f19adb-a8ff-4e0d-9074-5e33c1b06b8b ro quiet splash locale=es_ES vga=792
    initrd /boot/initrd.img-2.6.20-16-generic
    quiet
    savedefault

    title Ubuntu, kernel 2.6.20-16-generic (recovery mode)
    root (hd1,2)
    kernel /boot/vmlinuz-2.6.20-16-generic root=UUID=0e1dbe59-7db9-420f-ac21-9d98a1f73cbc ro root=UUID=95f19adb-a8ff-4e0d-9074-5e33c1b06b8b ro single
    initrd /boot/initrd.img-2.6.20-16-generic

    title Ubuntu, kernel 2.6.20-15-generic
    root (hd1,2)
    kernel /boot/vmlinuz-2.6.20-15-generic root=UUID=0e1dbe59-7db9-420f-ac21-9d98a1f73cbc ro root=UUID=95f19adb-a8ff-4e0d-9074-5e33c1b06b8b ro quiet splash locale=es_ES vga=792
    initrd /boot/initrd.img-2.6.20-15-generic
    quiet
    savedefault

    title Ubuntu, kernel 2.6.20-15-generic (recovery mode)
    root (hd1,2)
    kernel /boot/vmlinuz-2.6.20-15-generic root=UUID=0e1dbe59-7db9-420f-ac21-9d98a1f73cbc ro root=UUID=95f19adb-a8ff-4e0d-9074-5e33c1b06b8b ro single
    initrd /boot/initrd.img-2.6.20-15-generic

    title Ubuntu, memtest86+
    root (hd1,2)
    kernel /boot/memtest86+.bin
    quiet

    No se si debería agregar

    # kopt=root=UUID=95f19adb-a8ff-4e0d-9074-5e33c1b06b8b ro

    Te agradecería muchísimo si me pudieras ayudar si te sobra un tiempito.

    Gracias

Deja un comentario