Criar e ativar um arquivo de swap no Linux

LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá a tarefa administrativa essencial de criar e ativar um arquivo de swap no Linux. Esse processo permite aumentar a memória virtual do sistema, algo fundamental quando a memória RAM física é insuficiente. Você praticará o uso de utilitários básicos de linha de comando para gerenciar os recursos do sistema com eficiência, usando uma alternativa flexível à criação de uma partição de swap dedicada.

Você percorrerá todo o fluxo de trabalho: primeiro, revisará o espaço de swap atual usando o comando swapon. Em seguida, criará um arquivo para a área de swap com dd, formatará o arquivo para uso como swap com mkswap, ativará o arquivo e configurará o Linux para reativá-lo após uma reinicialização. Para concluir o laboratório, você verificará se o novo arquivo de swap foi configurado corretamente e reconhecido pelo sistema.

Revisar o espaço de swap atual com swapon

Nesta etapa, você aprenderá a verificar a configuração atual do espaço de swap no sistema Linux. O espaço de swap é uma parte do disco rígido usada como memória virtual quando toda a memória física (RAM) está ocupada. Ele permite que o sistema execute mais aplicativos do que caberiam somente na memória RAM física.

Para começar, você usará o comando swapon, um utilitário que especifica dispositivos e arquivos para paginação e swap. Você usará a opção --show para exibir um resumo dos dispositivos de swap ativos. Como o gerenciamento do espaço de swap é uma tarefa administrativa, é necessário usar sudo para executar o comando com privilégios de root.

No terminal, que já está no diretório ~/project, execute o comando a seguir:

sudo swapon --show

Você verá uma saída semelhante à seguinte. Detalhes como NAME e SIZE podem variar conforme a configuração inicial da máquina virtual. Também é possível que nenhum espaço de swap esteja configurado; nesse caso, o comando não produzirá nenhuma saída.

NAME        TYPE      SIZE USED PRIO
/dev/loop12 partition   2G   0B   -2

Veja o significado de cada campo:

  • NAME: nome do dispositivo ou arquivo de swap. Neste exemplo, é um dispositivo de loop (/dev/loop12).
  • TYPE: tipo do espaço de swap, que pode ser partition ou file.
  • SIZE: tamanho total do espaço de swap.
  • USED: quantidade de espaço de swap atualmente em uso.
  • PRIO: prioridade do espaço de swap. Se houver vários espaços de swap, aquele com a prioridade mais alta será usado primeiro.

Ao executar esse comando, você revisou corretamente a configuração atual de swap do sistema. Nas etapas seguintes, você aprenderá a criar e ativar um novo arquivo de swap, uma forma flexível de adicionar espaço de swap sem reparticionar um disco.

Criar um arquivo para o espaço de swap com dd

Nesta etapa, você criará um arquivo dedicado que será usado como novo espaço de swap. Usar um arquivo de swap é um método flexível, pois não exige o reparticionamento do disco rígido.

Você usará o comando dd, um utilitário avançado para copiar e converter dados. Ele é ideal para essa tarefa porque pode criar um arquivo com tamanho exato lendo dados de um dispositivo especial do sistema chamado /dev/zero, que fornece um fluxo infinito de caracteres nulos (zeros).

Para criar um arquivo de 250 MB chamado swapfile no diretório atual (~/project), execute o comando a seguir. Você precisa usar sudo porque o arquivo será gerenciado pelo sistema.

sudo dd if=/dev/zero of=swapfile bs=1M count=250

Veja o significado de cada parte do comando:

  • sudo: executa o comando com privilégios de root.
  • dd: o utilitário de linha de comando que estamos usando.
  • if=/dev/zero: especifica o arquivo de entrada (input file). /dev/zero é um arquivo especial que produz um fluxo de caracteres nulos.
  • of=swapfile: especifica o arquivo de saída (output file). Isso cria um arquivo chamado swapfile no diretório atual.
  • bs=1M: define o tamanho do bloco (block size) como 1 megabyte. O dd lerá e gravará os dados em blocos de 1 MB.
  • count=250: copia 250 blocos. Como o tamanho do bloco é 1M, o resultado é um arquivo de 250 * 1M = 250 MB.

Depois de executar o comando, você verá uma saída confirmando que a operação foi concluída:

250+0 records in
250+0 records out
262144000 bytes (262 MB, 250 MiB) copied, 0.270222 s, 970 MB/s

Agora você criou corretamente um arquivo de 250 MB. Na próxima etapa, você formatará esse arquivo para que ele seja reconhecido como espaço de swap e definirá as permissões apropriadas.

Formatar o arquivo como swap com mkswap

Nesta etapa, você formatará o swapfile criado para que o sistema operacional o reconheça como uma área de swap válida. É nesse momento que o comando mkswap será usado.

O comando mkswap configura uma área de swap do Linux em um dispositivo ou arquivo. Ele grava no arquivo uma assinatura especial que o kernel consegue identificar.

Primeiro, formate o swapfile criado. No terminal, execute o comando a seguir:

sudo mkswap swapfile

Depois de executar o comando, você verá uma saída indicando que o espaço de swap foi configurado. O sistema atribuirá um identificador exclusivo (UUID) à nova área de swap. Também poderá aparecer um aviso sobre permissões inseguras, que será corrigido em seguida.

mkswap: swapfile: insecure permissions 0644, fix with: chmod 0600 swapfile
Setting up swapspace version 1, size = 250 MiB (262139904 bytes)
no label, UUID=aabf0226-9f7b-47f5-9ad3-10248552795c

Observação importante sobre segurança: um arquivo de swap pode conter dados confidenciais da memória do computador. Por motivos de segurança, somente o usuário root deve ter permissão para ler e gravar nesse arquivo. Os demais usuários do sistema não devem ter nenhum acesso.

Para definir as permissões corretas, usaremos o comando chmod. Definiremos as permissões como 600, o que concede ao proprietário (root) acesso de leitura e gravação e remove todos os acessos dos demais usuários.

Execute o comando a seguir para proteger o swapfile:

sudo chmod 600 swapfile

Se for bem-sucedido, esse comando não produzirá nenhuma saída. Agora você formatou corretamente o swapfile e protegeu suas permissões. O arquivo está pronto para ser ativado e usado pelo sistema, o que será feito na próxima etapa.

Ativar o novo arquivo de swap e torná-lo persistente

Você criou e preparou corretamente o swapfile. Ele já está formatado e tem as permissões corretas, mas o kernel do Linux ainda não o está usando como memória virtual. Nesta etapa, você ativará o arquivo de swap, tornando-o disponível para o sistema.

Para isso, você usará novamente o comando swapon. Na primeira etapa, você usou esse comando com a opção --show para visualizar a configuração atual. Desta vez, você fornecerá o caminho do swapfile como argumento para ativá-lo.

No terminal, localizado em ~/project, execute o comando a seguir para ativar o novo espaço de swap:

sudo swapon swapfile

Veja cada parte do comando:

  • sudo: é necessário porque ativar o espaço de swap é uma operação no nível do sistema que exige privilégios de root.
  • swapon: comando usado para ativar dispositivos e arquivos para swap.
  • swapfile: nome do arquivo que você deseja ativar. Como você está no diretório ~/project, onde o arquivo está localizado, não é necessário especificar o caminho completo.

Se o comando for bem-sucedido, ele não produzirá nenhuma saída. Esse é um comportamento comum em muitos comandos do Linux: quando não há mensagem de erro, a operação foi concluída.

O comando swapon ativa o arquivo somente durante a inicialização atual. Para que o Linux o ative automaticamente após uma reinicialização, adicione ao /etc/fstab uma entrada que contenha o caminho absoluto do arquivo de swap:

echo '/home/labex/project/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Os seis campos identificam o arquivo de swap, usam none porque o swap não tem ponto de montagem, selecionam o tipo swap e a opção padrão sw e desativam as verificações de dump e do sistema de arquivos com os dois zeros finais.

Agora o swapfile está ativo e configurado para continuar disponível após reinicializações. Na etapa final, você verificará se o novo espaço de swap foi adicionado corretamente aos recursos totais de memória do sistema.

Verificar a configuração do novo espaço de swap

Nesta etapa, você verificará se o sistema reconhece o novo arquivo de swap depois que ele foi criado, formatado, ativado e configurado de forma persistente. Isso confirma que todas as etapas anteriores foram concluídas corretamente.

Comece usando o mesmo comando do início deste laboratório: swapon --show. Agora, a execução do comando deve exibir uma lista atualizada dos espaços de swap ativos, incluindo o swapfile que você acabou de adicionar.

No terminal, execute o comando a seguir:

sudo swapon --show

A saída agora exibirá duas entradas: a partição de swap original, caso ela exista, e o novo arquivo de swap. Observe a nova linha referente a /home/labex/project/swapfile.

NAME                         TYPE      SIZE USED PRIO
/dev/loop12                  partition   2G   0B   -2
/home/labex/project/swapfile file      250M   0B   -3

Como você pode ver, o sistema agora reconhece um espaço de swap do tipo file com 250M. Ele também recebeu uma prioridade (PRIO). O kernel usará primeiro o espaço de swap com a prioridade mais alta.

Outro comando útil para verificar o uso da memória e do swap é free. Usar a opção -h (--human) facilita a leitura da saída, exibindo os tamanhos em megabytes (M) ou gigabytes (G).

Execute o comando free -h:

free -h

Você verá um resumo da memória do sistema. Preste atenção especial à linha Swap.

               total        used        free      shared  buff/cache   available
Mem:           3.5Gi       608Mi       732Mi        16Mi       2.2Gi       2.7Gi
Swap:          2.2Gi          0B       2.2Gi

O valor total na linha Swap agora deve refletir o tamanho combinado do espaço de swap original e do novo arquivo de 250 MB. Por exemplo, se você começou com 2G de swap, o novo total será aproximadamente 2.2G.

Você adicionou e verificou corretamente um novo arquivo de swap no sistema Linux, fornecendo mais memória virtual para o sistema usar.

Resumo

Neste laboratório, você aprendeu a criar e ativar um arquivo de swap para adicionar memória virtual a um sistema Linux. Primeiro, revisou a configuração existente de espaço de swap usando o comando sudo swapon --show, para entender o estado atual da memória virtual do sistema e interpretar a saída.

Depois da revisão inicial, você criou um novo arquivo de swap usando o comando dd para alocar o espaço desejado no disco. Em seguida, formatou o arquivo para uso como swap com mkswap, ativou-o com o comando swapon e adicionou uma entrada ao /etc/fstab para que o Linux possa reativá-lo após uma reinicialização. Por fim, você verificou se o novo arquivo de swap foi adicionado e ativado corretamente executando novamente swapon --show, confirmando a configuração atualizada.