GDH Press: Blog » Gerenciando HDs e partições no Linux
 
RSS

Gerenciando HDs e partições no Linux

Publicado em 26/06/2008 – 18:15
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) 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

» Mais posts

  1. 3 respostas para “Gerenciando HDs e partições no Linux”

  2. Ronaldo Lages em 27 jun, 2008

    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.

  3. Carlos Morimoto em 27 jun, 2008

    Que coisa rara alguém comentar um dos posts com dicas técnicas. Seja bem-vindo :-D

  4. Nerivaldo José da Costa em 1 jul, 2008

    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


Comente: