Disco rígido seagate

Como transformar um dispositivo USB em SWAP

No Linux, o arquivo, disco ou partição SWAP pode ficar, praticamente, em qualquer lugar que você quiser.
É possível, até mesmo, usar o sistema operacional sem SWAP algum.

É claro que cabe avaliar a “conveniência” do local para o qual deseja direcionar o seu swapping ou memória virtual.
Em outras palavras, o seu pendrive pode não ser o melhor lugar para uma partição ou arquivo SWAP.

Em uma configuração de hardware ideal, para mim, o SWAP nunca é usado. A quantidade de memória é sempre suficiente para realizar todas as tarefas necessárias em um dia de trabalho duro, mas… quem é que tem uma configuração de hardware ideal por aqui?

Se você tiver outras dúvidas sobre o tema, recomendo ler o post Perguntas e respostas sobre o SWAP.
Por ser assunto recorrente, este blog tem vários outros textos relatando procedimentos com o SWAP — também vale a pena dar uma olhada (e, se quiser, compartilhar com os amigos).

Ferramentas básicas de manipulação do swap

Há inúmeras ferramentas para trabalhar com o swap (vou escrever em minúsculas, daqui pra frente).
Inicialmente, costumo trabalhar com o free e o swapon:

  • o free oferece informações básicas sobre o uso da memória no seu sistema, o que inclui o uso do swap.
  • o swapon oferece informações um pouco mais específicas sobre o uso atual do swap e permite realizar configurações rápidas.

Mesmo em situações emergenciais, o swap não é um recurso difícil de se gerenciar e ajustar.
A maioria das suas necessidades podem ser satisfeitas com uma linha de comando usando o swapon.

como obter informações do uso do swap no Linux

Você começar a obter informações genéricas sobre como o seu sistema está lidando com a memória usando o free:


free -h

             total        used        free      shared  buff/cache   available
Mem:          7,5Gi       4,0Gi       522Mi       482Mi       3,0Gi       3,1Gi
Swap:          11Gi       1,5Gi        10Gi

O parâmetro ‘-h’ (human readable ou legível para humanos) serve para formatar a saída do free e torná-lo mais fácil de entender.
Pelo resultado obtido com a execução do comando free, é possível visualizar o quanto de swap já está em uso pelo sistema.

A minha configuração atual do swap

No meu caso, uso o swap em duas partições diferentes: 3GiB em um pequeno drive SSD (24GiB) e 8,8GiB no HD principal.

O lsblk, em conjunto com o comando grep pode ajudar a visualizar a sua configuração:


lsblk | grep -i swap

└─sda2   8:2    0   8,8G  0 part [SWAP]
└─sdb2   8:18   0     3G  0 part [SWAP]

Como veremos, abaixo, optei por usar a partição sdb2 (em SSD) como prioritária. Assim, quando houver pequenas necessidades de uso do recurso, o sistema pode se beneficiar da velocidade do disco em estado sólido (solid state drive).


Eu não teria nada contra em fazer o contrário. Neste caso, o sistema recorreria à partição “mais lenta” nas pequenas emergẽncias — e quando “o bicho pegar”, teria uma tecnologia mais rápida e avançada para usar.
Sem querer me alongar, outra vantagem desta abordagem seria reduzir o desgaste do SSD.
Se você tiver alguma opinião sobre o assunto, ficarei feliz em ler nos comentários 😉


Ao executar o comando swapon, sem qualquer parâmetro adicional, ele exibe informações sobre a configuração atual do seu sistema de swap:


sudo swapon

[sudo] senha para justincase: 
NAME      TYPE      SIZE USED PRIO
/dev/sdb2 partition   3G 1,5G   -2
/dev/sda2 partition 8,8G   0B   -3

A coluna PRIO (priority) mostra qual swap é o prioritário. O que tiver o menor valor será o primeiro a ser usado.
Neste caso, o sdb2 (-2) é o que tem maior prioridade.

Como adicionar mais um dispositivo swap

Tenha cuidado, daqui pra frente. Os procedimento descritos podem fazer você perder dados.
O comando mkswap formata o arquivo/partição em que ele é aplicado.
Você foi avisado.

Em situações de emergência pode ser necessário adicionar mais uma opção de swap ao sistema.
O comando swapon é tudo o que você precisa para esta tarefa.
No meu exemplo, vou adicionar um pendrive USB, com prioridade máxima (-1) à memória virtual.
Trata-se de um dispositivo extremamente lento, comparado aos que já estou usando. Portanto, se eu não estivesse apenas fazendo um teste não haveria motivos para fazer isso.

Neste pendrive há uma segunda pequena partição sem uso, que vou transformar em swap:


sudo mkswap /dev/sdg2

mkswap: /dev/sdg2: aviso: apagando assinaturas antigas de vfat.
Configurando espaço de swap versão 1, tamanho = 2,3 MiB (2387968 bytes)
nenhum rótulo, UUID=41e12683-940c-440c-b5b9-1cd9fe21a5a1

Agora a partição já pode ser usada pelo swapon:


sudo swapon -o discard=pages,nofail /dev/sdg2

Verifique a nova situação do sistema:


sudo swapon

NAME      TYPE      SIZE USED PRIO
/dev/sdb2 partition   3G 1,5G   -2
/dev/sda2 partition 8,8G   0B   -3
/dev/sdg2 partition 2,3M   0B   -4

Agora é possível observar uma nova partição.
Se quiser, é possível colocá-la como prioritária, para ver o impacto que terá sobre o sistema (calafrios…).

Seguindo o procedimento padrão, o swapon colocará a sua nova partição de swap último lugar na lista de prioridades.
Se quiser mudar esta situação, uma maneira rápida de fazer isso é desligando a(s) outra(s) opções de swap existentes.
Isto pode ser feito com o comando swapoff.
No meu exemplo, isto poderia ser feito assim:


sudo swapoff /dev/sda2 /dev/sdb2

Se uma destas partições estiver em uso, ao executar o swapoff, o sistema pode demorar para esvaziar o swap e enviar o conteúdo que ainda tenha relevância para a memória RAM do sistema. Portanto, tenha bastante paciência.

Por fim, para reverter o processo todo, quando terminar de brincar, use o swapon para reativar a sua memória virtual.

Publicado por

Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia. Fã de séries, como "Rick and Morty" e "BoJack Horseman". Me siga no Twitter e vamos trocar ideias!

Um comentário em “Como transformar um dispositivo USB em SWAP”

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.