• Home
  • Blog
  • Linux
  • Usar pendrive como memória adicional no Linux (ReadyBoost)

Usar pendrive como memória adicional no Linux (ReadyBoost)

No linux é possível reproduzir a funcionalidade ReadyBoost do Windows, onde um pendrive pode ser utilizado para otimizar a memória do computador, sendo montado como área de Swap, com prioridade de uso maior que o swap do disco. Este procedimento somente pode ser realizado com acesso de root e, obviamente, com bom-senso, pois se você confundir as partições pode danificar seu sistema.

Se você sabe formatar o pendrive como uma partição do tipo linux-swap, faça-o e pule para o passo 5.

1 - Apague todo o conteúdo do pendrive

Faça backup dos arquivos do drive (se necessário) e apague tudo. Não se preocupe se estiver formatado como FAT32, ext4, ext3, etc... A formatação será descartada e passará a ser simplesmente linux-swap.

2 - Identifique o caminho da partição do pendrive

Assim como qualquer HD, o pendrive também é particionável (mas em 90% dos casos tem uma partição só). Para listar os discos e partições da máquina (considerando que o pendrive já foi conectado), utilize o fdisk -l:

# fdisk -l
Disco /dev/sda: 250.1 GB, 250059350016 bytes 255 cabeças, 63 setores/trilhas, 30401 cilindros, total de 488397168 setores Unidades = setores de 1 * 512 = 512 bytes Tamanho do setor (lógico/físico): 512 bytes / 512 bytes Tamanho da E/S (mínimo/ideal): 512 bytes / 512 bytes Identificador do disco: 0x96f3280a
Dispositivo Boot Início Fim Blocos Id Sistema /dev/sda1 63 80324 40131 de Utilitário Dell /dev/sda2 * 81920 4276223 2097152 c W95 FAT32 (LBA) /dev/sda3 4278270 488396799 242059265 5 Estendida /dev/sda5 4278272 43337727 19529728 83 Linux /dev/sda6 43339776 55056383 5858304 82 Linux swap / Solaris /dev/sda7 55058432 488396799 216669184 83 Linux
Disco /dev/sdb: 7756 MB, 7756087296 bytes 219 cabeças, 44 setores/trilhas, 1572 cilindros, total de 15148608 setores Unidades = setores de 1 * 512 = 512 bytes Tamanho do setor (lógico/físico): 512 bytes / 512 bytes Tamanho da E/S (mínimo/ideal): 512 bytes / 512 bytes Identificador do disco: 0x10fe13e7
Dispositivo Boot Início Fim Blocos Id Sistema /dev/sdb1 2048 15147007 7572480 b W95 FAT32

No caso do meu computador, tenho um disco de 250.1 GB (meu HD em /dev/sda) e um de 7756 MB (meu pendrive em /dev/sdb). O HD possui várias partições como se pode constatar acima (/dev/sda1, /dev/sda2, e etc). O pendrive, somente uma, cujo caminho no meu caso é /dev/sdb1.

ATENÇÃO: tenha certeza de que está identificando corretamente o caminho da partição, pois na sua máquina pode ser diferente. Se você não tem certeza, não vá adiante.

3 - Desmonte a partição, caso esteja montada

Para identificar se o pendrive está montado e em qual pasta, utilize o comando

mount | grep /dev/sdb1 | awk '{print $3}'

Se retornar alguma pasta, desmonte-a com o comando umount <caminho-montado>

4 - Defina o dispositivo como área de swap

Defina uma área de swap no pendrive com o comando. Esse comando vai apagar os dados do seu pendrive.

mkswap /dev/sdb1

5 - Diga ao sistema para usar o swap do dispositivo (com prioridade máxima)

swapon -p 32767 /dev/sdb1

Obs: o número 32767 é a prioridade de uso (0 = mínima, 32767 = máxima). Vamos preferir usar o pendrive ao invés do disco pelo fato do acesso ser mais rápido (não sei se é válido no caso dos novos HDs SSD).

6 - Confirmar que o swap foi ativado para o sistema

com o comando cat /proc/swaps, verifique se o sistema está usando a nova área de swap

# cat /proc/swaps
Filename Type Size Used Priority /dev/sda6 partition 5858300 339816 -1 /dev/sdb1 partition 7572476 0 32767

Finalmente, para desfazer estas alterações...

Para desativar este swap adicional, utilize o comando

swapoff /dev/sdb1

Para voltar a usar o pendrive normalmente, formate-o como preferir.