Criando um swapfile no Linux
Link para o vídeo (na prática): https://youtu.be/mjq1_oq4SN8
Muitas distribuições Linux, entre elas o Ubuntu, estão usando arquivos de troca (swap files) ao invés de uma partição dedicada a isso.
Muitas pessoas, dependendo do hardware e do uso da máquina, não precisam sequer usar swap — é o meu caso em uma de minhas máquinas.
Nas máquinas em que uso swap, optei pelo arquivo de swap por algumas razões:
- Possibilidade de aumentar/reduzir o tamanho do swap
- Possibilidade de deletar o arquivo de swap caso não deseje mais usar
- Possibilidade de transferir o arquivo de swap para outro disco ou partição, caso julgue necessário
Deixando o papo de lado, vamos aos passos para criar o swapfile.
1- Meu cenário atual
leandro@debian:~$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 111,8G 0 disk
├─sda1 8:1 0 524M 0 part /boot/efi
└─sda2 8:2 0 111,3G 0 part /
sdb 8:16 0 931,5G 0 disk
└─sdb1 8:17 0 931,5G 0 part /storage
No cenário acima, eu não possuo partição de swap, e possuo um HD secundário de 1TB, que é onde vou colocar meu arquivo de troca. Você pode colocar o seu em qualquer lugar que desejar, não precisa ter um disco extra para isso.
2- Criando o arquivo de troca
Vou usar o fallocate, que aloca um espaço de disco para um arquivo:
sudo fallocate -l 8G /storage/arquivo-de-troca
Se você não tiver o fallocate instalado:
sudo dd if=/dev/zero of=/storage/arquivo-de-troca bs=1024 count=8388608
P.S.: O caminho do arquivo e o tamanho são de sua escolha.
3- Formatando o arquivo de troca
sudo mkswap /storage/arquivo-de-troca
4- “Ligando” o swap no arquivo criado
sudo swapon /storage/arquivo-de-troca
5- Verificando se o swap está ativo no sistema
sudo swapon --show
Com isso, você deverá ver seu arquivo de swap na saída do comando.
6- Permitindo leitura e escrita somente para o root
Tenha a certeza de que somente o root poderá ler e gravar o arquivo de troca
sudo chmod 600 /storage/arquivo-de-troca
7- Adicionando o arquivo de troca ao FSTAB
Para que o sistema inicie com o arquivo de swap montado e ativo, precisamos colocar a entrada em nossa tabela de sistemas de arquivos (fstab ou filesystems table). Edite o arquivo /etc/fstab em seu editor preferido, mas com permissões de root (ou sudo). Adicione a linha seguinte no final do arquivo (lembre-se de colocar o caminho correto para o seu arquivo):
/storage/arquivo-de-troca none swap sw 0 0
8- Reinicie o sistema
Para que suas mudanças tenham efeito, reinicie o sistema. Assim ele será iniciado montando o seu arquivo de swap e ativando o mesmo.
Conclusão
Criar um arquivo de swap não é tão difícil, e ainda proporciona um bom aprendizado sobre montagem de sistemas de arquivos que não são, necessariamente, unidades de disco ou partições — Você pode fazer isso para criar um arquivo ext4, por exemplo.
Se tiver alguma dúvida, por favor, comente. Eu não mostrei como desabilitar e excluir partições de swap, caso você tenha uma e queira trocar por swapfile, mas talvez eu faça outro artigo ou ajude nos comentários.
Obrigado pela leitura.