Entendendo as identificações de partição no Ubuntu (UUIDs)
Publicado em 08/08/2008 – 08:35por 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.



6 respostas para “Entendendo as identificações de partição no Ubuntu (UUIDs)”
Muito boa a dica. Sabia que era um identificador, mas nunca tinha entendido da onde vinham esses números.
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.
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
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.
Gostaria de saber se esta opção de UUID está disponível para versões anteriores de kernel, como a do Kurumin 7.
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 "".