[Dicas-L] Gnu Linux Swap
Gnu Linux Swap
Data de Publicação: 24 de Janeiro de 2000
Quando um usuario novato pretende instalar o Linux, a primeira coisa que é dita para nos é que temos que particionar o nosso HD (isto é, o dividirmos em duas ou mais partes em que cada uma não tenha nada a ver com a outra). Isso é uma grande verdade, com excessao daqueles que usam o sistema de arquivos UMSDOS ao inves do EXT2. Todas (até onde eu vi) as distribuições indicam para voce que tenha duas partições para o Linux: uma para o linux propriamente dito e outra é para a tal area de swap.
A area de swap, a qual existe em qualquer sistema moderno hoje em dia (para evitar que de aquele aviso "out of memory" muito conhecido pelos usuarios do DOS), nada mais é que um espaco no HD para o "deposito" de programas que não estão sendo usados. Isso é, se voce tiver 32Mb de memoria RAM, tiver apenas 2 Mb livres (voce já tem um monte de programas abertos) e quiser abrir o seu Netscape (que ocupa muito mais que 2Mb na RAM), o Linux vai jogar o programa que esta a um tempao parado para a area de swap e, com o espaco livre na sua RAM, abrir o Netscape.
Mas quanto de swap precisamos? Existem teorias e teorias, mas a melhor de todas é: descubra voce mesmo! Mas como? Temos que reparticionar toda hora até acharmos uma configuracao adequada? NAO! E é para isso que essa dica se propoe.
No unix, temos os chamados dispositivos de loopback, que sao arquivos comuns em discos que podem ser "disfarcados" como um novo dispositivo de disco, como um CD-ROM, disquete ou um proprio HD. Muitos "queimadores" de CD-ROM criam uma imagem desse tipo no HD e depois copiam-na por completo para o CD. Igualmente se faz com um disco de boot (que é muito bem descrito no Bootdisk-HOWTO). Mas para voce usar um dispositivo loopback, tem que ter acionado esta opcao Kernel (que muitas distribuições o fazem por default). Para saber é só ver se aparece uma mensagem do tipo no texto do boot. No Kernel 2.2.14, a mensagem aparece assim: "". Caso não apareca nem algo parecido na hora em que voce inicia o seu linux, é provavel que voce tenha que recompilar o kernel (que esta fora do escopo desta dica. Procure o Kernel-HOWTO para maiores informações).
Bem, com a certeza que voce tem essa opcao acionada o kernel, vamos para o proximo passo: desligar a sua area de swap (não causa nenhum problema para a maquina. No maximo ela ficara um pouco mais lenta). Inicie uma sessao como usuario root e digite o seguinte comando:
% swapoff -a
Isso fara com que seu todas as partições de swap sejam desligadas. Agora é a fase de criar o arquivo de swap:
% dd if=/dev/zero of=/dev/swap bs=1k count=20k
O comando "dd" faz uma copia bit-a-bit de um despositivo de origem (if) para o despositivo de destino (of). O parametro "bs" indica o tamanho de cada bloco no dispositivo (aconselho deixar com 1k) e o parametro count diz quantos blocos sao para ser copidados (no caso acima, 20 x 1024= 20480 blocos). O tamanho do dispositivo de destino (nosso arquivo de swap), sera "bs x count" (no caso 1024 x 20 x 1024 = 20M). Então, se quiser um swap maior ou menor, mude o parametro count para o a quantidade de "megas" que voce quer e coloque um "k" depois do numero (p.ex count=100k).
Agora nosso arquivo de swap já esta criado, é só liga-lo. Edite o arquivo /etc/fstab e procure a linha em que a palavra swap aparece e apague-a completamente (se voce quiser ficar com duas partições de swap, não precisa apagar). Agora só nos resta adicionar a linha para o arquivo que acabamos de criar (sem as aspas, por favor):
"/dev/swap      swap      swap     defaults,loop     0 0"
E agora é só religar o swap com o comando "swapon -a". Assim, voce não precisa nem reiniciar o linux para as alterações fazerem efeito.
Pronto! Voce agora tem um arquivo novinho em folha e pode até se quiser apagar aquela particao do swap (eu usei a minha para colocar as contas dos usuarios lá. Então, na hora da inicializacao do linux, ele monta a particao do ex-swap no diretorio /home).
Se voce quiser acompanhar o processo da sua memoria, use o aplicativo "top" que exibe informações periodicamente sobre seu SO.