web-dev-qa-db-fra.com

Pourquoi FSTAB utilise-t-il UUID au lieu du nom du système de fichiers réel?

Par exemple, c'est la première ligne de mon /etc/fstab:

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

Et voici la sortie de df -h commande (signaler un espace disque disponible):

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. Du deux, c'est bien de déduire que UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13a représente /dev/vda Étant donné que la première colonne de fstab est <file system>?

  2. Donc, ça irait bien si j'ai modifié /etc/fstab pour ça?

    /dev/vda    /    ext4    errors=remount-ro    0    1
    
  3. Edit : Si oui (à la question ci-dessus), pourquoi le Sudo blkid commande montre une UUID différente pour /dev/vda?

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

    Qu'est-ce que j'oublie ici?

    Réponse : Je concluais (3) pour être un bogue dans le nuage de mon hôte. Donc oui, l'UUID rapporté par blkid (ou ls -l /dev/disk/by-uuid) devrait être la même que celle utilisée dans /etc/fstab.

22
its_me

L'avantage de l'utilisation de l'UUID est qu'il est indépendant du numéro de périphérique réel, le système d'exploitation donne votre disque dur.

Imaginez que vous ajoutez un autre disque dur au système et pour une raison quelconque, l'OS décide que votre ancien disque est maintenant sdb au lieu de sda.

Votre processus de démarrage serait foutu si fstab pointe sur le nom du périphérique. Mais dans le cas des uuids, tout va bien.

Des informations plus détaillées sur UUIDS peuvent également être trouvées sur le blog Post "Uuids et Linux: tout ce que vous avez besoin de savoir"

22
liquidat

Dans ce cas, puis-je modifier/etc/fstab à cela?

Vous peut et ce sera probablement va bien, mais probablement ce serait Soyez mieux de quitter l'UUID.

IDS sont des chaînes arbitraires utilisées pour identifier, dans ce cas, une partition sur un dispositif de blocage; sa stockée avec la partition elle-même et peut être attribuée à un autre si vous le souhaitez (en quelque sorte des adresses MAC).

L'avantage d'utiliser l'UUID est qu'il est indéniable, alors que /dev/vda n'est pas; Cela pourrait se produise qu'elle finit par devenir un lecteur différent au moment du démarrage, bien que cela puisse être totalement théorique dans son contexte (par exemple, parce que vous n'avez qu'un lecteur que d'un type particulier).

Un autre exemple plus subtil de l'utilisation du nom du périphérique peut entraîner un problème le commutateur récent sur certains systèmes à utiliser noms de périphérique réseau cohérents . Si cela s'est produit comme une mise à niveau et que vous avez utilisé un nom de périphérique codé dans un script de réseau quelque part, il se casserait. Un exemple parallèle des périphériques de bloc WRT peut être une mise à niveau du noyau ou de l'UDEV qui modifie le schéma de dénomination.

Un point d'Uuids est de faire ce genre de choses possible et sans douleur. Donc, alors que vous peut Utilisez le nom du périphérique, il n'y a aucun avantage à le faire sauf (par exemple) Vous avez un système dans lequel vous échangez différents lecteurs. En d'autres termes, si vous n'avez pas de bonne raison de le faire, bâton avec l'UUID .

3
goldilocks

Tu peux faire man fstab Pour une lecture assez concise sur le contenu et la sémantique de la /etc/fstab déposer. Sur mon X86, Server Linux d'Arch assez à jour, man fstab me donne ceci:

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

Donc oui, /dev/vda apparemment est l'un des nombreux noms de certains périphériques, tout comme UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13a, étant donné que les deux noms semblent se monter sur "/".

Si vous regardez dans le répertoire /dev/disk/by-uuid/ Vous pouvez voir des liens symboliques qui pointent comme /dev/sda1, /dev/sdb1 sur mon serveur. Cela pourrait être une autre façon de vérifier votre hypothèse. /dev/disk a des sous-répertoires by-id, by-path, by-uuid qui semblent tous être des noms alternatifs pour le même appareil.

2
Bruce Ediger