Partições, montagem e dicas
Postador por Tiago Damasceno
Tradicionalmente, existia a concorrência entre HDs IDE (que eram vistos no Linux como /dev/hdx) e HDs SCSI, vistos pelo sistema como "/dev/sdx". O primeiro HD IDE seria detectado pelo sistema como "/dev/hda", o segundo como "/dev/hdb" e assim por diante. Entretanto, mudanças feitas nas versões recentes do kernel derrubaram essa divisão, fazendo com que todos os HDs, independentemente de serem IDE ou SATA, passassem a ser vistos pelo sistema como "/dev/sdx", como se fossem HDs SCSI. O HD principal, passa então a ser sempre visto como "/dev/sda".
Isso inclui até mesmo os pendrives, que são detectados pelo sistema como se fossem HDs adicionais. Ao plugar dois pendrives, o primeiro seria reconhecido como "/dev/sdb" e o segundo como "/dev/sdc".
Antes de instalar qualquer sistema operacional, é necessário particionar o HD, criando as partições de instalação. Devido a uma limitação nos endereços que vem desde a época dos primeiros PCs, é possível criar apenas 4 partições primárias, ou até três partições primárias e uma partição estendida, que pode ser usada para criar mais partições.
Neste screenshot do Gparted, por exemplo, temos um HD dividido em 5 partições: /dev/sda1 (com uma instalação do Windows), /dev/sda2 (com uma instalação do Ubuntu), /dev/sda3 (reservada à instalação de mais uma distribuição), /dev/sda5 (swap) e /dev/sda6 (para arquivos).
A "/dev/sda4" é a partição estendida, que é criada automaticamente pelo particionador quando você usa a opção de criar uma partição lógica, como uma espécie de "container" para elas. Você pode notar que o tamanho especificado pelo particionador é o das duas partições somadas:
Embora não seja obrigatória em micros com um volume suficiente de memória RAM, a partição swap é sempre recomendada, pois permite que o sistema disponha de uma área adicional para situações onde precisa de uma quantidade muito grande de memória RAM, como por exemplo ao editar vídeos.
A propensão do sistema a utilizar memória swap é configurável através de uma opção do kernel, a "vm.swappiness", que aceita valores de 0 a 100, sendo que um valor baixo orienta o sistema a usar swap apenas quando não houver mais memória disponível e um valor mais alto faz com que o sistema a utilize de maneira mais liberal, movendo arquivos e bibliotecas que não estão sendo usados.
O default na maioria das distribuições é "60", o que faz com que o sistema use um pouco de swap mesmo quando tem memória de sobra disponível. Você pode evitar isso alterando o valor para "20" (ou menos, de acordo com o gosto do freguês).
Para isso, execute, como root o comando:
# sysctl vm.swappiness=20
Para que a alteração se torne permanente, edite o arquivo "/etc/sysctl.conf" e adicione a linha "vm.swappiness=20". Este arquivo contém variáveis para o kernel, que são carregadas durante o boot. Ele pode ser usado também para salvar outras configurações, como por exemplo as opções para ativar o roteamento de pacotes, que são usadas ao compartilhar a conexão.
Voltando à questão das partições, o sistema nunca acessa os dados dentro da partição diretamente. Ao invés disso, ele permite que você "monte" a partição em uma determinada pasta e acesse os arquivos dentro da partição através dela, o que nos leva ao comando mount.
A sintaxe básica inclui o dispositivo e a pasta onde ele será acessado, como em:
# mount /dev/sdb1 /mnt/sdb2
Na hora de desmontar a partição, você pode especificar tanto o dispositivo, quando a pasta onde ele foi montado, como em:
# umount /mnt/sdb2
No caso do CD-ROM, citamos apenas o dispositivo, sem incluir a partição (já que um CD-ROM não pode ser particionado, como um HD). Você pode tanto usar o dispositivo correto, como "/dev/hdc" ou "/dev/hdd", quanto usar o "/dev/cdrom", um link que é criado pelo sistema apontando para a localização correta:
# mount /dev/cdrom /mnt/cdrom
Se quiser trocar o CD que está na bandeja, você deve primeiro "desmontar" o CD-ROM, com o comando "umount /mnt/cdrom". O mesmo se aplica a pendrives e HDs externos: é sempre necessário desmontar antes de remover o dispositivo. No caso dos pendrives e HDs, desmontar é fundamental, pois as alterações não são necessariamente salvas imediatamente por causa do cache de disco. Removendo sem desmontar, existe uma probabilidade muito grande das últimas alterações serem perdidas. É muito comum as pessoas gravarem arquivos no pendrive, desplugarem logo depois (sem desmontar) e, ao tentar acessá-los depois, perceberem que os arquivos simplesmente não foram gravados.
Os pontos de montagem, ou seja, as pastas onde as partições serão montadas, podem ser configurados através do arquivo "/etc/fstab". Quase sempre este arquivo é configurado durante a instalação, incluindo referências a todas as partições e CD-ROMs disponíveis, de forma que você pode montar as partições digitando apenas "mount /dev/sdb6" (por exemplo), sem precisar usar o comando completo.
Uma dúvida comum é a mensagem "device is busy", que é muitas vezes exibida ao tentar desmontar um pendrive, ejetar um CD-ROM ou desmontar uma partição de arquivos do HD, como em:
# umount / mnt/sdb1
umount: /: device is busy.
Este erro acontece sempre que existe algum programa acessando a partição, como por exemplo uma janela do gerenciador de arquivos, um player de áudio tocando músicas salvas dentro dela, ou mesmo uma janela de terminal acessando a pasta.
Você pode descobrir o culpado usando o comando "lsof", que lista os programas que estão acessando a pasta e impedindo a desmontagem. Você pode chamá-lo tanto especificando a partição, como em "/dev/sdb1", quanto especificando pasta onde ela está montada, como em:
$ lsof /mnt/sdb1
Na primeira coluna da lista, você encontra o nome dos programas e na segunda coluna, o PID, que é o número do processo, que pode ser usado como último recurso para fechar o programa "na marra", usando o comando "kill -9".
Outra opção é usar o comando "fuser -k", que tenta finalizar na marra todos os programas que estiverem acessando a pasta. Ele não é muito recomendável, pois os resultados são mais imprevisíveis, mas ele pode ser usado em emergências quando, por exemplo, você não consegue ejetar o CD-ROM por que o sistema se recusa a desmontá-lo. Basta especificar a pasta, como em:
$ fuser -k /media/cdrom
Embora continuem sendo importantes e bastante úteis na hora de solucionar problemas ou criar configurações personalizadas, os comandos manuais são cada vez menos usados no dia-a-dia, devido aos sistemas e montagem automática utilizados nas distribuições.
O princípio é simples: o kernel detecta automaticamente quando novos dispositivos de armazenamento são conectados, criando os dispositivos de acesso e gerando mensagens que disparam a criação de ícones no desktop e outras funções. Em distribuições antigas o trabalho era feito através de scripts, mas nas atuais ele é diretamente feito por componentes do Gnome ou do KDE, em conjunto com o HAL.
No Ubuntu, por exemplo, a partição é montada automaticamente, acompanhado pela criação de um ícone no desktop e pela abertura de uma janela do gerenciador de arquivos.
A desmontagem é também automatizada, através da opção "Desmontar volume", disponível ao clicar com o botão direito sobre o ícone.
Para que as partições possam ser montadas e desmontadas sem que você precise fornecer a senha de root, oé possível utilizar o "fuse", um módulo de kernel que permite fazer uma montagem "particular", que faz com que os arquivos fiquem disponíveis apenas para o seu login.
Concluindo, de vez em quando (sobretudo em máquinas com vários HDs ou com um HD dividido em várias partições de dados), você vai notar que o boot demora bem mais do que o normal. Se você desativar o splash (para ter acesso às mensagens exibidas no terminal), verá que a demora é causada por mensagens como esta:
/dev/sdb1 has been mounted 60 times without being checked, check forced.
Ela ocorre devido a uma precaução do sistema contra a possibilidade de perda de arquivos devido a problemas na estrutura da partição. Todos os sistemas de arquivos atuais utilizam um sistema de journaling, que armazena uma lista das alterações feitas. Sempre que a partição é montada, o sistema verifica o journal, concluindo qualquer operação pendente, um teste rápido que não é inteiramente à prova de falhas.
Para evitar a possibilidade de que pequenos problemas na estrutura da partição se acumulem até se tornarem um problema maior, o sistema executa um teste mais demorado periódicamente, sempre que a partição é montada um determinado número de vezes. Como as partições são geralmente montadas durante o boot, é nele que a demora se manifesta.
É possível aumentar ou mesmo desativar o contador (usando o comando "tune2fs"), mas isso não é muito recomendável. O melhor nesse caso é ter paciência e simplesmente deixar o sistema fazer seu trabalho.
Créditos: Carlos Morimoto
0 comentários:
Postar um comentário