Introducción

Hola a todos,linux

Hoy traigo un articulo sobre linux. Supongo que el lector conoce el uuid de una partición de disco.

Como resumen indicar que es un identificador único que el sistema asigna a cada partición de los HDs conectados a la máquina. El uso del uuid se ha extendido desde hace unos años, por la gran ventaja que ofrece sobre otro tipo de referencias, me refiero a la inmutabilidad por decirlo de alguna forma.

Si referencias el disco por su uuid, da lo mismo en que puerto este situado, da lo mismo el orden del disco, da lo mismo la controladora sobre la que lo instalemos, en definitiva, el uuid es único para ese disco. Pensemos por ejemplo en el fichero /etc/fstab que como sabéis se emplea en el arranque del sistema operativo para montar todos los sistemas de ficheros. Emplear en este fichero referencias con uuid nos asegura que ningún cambio en las ubicaciones físicas de los discos van a impedir montar el sistema de ficheros. Por ejemplo, esta linea en el fichero fstab, referenciando el sistema de ficheros por su uuid nos asegura lo ya comentado para el disco de swap:

root@(none):~# cat /etc/fstab
LABEL=cloudimg-rootfs / ext4 defaults 0 0
tmpfs /opt/omd/sites/casamier/tmp tmpfs noauto,user,mode=755,uid=casamier,gid=casamier 0 0

UUID=4e8b641d-c29a-414d-bd90-4f75cd7ef151 none swap sw 0 0

Al grano

Bien dicho esto ¿que sucede si conecto un disco al PC y el sistema no asigna uuid?

La semana pasada hacia una revisión de Vagrant, y esta semana estaba echando un vistazo a un software de monitorización de infraestructura llamado nagios. Para ello aproveche Vagrant y tire de uno de las imágenes del repositorio.

Me puse a enredar con nagios y pocos días después me di cuenta que el sistema pre-configurado por Vagrant no disponía de swap, así que me dispuse a añadir dicho elemento. Apague la máquina en Virtualbox, le añadí un disco duro pequeñito, y volví a arrancar para emplear en uuid en el montaje. Sorpresa la mía cuando entro en el directorio donde se supone debe aparecer el uuid y no estaba:


root@(none):~# ls -lh /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 Jun 14 13:10 72523c99-3b57-4efa-a34e-a27a64447e6a -> ../../sda1

En Internet hay multitud de información sobre como obtener el uuid de un disco en el caso de no saber, pero no hay información sobre el problema que se me planteó. La verdad es que hasta el día de hoy no me había encontrado este problema, los motivos pienso que son varios:

  • Cuando instalo linux yo mismo y desde 0 siempre empleo swap
  • Nunca ha caído en mis manos una máquina virtual o física sin espacio de swap, es la primera vez
  • Los añadidos de discos que hasta la fecha he realizado siempre han sido discos que se emplean para el sistema propiamente dicho y siempre llegan preparados para conectar y listo

En este caso, el disco es raw, y hay que hacerle las particiones, cosa que hice oportunamente, pero ni aun si creaba el dichoso uuid.

Bien pues después de toda esta película, la solución suele ser mas simple de lo que te imaginas, yo ya estaba loco.

Para que el sistema asigne el uuid al disco de swap, hay que preparar dicho disco para swap con un formato concreto. La orden en mi caso es con el disco 2


root@(none):~# mkswap /dev/sdb1
Setting up swapspace version 1, size = 261116 KiB
no label, UUID=0b0fc396-8b0a-41b0-a700-ec8cfd5bd0dd

Con esta cuestión resuelta solo queda incluirlo en /etc/fstab para que se monte en el arranque de la máquina


root@(none):~# cat /etc/fstab
LABEL=cloudimg-rootfs / ext4 defaults 0 0
tmpfs /opt/omd/sites/casamier/tmp tmpfs noauto,user,mode=755,uid=casamier,gid=casamier 0 0

UUID=0b0fc396-8b0a-41b0-a700-ec8cfd5bd0dd none swap sw 0 0

Y activar dicho espacio


swapon -a

Y como podéis apreciar al realizar la preparación del sistema de ficheros se le asigna el famoso uuid. Así que a veces la solución esta delante de nuestras narices y no la vemos…

Un saludo a todos y nos vemos en el próximo artículo.

You must be logged in to post a comment.