Criando um swapfile no Linux

Leandro Ramos
2 min readSep 16, 2018

--

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.

--

--

Leandro Ramos

Desenvolvedor Web, Ciclista Urbano, Fã de GNU/Linux e Software Livre