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

21

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á la salida del df -hcomando (informando 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 me modificara /etc/fstaba esto?

    /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: Concluiría (3) como 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.

soy yo
fuente
Verifique el UUID con el sudo blkidcomando.
Avinash Raj
@AvinashRaj Hmm, extrañamente, el sudo blkidcomando genera un UUID diferente para /dev/vda. Esto se suma a mi confusión. :) (Pregunta actualizada)
its_me
No es una buena señal de que el comando blkid muestre un UUID diferente; compruebe el UUID actual con `ls -l / dev / disk / by-uuid ''. Desde su vda, ¿podría ser que la infraestructura de VM subyacente haya cambiado algo?
liquidat
@liquidat Esta es la salida que tengo: lrwxrwxrwx 1 root root 9 Jun 18 11:04 6f469437-4935-44c5-8ac6-53eb54a9af26 -> ../../vda. En cuanto a su otra pregunta, me pondré en contacto con el proveedor de alojamiento web sobre eso.
its_me
Yo diría que la máquina podría no reiniciarse ya que la entrada fstab es simplemente incorrecta. Podría ser un disco clonado o algo así. ¿Supongo que no hay otro dispositivo que tenga el UUID dado en fstab?
liquidat

Respuestas:

22

La ventaja de usar el UUID es que es independiente del número de dispositivo real que el sistema operativo le da 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 es ahora en sdblugar de 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 UUID en la publicación del blog "UUID y Linux: todo lo que necesita saber"

liquidat
fuente
Sí. incluso sin agregar un nuevo disco, su kernel puede decidir intercambiar dos de los montajes de desarrollo de sus unidades algún día. Ver wiki.archlinux.org/index.php/Persistent_block_device_naming
Tommy
¿Qué sucede si quiero clonar la imagen en otro disco, que tiene un UUID diferente?
aloplop85
Hay al menos una situación en la que los UUID son menos útiles: si clonas un disco completo y luego reinicias, es posible que las particiones se monten desde el disco o desde el disco incorrecto.
boot13
Eso es cierto: revise la publicación del blog vinculada, incluso tiene una sección cuando no usarlos.
liquidat
Si clona el disco, debe cambiar el UUID en el nuevo disco. tune2fs xfs_admin o reiserfstune pueden hacerlo dependiendo de su sistema de archivos.
steveayre
3

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

Usted puede y será probablemente estar bien, pero lo más probable sería mejor dejar el UUID.

Los UUID son cadenas arbitrarias que se utilizan 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 lo desea (más o menos como las direcciones MAC).

La ventaja de usar el UUID es que es inconfundible, mientras /dev/vdaque no lo es; que podría suceder que termina siendo una unidad diferente en el arranque, aunque esto puede ser totalmente teórico en el contexto (por ejemplo, ya que sólo tiene una unidad de un tipo particular).

Otro ejemplo más sutil de dónde usar el nombre del dispositivo puede causar un problema sería el cambio reciente en algunos sistemas para usar nombres de dispositivos de red consistentes . Si esto ocurriera como una actualización y utilizara 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 de kernel o udev que cambia el esquema de nomenclatura.

Un punto de los UUID es hacer que este tipo de cosas sea posible y sin dolor. Entonces, si bien puede usar el nombre del dispositivo, no hay ninguna ventaja en hacerlo a menos que (por ejemplo) tenga un sistema en el que intercambie diferentes unidades. En otras palabras, si no tiene una buena razón para hacerlo, quédese con el UUID .

encerrada dorada
fuente
Bueno. Así lo explica las diferentes UUID para /dev/vdaen /etc/fstaby reportado por blkid? (Si no lo ha hecho, vea la pregunta actualizada)
Its_me
55
En lugar de preguntar en una actualización, debe hacerlo como una pregunta por separado ("¿Por qué mi partición montada UUID es diferente a la de fstab?").
Ricitos
2

Puede hacerlo man fstabpara una lectura bastante concisa sobre el contenido y la semántica del /etc/fstabarchivo. En mi x86, el servidor Arch Linux 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, ya UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13aque ambos nombres parecen estar en "/".

Si busca en el directorio /dev/disk/by-uuid/, puede ver enlaces simbólicos que apuntan a cosas como /dev/sda1, /dev/sdb1en mi servidor. Esta podría ser otra forma de verificar su hipótesis. /dev/disktiene subdirectorios by-id, by-path, by-uuidque todos parecen ser nombres alternativos para el mismo dispositivo.

Bruce Ediger
fuente
En ese caso, el problema (como se actualizó en mi pregunta) es que obtengo dos UUID diferentes para /dev/vda. Por favor vea la pregunta una vez más.
its_me
1
Si respondí la pregunta original, podría ser una buena idea marcarla como "respondida" y escribir una nueva pregunta, solo para que no recopile respuestas irrelevantes, respuestas que funcionen con la pregunta original y no con la pregunta modificada.
Bruce Ediger