¿Por qué fstab usa UUID en lugar del nombre real del sistema de archivos?

¿Por qué fstab usa UUID en lugar del nombre real del sistema de archivos?

Por ejemplo, esta es la primera línea de mi /etc/fstab:

UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13a    /    ext4    errors=remount-ro    0    1

Y aquí está el resultado del df -hcomando (que informa de espacio libre en disco):

honey@bunny:~$ df -T

Filesystem     Type     1K-blocks    Used Available Use% Mounted on
/dev/vda       ext4      30832636 4884200  24359188  17% /
none           tmpfs            4       0         4   0% /sys/fs/cgroup
udev           devtmpfs    498172      12    498160   1% /dev
tmpfs          tmpfs       101796     320    101476   1% /run
none           tmpfs         5120       0      5120   0% /run/lock
none           tmpfs       508972       0    508972   0% /run/shm
none           tmpfs       102400       0    102400   0% /run/user
  1. De los dos, ¿está bien deducir que UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13arepresenta /dev/vdadado que la primera columna fstabes <file system>?

  2. Entonces, ¿estaría bien si modificara /etc/fstabesto?

    /dev/vda    /    ext4    errors=remount-ro    0    1
    
  3. EDITAR:En caso afirmativo (a la pregunta anterior), ¿por qué el sudo blkidcomando muestra un UUID diferente para /dev/vda?

    $ sudo blkid
    
    /dev/vda: LABEL="DOROOT" UUID="6f469437-4935-44c5-8ac6-53eb54a9af26" TYPE="ext4"
    

    ¿Que me estoy perdiendo aqui?

    Respuesta:Concluyo que (3) es un error en la nube de mi host. Entonces sí, el UUID informado por blkid(o ls -l /dev/disk/by-uuid) debe ser el mismo que el utilizado en /etc/fstab.

Respuesta1

La ventaja de utilizar el UUID es que es independiente del número de dispositivo real que el sistema operativo proporciona a su disco duro.

Imagine que agrega otro disco duro al sistema y, por alguna razón, el sistema operativo decide que su disco anterior ahora sdbes sda.

Su proceso de arranque se arruinaría si fstabapunta al nombre del dispositivo. Pero en el caso de los UUID, está bien.

También puede encontrar información más detallada sobre los UUID en la publicación del blog."UUID y Linux: todo lo que necesitas saber"

Respuesta2

En ese caso, ¿puedo modificar /etc/fstab a esto?

podery lo haráprobablementeEstará bien, pero lo más probable es que sea mejor dejar el UUID.

UUIDson cadenas arbitrarias utilizadas para identificar, en este caso, una partición en un dispositivo de bloque; se almacena con la partición misma y se le puede asignar una diferente si se desea (algo así como direcciones MAC).

La ventaja de utilizar el UUID es que es inconfundible, mientras que /dev/vdano lo es; élpodríaPuede suceder que termine siendo una unidad diferente en el momento del arranque, aunque esto puede ser totalmente teórico en contexto (por ejemplo, porque sólo tiene una unidad de un tipo particular).

Otro ejemplo más sutil de dónde el uso del nombre del dispositivo puede causar un problema sería el cambio reciente en algunos sistemas al usonombres de dispositivos de red consistentes. Si esto ocurriera como una actualización y usara un nombre de dispositivo codificado en un script de red en algún lugar, se rompería. Un ejemplo paralelo de dispositivos de bloque WRT podría ser una actualización del kernel o udev que cambia el esquema de nombres.

Uno de los objetivos de los UUID es hacer que este tipo de cosas sean posibles y sencillas. Así que mientras tupoderuse el nombre del dispositivo, no hay ninguna ventaja en hacerloa menos que(por ejemplo) tiene un sistema en el que intercambia diferentes unidades. En otras palabras, si no tiene una buena razón para hacerlo,quédate con el UUID.

Respuesta3

Puede realizar man fstabuna lectura bastante concisa del contenido y la semántica del /etc/fstabarchivo. En mi servidor Arch Linux x86, bastante actualizado, man fstabme da esto:

The second field ... describes  the mount point for the filesystem.

Entonces, sí, /dev/vdaaparentemente es uno de los muchos nombres para algún dispositivo, como lo es UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13a, dado que ambos nombres parecen montarse en "/".

Si miras en el directorio, /dev/disk/by-uuid/puedes ver enlaces simbólicos que apuntan a cosas como /dev/sda1en /dev/sdb1mi servidor. Esta podría ser otra forma de comprobar su hipótesis. /dev/disktiene subdirectorios by-id, by-pathque by-uuidparecen ser nombres alternativos para el mismo dispositivo.

información relacionada