Criando Swap Através de um Arquivo ou partição no Linux

Recentemente postamos dois artigos a respeito de Swap em Linux.

Parece que isso me empolgou um pouco. Nesses dias modernos lidar com swap parece ser tão antiquado, não é mesmo? Bom, como dito anteriormente swap ainda é algo muito importante no Linux e em outros Sistemas Operacionais.

“Ah! mas memória ram hoje é muito barata para que usar swap?”, você pode está se questionando, já que a função de swap é servir como auxiliar de memória ram. Hoje a maioria dos computadores vêm com 4 ou  8GB de ram . Swap seria ainda necessário? Particularmente e de acordo com minha experiência afirmo que sim. Primeiramente porque nem todo mundo possui grana para dar um upgrade em seu antigo e velho amigo PC, e em segundo lugar porque mesmo pc com 8GB pode precisar de swap para não travar. Esse último ponto foi meu caso, tenho um pc com  8GB e ele trava porque tenho programas que gosto muito e estão consumindo muita memória RAM e… sim, meu PC travava. Percebi que o Xubuntu só estava com 2GB de swap e quando aumentei para 8GB os travamentos pararam.

Mas vamos ao que interessa?

O que Usamos para Criar Swap?

Esse tema é importante para sabermos que podemos usar como swap:

  • uma partição(uma parte ou porção do espaço) de um HD ou SSD
  • um arquivo

À primeira vista um arquivo como swap pode até parecer amador, mas não! Até a Canonical usa arquivo como swap no Ubuntu.

para saber se seu pc está usando uma partição ou arquivo podemos usar o comando “swapon –show”

elder@server01:~$ sudo swapon --show
NAME      TYPE      SIZE USED PRIO
/dev/sdb1 partition 200M   0B   -2

O pc acima está usando uma partição do disco /dev/sdb1

Vamos ver outro caso.

elder@ti:~$ sudo swapon --show
[sudo] senha para elder: 
NAME       TYPE SIZE USED PRIO
/swapfile2 file   8G 2,4G   -2

File em inglês é arquivo. Nesse caso está sendo usado o arquivo /swapfile2 como swap.

 

Criando Swap a Partir de uma Partição

 

Criando Swap da Partição

 

O disco que usarei será a /dev/sdc  que possui 1GB. Não usarei partição sdc1, sdc2….

  1. Defina/transforme o espaço de /dev/sdc em  swap. Use o comando “mkswap   /dev/sdc
    elder@server01:~$ sudo mkswap /dev/sdc 
    [sudo] senha para elder: 
    mkswap: /dev/sdc: aviso: não apague os setores de bits de inicialização
            (tabela de partição dos detectada). Use -f para forçar.
    Configurando espaço de swap versão 1, tamanho = 1024 MiB (1073737728 bytes)
    nenhum rótulo, UUID=4616a3dc-f632-43aa-bad2-087e63165786
  2. Execute “swapon /dev/sdc”  para usarmos ativarmos /dev/sdc
    elder@server01:~$ sudo swapon /dev/sdc
  3. Veja o resultado com “sudo swapon –show
    elder@server01:~$ sudo swapon --show
    NAME      TYPE       SIZE USED PRIO
    /dev/sdb1 partition  200M   0B   -2
    /dev/sdc  partition 1024M   0B   -3

Removendo a Partição Swap Antiga

Vamos destruir a partição swap. Poderíamos usar fdisk para excluir a partição, mas preferi usar  dd.

Antes, Desative a partição swap  sdb1 com o comando swapoff.

elder@server01:~$ sudo swapoff /dev/sdb1

Agora zeraremos o sdb1 para que não conste assinatura swap. Cuidado para não destruir a partição errada. No meu caso tenho que zerar a sdb1.

elder@server01:~$ sudo dd if=/dev/zero of=/dev/sdb1

Isso pode demorar. Usar fdisk seria mais rápido.

Veja o resultado

elder@server01:~$ sudo dd if=/dev/zero of=/dev/sdb1
dd: escrevendo em '/dev/sdb1': Não há espaço disponível no dispositivo
1021953+0 registros de entrada
1021952+0 registros de saída
523239424 bytes (523 MB, 499 MiB) copiados, 40,5725 s, 12,9 MB/s

Editando o Arquivo /etc/fstab

A partição(sdb1) já excluída ainda consta configurada dentro de /etc/fstab e isso gerará um erro ao iniciarmos o Sistema Operacional.

Como acima criarmos uma partição swap usando /dev/sdc o que temos que fazer é apenas trocar dentro de /etc/fstab  o “/dev/sdb1” por “/dev/sdc”

  1. Acesse o arquivo com seu editor de texto. Usarei o vim.
    elder@server01:~$ sudo vim /etc/fstab
  2. Tecle seta pra baixo até a linha referente ao “/dev/sdb1” e altere para
    /dev/sdb1                                 none            swap    sw              0       0

    para

    /dev/sdc                                 none            swap    sw              0       0

    Obs.: precisa somente altear /dev/sdb1 para /dev/sdc e nada mais.

 

Ativando o Swap

Se executar o comando “free -h” verá que não temos swap ativado

elder@server01:~$ free -h
              total        used        free      shared  buff/cache   available
Mem:          987Mi       122Mi       706Mi       3,0Mi       158Mi       723Mi
Swap:            0B          0B          0B

Ative com “swapon /dev/sdc”

elder@server01:~$ sudo swapon /dev/sdc

Veja novamente usando “free -h” ou “swapon –show”

elder@server01:~$ free -h
              total        used        free      shared  buff/cache   available
Mem:          987Mi       149Mi       679Mi       3,0Mi       158Mi       696Mi
Swap:         1,0Gi          0B       1,0Gi

 

 

Criando Swap a Partir de um Arquivo

Se já houver algum aquivo swap recomendo excluí-lo. O intuito aqui então será excluir um arquivo com espaço menor e criar um maior.

Removendo o Antigo Arquivo Swap

O ubuntu geralmente  usa o arquivo  /swapfile como swap. Se for o seu caso exclua com:

Desabilite o swap

elder@server01:~$ sudo swapoff /swapfile

Remova o arquivo

elder@server01:~$ sudo rm  /swapfile

Criando um Novo Arquivo para Swap

Vamos criar o arquivo  /swapfile com 1 Giga Byte. Para isso usaremos dd.

elder@server01:~$ sudo dd if=/dev/zero of=/swapfile  bs=1G count=1

No comando acima falamos para:

  • if=/dev/zero of=/swapfile: copia valores nulos(zeros) criando o arquivo /swapfile limpo
  • bs=1GB: A base a contagem é 1 Giga Byte
  • count=1: vai contar uma vez. Aqui, se colocássemos “count=3” iria ser criado um arquivo de 3 Giga Bytes. Pois seria 3  multiplicado por 1.

Se você tiver pouca memória ram  talvez seja necessário diminuir o valor em bs ou terá o erro abaixo

dd: memória esgotada pelo buffer de entrada de tamanho 1000000000 bytes (954 MiB)

então pode fazer  assim

..... bs=512M count=2

para criamos um arquivo de 1GB mas em duas etapas.

Transformando o Arquivo em Swap

Use “mkswap /swapfile” para avisarmos ao sistema que esse será um arquivo swap

elder@server01:/$ sudo mkswap /swapfile 
mkswap: /swapfile: permissões inseguras 0644, sugere-se 0600.
Configurando espaço de swap versão 1, tamanho = 1024 MiB (1073737728 bytes)
nenhum rótulo, UUID=acabb9f3-f74e-4231-bb6c-f24dfeb9607e

 

Ativando o Swap

Conforme acima, vamos ativar usando “swapon /swapfile”

elder@server01:/$ sudo swapon  /swapfile 
swapon: /home/elder/swapfile: permissões inseguras 0644, sugere-se 0600.

O arquivo está sendo usado como swap

elder@server01:/$ free -h
              total        used        free      shared  buff/cache   available
Mem:          987Mi       123Mi       544Mi       3,0Mi       320Mi       714Mi
Swap:         1,0Gi          0B       1,0Gi

Mas acima marquei de vermelho o alerta sobre as permissões. Dê as permissões conforme alertado:

elder@server01:/$ sudo chmod 0600 /swapfile

 

Verificando o Swap

elder@server01:/$ free -h
              total        used        free      shared  buff/cache   available
Mem:          987Mi       122Mi       541Mi       3,0Mi       323Mi       714Mi
Swap:         1,0Gi          0B       1,0Gi

Use “swapon –show” para certificar sobre o arquivo sendo usado

elder@server01:/$ sudo swapon  --show
NAME                 TYPE  SIZE USED PRIO
/swapfile file 1024M   0B   -2

 

 

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

Deixe um comentário

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