Partições, montagem e dicas
Publicado em 30/01/2009 – 19:55por Carlos Morimoto
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.



23 respostas para “Partições, montagem e dicas”
Ótima postagem!
não conhecia o comando lsof. sempre que ocorria isto do dispositivo ocupado eu já recorria ao fuser -k!
x)
"Para que as partições possam ser montadas e desmontadas sem que você precise fornecer a senha de root, o sistema utiliza 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."
fuse? Com sistemas de arquivos nativos, não é com o pmount/pmount-hal que isso é feito?
Eu não conhecia esse comando fuse, sempre preferí usar a cautela na hora de gravar e desmontar arquivos, observando a atividade do processador hehehe , talvez não seja o melhor método mas nunca tive problemas fazendo isso.
mas agora que sei que posso usar fica como um coringa, já o comando lsof aprendi ele a poucos dias , mas não imaginei que poderia usa=-lo desta forma, muito interessante..
valeu… :D
Uma curiosidade que eu sempre tive é como o KDE faz para montar e desmontar pendrives. Aonde ficam os arquivos de configuração disso ?
Isso é feito pela HAL, a Camada de Abstração de Hardware. A configuração é "automágica".
Seria interessante um post tambem sobre alguns dos varios sistemas de arquivos; desempenho, consumo e outras diferenças entre eles.
Calma Luis :)
O HAL faz a detecção dos componentes e outras funções. Essa explicação é uma versão simplificada da história, só para explicar por que as partições podem ser montadas sem precisar fornecer a senha de root. Pretendo falar mais sobre o HAL em outro post.
olha , concordo com o dk , um post sobre sistemas de arquivos seria legal, eu mesmo uso reiserfs , mas não sei o que ganho ou perco por não usar ext3, xfs ou outro sistema qualquer , eu mesmo já ouví dizer que é possível instalar linux até em partição fat32, mas fiz uma tentativa sem sucesso…
Talvez umas dicas sobre a natureza de cada sistema de arquivo desse alguma luz… :)
Morimoto, por favor, coloque uma opção de exibir a página otimizada para impressão. Isto faz uma grande falta.
Uso e estudo sobre linux de forma constante há pouco mais de um ano (embora já tenha tido contato com o sistema a quase 10 anos, quando o laboratório de informática da Moradia Universitária passou a usar SL e eu destei rs) e, graças ao Guia do Hardware tenho aprendido muita coisa. Esta série "Entendendo o linux" está sendo muito bem vinda, e mal espero a chegada do Livro. Será que em março sai mesmo?
Que tal um AudioBook sobre linux, adpatado, claro, pois ficar narrando comandos deve ser chato.
Muito obrigado!
Para quem quer saber mais sobre sistemas de arquivos, existe o link http://www.gdhpress.com.br/hardware/leia/index.php?p=cap6-1
Procurei pelo HAL no Yahoo e no Google e só encontrei referências ao HAL do Stanley Kubrik(2001
Uma Odisséia no Espaço). Você pode aprofundar a descrição do HAL? É um módulo do Kernel? e o udev? não funciona mais?
Mais uma dúvida: A partir de qual versão do Kernel (ou do KDE) isto tudo é válido? Eu tenho usuários totalmente leigos que inserem toda hora pendrives para tirar printscreens de telas e depois conectam os pendrives em máquinas windows para imprimir as telas (redes Linux e windos totalmente segregadas); e cada vez que inseriam um pendrive, mudava de sda para sdb, sdc e assim por diante….
A única solução que encontrei foi ter um pendrive específico para cada máquina, mas, como os caras trabalham em turnos…. meu esquema vai pro espaço toda hora….
Sempre providencial, por mais que pareça um assunto "mastigado" sempre é bom repassar, até mesmo porque sempre tá chegando gente nova na área do Linux e é bom mostrar os conceitos básicos do sistema, muito bom.
Como ideia, coloco para sempre colocar esses assuntos de volta no painel do guia do hardware.
Parabéns
Valeu mesmo, tive um probleminha ao instalar o Kurumin NG que instalou por cima do Windows e minha irmã quase me mata, agora ficou mais claro, adoro os livros do GuiadoHardware, já comprei dois e fiz as leituras dos outros pela Web.
Considere-se o seguinte caso: 2 unidades de disco, a 1ª interna e a 2ª conectada na porta USB, podendo estar presente ou não em determinado momento. Cada unidade tem partições com distros diferentes, sendo que a 1ª partição do hd fixo (interno) contém o XP, as demais as distros diferentes, tanto no fixo quanto no HD conectada na USB.
O que se quer, é permitir que o usuário, no momento do boot escolha qual SO ele deseja, podendo ser qualquer uma das opções, inclusive podendo ocorrer que em determinado instante o HD da USB esteja desligado, neste caso só poderá estar disponível as imagens do HD fixo.
Como implementar isto?
Grato.
Você poderia simplesmente configurar o setup para usar o disco USB como unidade de boot primária e usar o HD interno como unidade secundária. Dessa forma, ele dará boot pelo HD interno quando o disco USB estiver desplugado. Em algumas placas você tem a opção de ativar o "Boot Menu", que faz com que ele exiba o menu de inicialização a cada boot, permitindo que o usuário escolha.
Sr. Morimoto,
Obrigado pela sugestão acima, mas peço sua permissão para apresentar outra questão, que de alguma forma está relacionada com particionamento, e permissões de arquivos.
Gostaria de propor um estudo de caso e ao mesmo tempo peço sua ajuda.
Tenho uma partição exclusiva para o /home, e nela, as pastas de cada usuário coincidem com o nome de cada distribuição, por ex: ubuntu, mandriva, fedora, etc.
Há também uma pasta chamada /dados, onde estão armazenados dados comuns tais como mp3, manuais, tutorias, contas pagas, etc, organizadas em pastas:
/home
/dados
/pdf
/mp3
/contas
/tutoriais
/etc
/ubuntu
/mandriva
/fedora
Escolhi este modelo de estrutura para permitir que eu possa experimentar ou usar distros diferentes sem correr o risco de ter uma /home única para todas as possíveis distros, sob risco de causar instabilidade em decorrência de sobreposição de nomes de arquivos de usuários e ou variáveis de controle criados e usados pelo SO. Assim, tenho os dados desejados e os dados de cada distro separados.
Mas tem um problema, quando estou em uma distro por exemplo mandriva, não consigo acessar os arquivos na pasta /dados criados por outra distro, por ex. Ubuntu, e vice versa, apenas os arquivos que foram criados originalmente pela mandriva. Isto acontece também com as demais distros.
Sei que trata-se de estrutura de permissões usuários e de grupo e de donos de arquivos. Gostaria de resolver este problema mas não sei como, por isto penso que a proposta de estudo de caso e de um tutorial, poderia me ajudar assim como a outros leitores.
Grato.
Adam Astor.
Obs: Neste modelo de estrutura, posso dar boot de pen-drives e gravar dados na /home do HD fixo. Além dissso, só tem um usuário físico, eu mesmo, logo não tenho a preocupação com senhas de usuários.
Sr. Morimoto.
Tentei no post acima representar a imagem de estrutura com indentação hierárquica da estrutura de arquivos para uma melhor visualização, mas o programa de postagem alinhou todos à esquerda.
Grato
Boa dica, alguns comandos eu não conhecia.
Muito bom o guia! Uso Linux (a distro Ubuntu) há 1 mês apenas. Estou apreciando muito.
Uma coisa básica que ainda não consegui: fazer o Ubuntu montar automaticamente uma partição NTFS.
Já tentei alguns editar alguns comandos no Fstab (nao lembro o nome do arquivo bem)mas sem êxito.
Alguém sabe a solução para isso?
Obrigado.
Mailson, num precisa editar nada no fstab, a menos que seja mountado sempre automaticamente quando inicia o computador.
vc poderia mountar fazendo o seguinte:
#mount /dev/particaço_do_ruindows /mnt/ruindows -r -t ntfs
a particao permanece mountada somente enquanto o computador estiver ligado, reiniciou… deve-se executar o comando acima novamente, ou adicionar o mesmo num /etc/rc.d/rc.local da vida , para executar o comando na hora do boot,
ou editar o fstab que fica no /etc para mountar automaticamente.
boa sorte.
Vejam: quero instalar windows em um sata de 1 TB. Como devo proceder, considerando q trabalho atualmente ainda com a versão em pack3 do windows xp? ( e não tenho interesse em trocar para o Vista?).
Estou com um problema, toda vez q desligo o ubuntu mas nao desmonto a unidade antes, ele nao a desmonta automaticamente, ou seja na hora q reinicio a maquina fica fazendo o scandisk no caso no windows, ou o cfsck….
Galera presiso saber se o ubuntu nao deveria desmontar as unidades antes de desligar, ou tenho mesmo q demontar, o duro e lembrar desse procedimento toda vez q precisar desligar a maquina……