Gerenciando HDs e partições no Linux
Publicado em 26/06/2008 – 18:15por 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) e 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/hda2 /home ext3 noatime 0 2
/dev/hda5 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 arquivo "/etc/fstab".
Se você acabou de particionar um novo HD em EXT3 e deseja que a partição "/dev/sdc1" criada seja montada na pasta "/mnt/sdc1", por exemplo, os passos seriam:
a) Criar a pasta onde a partição será montada:
# mkdir /mnt/sdc1
b) Testar a montagem da partição:
# mount /dev/sdc1 /mnt/sdc1
c) Adicionar a linha abaixo no final do arquivo "/etc/fstab", orientando o sistema a montá-la automaticamente durante o boot:
/dev/sdc1 /mnt/sdc1 ext3 defaults 0 0
Além de ser usado para montar partições locais, o mount é usado também para montar compartilhamentos de rede. É possível montar compartilhamentos em servidores Windows, ou servidores Linux rodando o Samba, compartilhamentos em NFS ou até mesmo montar pastas em máquinas remotas usando o sshfs, como veremos ao longo do livro.
Continuando, 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



3 respostas para “Gerenciando HDs e partições no Linux”
Grande Morimoto, boa noite ;)
Parabéns pelos textos que sempre traduzem o tecniquês para uma linguagem simples que os usuários podem facilmente assimilar.
Como contribuição ao último tópico sobre UUID, o qual algumas vezes já perdi ao mudar as partições, existe a alternativa do comando…
ls -lha /dev/disk/by-UUID
drwxr-xr-x 2 root root 160 2008-06-26 18:30 .
drwxr-xr-x 6 root root 120 2008-06-26 18:30 ..
lrwxrwxrwx 1 root root 10 2008-06-26 18:30 3046-EE7C -> ../../sda2
lrwxrwxrwx 1 root root 10 2008-06-26 18:30 436476fa-b505-49ff-9d42-3d2781896283 -> ../../sda6
lrwxrwxrwx 1 root root 10 2008-06-26 18:30 609d92d1-1fe4-4b79-bfda-6221a1ad4d64 -> ../../sda3
lrwxrwxrwx 1 root root 10 2008-06-26 18:30 80B01B3BB01B36DE -> ../../sda1
lrwxrwxrwx 1 root root 10 2008-06-26 18:30 8363873d-eded-4a92-9719-5274d86f6479 -> ../../sda5
lrwxrwxrwx 1 root root 10 2008-06-26 18:30 be6c7c62-62b3-47ea-b1a6-80cc3668332f -> ../../sda7
Como deves saber ele mostra os apontamentos dos UUIDs.
Também é válido olhar os diretórios by-id/, by-label/ e by-path/ que mostram outras formas de identificar as partições nos HDs.
Continue com esse excelente trabalho, caro amigo.
Que coisa rara alguém comentar um dos posts com dicas técnicas. Seja bem-vindo :-D
Caro Morimoto, boa noite.
Tenho tentado, em vão, encontrar posts sobre como usar um dispositivo e_sata no linux, particularmente em minha distribuição atual o OpenSuse, gostaria de ver um artigo completo acerca desse assunto.
Abraço