Por que o fstab usa o UUID em vez do nome real do sistema de arquivos?

21

Por exemplo, esta é a primeira linha da minha /etc/fstab:

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

E aqui está a saída do df -hcomando (relatando espaço livre em 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. Dos dois, é aceitável deduzir o que UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13arepresenta, uma /dev/vdavez que a primeira coluna fstabé <file system>?

  2. Então, tudo bem se eu modificasse /etc/fstabpara isso?

    /dev/vda    /    ext4    errors=remount-ro    0    1
    
  3. EDIT: Se sim (para a pergunta acima), por que o sudo blkidcomando mostra um UUID diferente para /dev/vda?

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

    O que estou perdendo aqui?

    Resposta: Eu concluí que (3) é um bug na nuvem do meu host. Então, sim, o UUID relatado por blkid(ou ls -l /dev/disk/by-uuid) deve ser o mesmo usado em /etc/fstab.

sou eu
fonte
Verifique o UUID com o sudo blkidcomando
precisa
@AvinashRaj Hmm, estranhamente, o sudo blkidcomando gera um UUID diferente para /dev/vda. Isso aumenta minha confusão. :) (Pergunta atualizada.)
its_me
Não é um bom sinal de que o comando blkid mostra um UUID diferente - verifique o UUID atual com `ls -l / dev / disk / by-uuid ''. Desde a sua vda, será que a infraestrutura subjacente da VM mudou alguma coisa?
liquidat
@liquidat Esta é a saída que eu tenho: lrwxrwxrwx 1 root root 9 Jun 18 11:04 6f469437-4935-44c5-8ac6-53eb54a9af26 -> ../../vda. Quanto à sua outra pergunta, entrarei em contato com o host sobre isso.
its_me
Eu diria que a máquina pode não reiniciar, pois a entrada fstab está totalmente errada. Pode ser um disco clonado ou algo assim. Entendo que não há outro dispositivo com o UUID fornecido no fstab?
liquidat

Respostas:

22

A vantagem de usar o UUID é que ele é independente do número real do dispositivo que o sistema operacional fornece ao seu disco rígido.

Imagine que você adicione outro disco rígido ao sistema e, por algum motivo, o sistema operacional decide que seu disco antigo está agora em sdbvez de sda.

Seu processo de inicialização seria errado se fstabapontar para o nome do dispositivo. Mas no caso dos UUIDs, está tudo bem.

Informações mais detalhadas sobre UUIDs também podem ser encontradas na postagem do blog "UUIDs e Linux: tudo o que você precisa saber"

liquidat
fonte
Sim. mesmo sem adicionar um novo disco, seu kernel pode decidir trocar apenas duas das montagens de desenvolvimento de suas unidades em um dia. Veja wiki.archlinux.org/index.php/Persistent_block_device_naming
Tommy
o que acontece se eu quiser clonar a imagem em outro disco, que tenha um UUID diferente?
precisa saber é o seguinte
Há pelo menos uma situação em que os UUIDs são menos úteis: se você clonar um disco inteiro e reinicializar, poderá obter partições montadas no disco ou no disco errado.
boot13 5/06
Isso é verdade - verifique o post do blog vinculado, ele ainda tem uma seção quando não usá-los.
liquidat
Se você clonar o disco, altere o UUID no novo disco. O tune2fs xfs_admin ou reiserfstune pode fazer isso dependendo do seu sistema de arquivos.
steveayre 11/12
3

Nesse caso, posso modificar / etc / fstab para isso?

Você pode e provavelmente ficará bem, mas provavelmente seria melhor deixar o UUID.

UUIDs são seqüências arbitrárias usadas para identificar, nesse caso, uma partição em um dispositivo de bloco; é armazenado na própria partição e pode ser atribuído um diferente, se desejado (como endereços MAC semelhantes).

A vantagem de usar o UUID é que ele é inconfundível, enquanto /dev/vdanão é; isso poderia acontecer que ele acaba sendo uma unidade diferente no momento da inicialização, embora isto possa ser totalmente teórica no contexto (por exemplo, porque você só tem uma unidade de um tipo particular).

Outro exemplo mais sutil de onde o uso do nome do dispositivo pode causar problemas seria a mudança recente em alguns sistemas para o uso consistente de nomes de dispositivos de rede . Se isso ocorreu como uma atualização e você usou um nome de dispositivo codificado em um script de rede em algum lugar, ele seria interrompido. Um exemplo paralelo de dispositivos de bloco WRT pode ser uma atualização do kernel ou do udev que altera o esquema de nomenclatura.

Um ponto dos UUIDs é tornar esse tipo de coisa possível e indolor. Portanto, embora você possa usar o nome do dispositivo, não há vantagem em fazê-lo, a menos que (por exemplo) você tenha um sistema no qual troque unidades diferentes. Em outras palavras, se você não tiver um bom motivo para fazer isso, fique atento o UUID .

Cachinhos Dourados
fonte
OK. Então, o que explica as diferentes UUIDs para /dev/vdaem /etc/fstabe relatado por blkid? (Veja por favor a pergunta atualizado se você não tem.)
its_me
5
Em vez de solicitar uma atualização, você deve fazer isso como uma pergunta separada ("Por que o UUID da minha partição montada é diferente da do fstab?").
precisa
2

Você pode fazer man fstabuma leitura bastante concisa do conteúdo e da semântica do /etc/fstabarquivo. No meu x86, servidor Arch linux bastante atualizado, man fstabme fornece o seguinte:

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

Então, sim, /dev/vdaaparentemente é um dos muitos nomes para alguns dispositivos, como é UUID=050e1e34-39e6-4072-a03e-ae0bf90ba13a, dado que os dois nomes parecem estar montados em "/".

Se você procurar no diretório, /dev/disk/by-uuid/poderá ver links simbólicos que apontam para coisas como /dev/sda1, /dev/sdb1no meu servidor. Essa pode ser outra maneira de verificar sua hipótese. /dev/disktem subdiretórios by-id, by-path, by-uuidque todos parecem ser nomes alternativos para o mesmo dispositivo.

Bruce Ediger
fonte
Nesse caso, o problema (conforme atualizado na minha pergunta) é que recebo dois UUIDs diferentes /dev/vda! Por favor, veja a pergunta mais uma vez.
its_me
1
Se eu respondi à pergunta original, pode ser uma boa ideia marcá-la como "respondida" e escrever uma nova pergunta, para que você não colete respostas irrelevantes, respostas que funcionem com a pergunta original e não com a pergunta modificada.
precisa