GDH Press: Blog » Entendendo as identificações de partição no Ubuntu (UUIDs)
 
RSS

Entendendo as identificações de partição no Ubuntu (UUIDs)

Publicado em 08/08/2008 – 08:35
por Carlos Morimoto

No Linux, todos os dispositivos de sistema são acessados através de arquivos especiais criados dentro do diretório "/dev". Isso naturalmente inclui os HDs e as partições. Tradicionalmente, os HDs IDE são acessados através de devices iniciados com "/dev/hd", como em "/dev/hda" (master da primeira porta IDE), "/dev/hdb" (slave da primeira IDE), "/dev/hdc" (master da segunda IDE) e "/dev/hdd" (slave da segunda IDE), enquanto os HDs SCSI, SATA ou SAS recebem devices iniciados com "/dev/sd", como em "/dev/sda" (primeiro HD), "/dev/sdb" (segundo HD), "/dev/sdc" (terceiro HD) e assim por diante.

Entretanto, isso mudou nas versões recentes do Kernel (a partir do 2.6.20), onde, devido a uma mudança no subsistema que dá suporte a discos, todos os HDs passaram a receber devices iniciados com "/dev/sd", independente de serem HDs IDE, SATA, SCSI ou USB.

Uma boa forma de ver como o sistema detectou os HDs instalados é usar (como root) o comando "fdisk -l", que lista os HDs e as partições disponíveis.

O que faz com que todas as partições sejam corretamente montadas durante o boot são entradas inseridas no arquivo "/etc/fstab". Aqui temos um exemplo de configuração clássica:

/dev/sda1 / ext3 defaults 0 1
/dev/sda2 /home ext3 noatime 0 2
/dev/sda5 none swap sw 0 0
/dev/cdrom /mnt/cdrom iso9660 defaults,ro,user,noexec,noauto 0 0
proc /proc proc defaults 0 0

Como pode ver, cada linha descreve uma partição que será acessada pelo sistema. No exemplo, a primeira linha é referente à partição raiz, a segunda se refere a uma partição separada, montada no diretório home, a terceira é referente à partição swap, a quinta é referente ao CD-ROM e a última ao diretório proc, um diretório especial usado pelo kernel para armazenar variáveis de configuração e atalhos de acesso a dispositivos.

Dentro de cada linha, o primeiro parâmetro (/dev/sda1) indica a partição, o segundo o diretório onde ela será montada (/), o terceiro indica o sistema de arquivos em que a partição foi formatada (ext3) enquanto o "defaults 0 1" permite definir configurações adicionais. O "default", por exemplo, é um "nada a declarar", que faz com que a partição seja acessada usando as opções padrão, enquanto o "noatime" na segunda linha é uma opção de otimização, que faz com que o sistema não atualize a data de acesso quando os arquivos são lidos, o que resulta em um pequeno ganho de desempenho.

Normalmente, você define os pontos de montagem das partições durante a própria instalação do sistema, de forma que o instalador se encarregará de adicionar as entradas apropriadas automaticamente. Ao instalar outros HDs posteriormente, você pode fazer com que o sistema passe a usá-las inserindo as linhas apropriadas no fstab.

Entretanto, se você estiver usando o Ubuntu, vai perceber que ele não faz referência às partições dentro do fstab pelo dispositivo, mas sim pelo UUID, que é um identificador único. O uso dos UUIDs complica a configuração, mas oferece a vantagem de garantir que o sistema continue sendo capaz de montar as partições mesmo que os HDs mudem de posição ou sejam instalados em portas diferentes da placa-mãe.

Para seguir o padrão do Ubuntu, identificando a partição através do UUID, você pode verificar qual é o UUID referente à sua partição usando o comando "blkid", como em:

# blkid /dev/sdc1

/dev/sdc1: UUID="5c5a3aff-d8a3-479e-9e54-c4956bd2b8fd" SEC_TYPE="ext2" TYPE="ext3"

Você pode então especificar o UUID na linha do fstab no lugar do device, como em:

UUID=5c5a3aff-d8a3-479e-9e54-c4956bd2b8fd /mnt/sdc1 ext3 defaults 0 0

Um aviso importante é que o fstab é um dos arquivos essenciais para a inicialização do sistema, por isso você sempre deve checar e rechecar as alterações. Um erro na linha referente à partição raiz, por exemplo, simplesmente fará o sistema deixar de inicializar.

Outra observação é que você deve deixar sempre uma linha em branco no final do arquivo, caso contrário passará a receber um aviso durante o boot. Ela é necessária por um motivo muito simples: sem ela, se um utilitário de configuração qualquer tentar inserir informações no final do arquivo, vai acabar inserindo-as no final da linha anterior (em vez de em uma nova linha), resultando em uma configuração inválida.

» Mais posts

  1. 6 respostas para “Entendendo as identificações de partição no Ubuntu (UUIDs)”

  2. Roberto Alves em 8 ago, 2008

    Muito boa a dica. Sabia que era um identificador, mas nunca tinha entendido da onde vinham esses números.

  3. alessandro_ufms em 9 ago, 2008

    Opa, boa explicação, mas tenho uma dúvida a um pouco de tempo. Eu tenho tinha instalado na minha máquina o Ubuntu e percebi que no Gnome (não sei se em outros WMs acontece isso também) as partições que não estavam no fstab eram mostradas desmontadas no menu Locais e montadas quando clicava nelas. Pensei que era uma configuração automática do Ubuntu então nem me preocupei muito, porém vi que isso acontece com o Archlinux também só que uma vez montada não preciso mais montá-las no próximo boot. Onde que eu faço essas configurações, visto que estou com a minha partição de dados montada automaticamente no boot e ela não consta no fstab.

    E quanto aos pendrives e outros dispositivos de armazenamento móveis?

    Obrigado.

  4. Carlos Morimoto em 9 ago, 2008

    Alessandro, este recurso de montagem automática funciona assim:

    Quando um pendrive ou qualquer outro novo dispositivo de armazenamento é plugado, ele é detectado pelo udev, que cria os devices de acesso e executa um script de configuração (que é criado pelos próprios desenvolvedores da distribuição), que adiciona as linhas correspondentes no fstab.

    Em seguida, entram em cena o haldamon e o messagebus, dois serviços adicionais que enviam a mensagem a um componente do KDE ou Gnome, que se encarrega de criar um ícone no desktop, ou exibir uma mensagem avisando da modificação.

    Dependendo da configuração e da versão do Kernel usada, tudo isso pode acontecer instantaneamente após plugar o dispositivo, ou demorar até 6 segundos.

    Você pode ler mais sobre como isso funciona no Ferramentas Técnicas: http://www.gdhpress.com.br/ferramentas/leia/index.php?p=cap2-22

  5. kallikrates em 24 ago, 2008

    Concordo que complica a configuração do fstab, principalmente para quem é mais iniciante e quer se aventurar na edição do arquivo fstab. Por outro lado, abra um terminal, digite como superusuário o comando #blkid apenas que ele descreve todos os UIDD de todas as partições que você já tem, e é só copiar e colar um bloco de notas, mandar imprimir para tê-las à mão para ajudar na hora da digitação.

  6. Flávio Lima em 26 ago, 2008

    Gostaria de saber se esta opção de UUID está disponível para versões anteriores de kernel, como a do Kurumin 7.

  7. urquiza em 20 mar, 2009

    Pode se usar o blkid ou vol_id, conforme abaixo.
    sudo blkid > teste
    ou
    sudo vol_id > teste

    O acontece é que toda a informação gerada pelos comandos acima, é direcionada para um arquivo txt, um arquivo de texto que é criado na pasta onde onde foi executado o comando.

    Abra o arquivo, copia e cola as UUID, mas tenha cuidado, as UUID, são geradas entre aspas "" e, no fstab, não se usa as aspas "".


Comente: