Como criar rapidamente uma nova partição emergencial para SWAP.

Criar e começar a usar uma nova partição ou arquivo de SWAP pode ser feito muito rapidamente no Linux.
O procedimento é seguro e pode ser realizado em menos de 2 minutos.
Contudo, aconselho a ir com calma.
redimensionar reparticionar disco
Outro conselho útil para estas ocasiões é aproveitar para fazer um backup.
O contexto deste post é um notebook que me chegou às mãos e, após abrir dezenas e dezenas de novas abas e janelas no Firefox, a máquina começou a ficar insuportavelmente lenta.
Nenhum vídeo era reproduzido (nem no Facebook, nem no YouTube)
Chegou ao ponto em que eu tinha que ver o que estava acontecendo:


free -h

                    total        used            free      shared  buff/cache   available
Mem:           7,5G        6,0G        557M        565M        3,0G        700M
Swap:            0B          0B          0B

Observe o meu resultado, acima.
Há 557 Mb de memória RAM livres — ou seja, estamos chegando a um limite… e absolutamente nenhum SWAP (nem arquivo, nem partição) presente.
Não há muita esperança de que o SWAP possa desafogar o uso do navegador Firefox, nestas circunstâncias, mas outros programas, em uso no sistema, bem que poderiam se beneficiar do seu uso e ajudar a “desespremer” a memória RAM — o que seria benéfico, por extensão, para o navegador.

A máquina estava ligada há uns 5 dias e o reboot não costuma ser minha primeira uma opção.

Criar um arquivo para o SWAP é completamente indolor e rápido, no Linux.
O que inviabiliza esta solução é que o sistema de arquivos, aqui, é 100% BTRFS.
Não é possível criar um arquivo de troca em cima do BTRFS.


Havendo espaço e sem reiniciar o computador, seria possível redimensionar uma das partições, para criar uma exclusiva para SWAP, como reza a tradição?
Esta foi a minha aposta. Veja o resultado…

Nunca é demais avisar que o procedimento pode danificar seu sistema de arquivos e causar perda irreversível de dados.
— Portanto, verifique se seu backup está em dia, antes de prosseguir.

Instale o gparted:


sudo apt install gparted

Em seguida, rode o programa e selecione a partição que deseja redimensionar.
Se tiver dúvidas quanto ao tamanho mais adequado, o artigo Perguntas e respostas sobre SWAP tem uma tabela que simplifica o assunto.
Siga o procedimento abaixo:

  1. Clique com o botão direito do mouse/touchpad sobre a partição cujo tamanho deseja alterar e selecione “Redimensionar”.
    gparted redimensionar partição
  2. Agora, indique o tamanho da nova partição em “Espaço livre após (MB)”.
    gparted redimensionar
    Em seguida, marque a opção “formatar para Linux swap”.
    gparted redimensionar partição
  3. Aplique as alterações feitas.
  4. Clique com o botão direito sobre a nova partição SWAP e selecione “Ativar o swap”.
    gparted ativar swap

Com isto, o problema estará resolvido.
Rode novamente o free, no terminal, para ver que o SWAP já está lá, pronto para ser usado.


free -h

              total        used        free      shared  buff/cache   available
Mem:           7,5G        2,5G        270M        589M        4,8G        4,2G
Swap:          8,8G          0B        8,8G

Como resultado (pra mim), o Firefox voltou a ganhar agilidade, sem precisar ser fechado ou reiniciado — e os vídeos voltaram a ser reproduzidos dos sites.
Novamente, vale a advertência: não aconselho realizar este procedimento em máquinas de produção, sem fazer um backup antes.
Há risco de perda de dados.
No meu caso, tratava-se de uma máquina de testes e, portanto, fazia sentido prosseguir nesta aventura.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Proteja o disco rígido do seu notebook Linux contra quedas

Quando um laptop cai no chão, da altura de uma mesa ou da sua cintura, vários de seus componentes pode ser danificados.
Um dos componentes mais sensíveis é o disco rígido (HDD).
O maior problema, neste caso, não são os danos físicos, uma vez que ele sempre pode ser substituído por outro.
O maior problema, ao danificar um HD, é perder todos os seus dados.
O disco rígido é composto de várias peças e partes móveis, como sabemos. Após a queda, quando ele chega ao chão, estas peças funcionam como armas — umas contra as outras.
O braço mecânico e a ponta da cabeça de leitura, podem destruir uma quantidade significativa de dados gravados nos discos, durante o processo de desaceleração brusca — sem qualquer chance de recuperação.
O software que vou apresentar, neste post, trabalha na detecção de situações típicas de queda e “ordena” que o sistema recolha imediatamente os braços de leitura/gravação dos discos rígidos.
A partir daí, as possibilidades de recuperação dos seus dados podem ser bem maiores.
Mesmo que o HD não funcione mais, se os discos ainda estiverem inteiros, ainda será possível entregá-los a uma empresa de recuperação de dados, para tentar extrair e salvar as informações de dentro deles.

O que é o hdapsd

O acrônimo significa Hard Drive Active Protection System — Sistema Ativo de Proteção ao Disco Rígido.
De acordo com a descrição oficial, o HDAPS é um daemon voltado para laptops de diversas marcas que possuam sensores de movimento (motion sensor).
Sua função é proteger o disco rígido do seu sistema, com o monitoramento constante dos valores de aceleração.
Assim que o daemon detecta uma queda ou um deslizamento brusco do seu notebook, ele age, fazendo com que as cabeças de leitura/gravação “estacionem” (parking).

Verifique no manual do seu produto ou pergunte ao vendedor se o seu equipamento possui sensor de movimento. Sem isso, o hdaps é inútil.

A versão atual (20141203) do hdapsd tem suporte às seguintes interfaces:

  • IBM/Lenovo ThinkPad (HDAPS)
  • Apple iBook/PowerBook (AMS)
  • Apple MacBook/MacBook Pro (APPLESMC)
  • HP (HP3D)
  • Dell (FREEFALL)
  • Toshiba (ACPI and HAPS)
  • Acer (INPUT)

No Debian/Ubuntu, é possível obter estas informações (lista, acima), bem como da versão do hdapsd, com o comando apt, antes de instalar:

apt show hdapsd

Se você tem um Lenovo Thinkpad, é recomendado usar o módulo hdaps, que já vem no pacote tp-smapi-dkms ou tp-smapi — que consome menos energia e tem compatibilidade com uma quantidade maior de equipamentos da linha Thinkpad.


Como instalar e usar o hdapsd

O daemon começa a funcionar logo após a instalação.
Para instalar no Debian/Ubuntu, use o apt:

sudo apt install hdapsd

O arquivo de configuração padrão, pode ser encontrado em /etc/hdapsd.conf.
Dentro dele, podemos indicar exatamente qual o dispositivo (sda, sdb etc.) a ser protegido e qual a sensibilidade desejada para a interface do sensor (sensitivity).
O valor padrão de sensibilidade é 15. Se quiser que ele seja mais sensível (recomendado!), use um valor mais baixo.

Como formatar um drive no Linux

Qualquer distro GNU/Linux provê uma gama de métodos para formatar seus dispositivos de armazenamento, tanto os externos (USB, p. ex.) quanto os internos.
Neste post, vou mostrar um método bastante comum, no ambiente gráfico, com o utilitário de discos.
Sei que as ferramentas gŕaficas são mais cômodas para alguns usuários. Caso você queira conhecer o mkfs, uma ferramenta CLI para formatar drives, clique aqui.
dispositivos de armazenamento de massa padrão
Antes de começar a fazer qualquer coisa, fica a advertência para o fato de que o processo de formatação apaga definitivamente todos os arquivos do dispositivo em que for aplicado.
Portanto, faça tudo com atenção redobrada, para evitar acidentes e aproveite para verificar se os seus backups estão todos em dia.
Os procedimentos foram testados em uma máquina Ubuntu 14.04 LTS Trusty Tahr, rodando sob o ambiente gráfico Unity e Debian 9 Stretch sob o GNOME.

Como formatar um dispositivo usando o utilitário gráfico

Nestas duas distros a ferramenta padrão para lidar com a formatação é o Disks ou Gnome-disk-utility.
Use o Dash para encontrar o aplicativo — pressione a tecla Super (que tem o logo Windows) e digite “discos” ou “disk” para fazer a busca.
gnome dash disk utility
O aplicativo possui uma série de opções para dispositivos de armazenamento. Entre as principais:

  • ele pode montar e desmontar qualquer dispositivo anexado — alguns podem precisar de privilégios administrativos
  • ele pode ser usado para particionar ou editar as partições existentes
  • criar ou recuperar uma imagem do seu disco

Há outras funções possíveis. Neste artigo, contudo, vamos tratar apenas de como formatar um drive.
Na janela, à esquerda, selecione o dispositivo sobre o qual deseja trabalhar — seja cuidadoso(a).
Logo abaixo da seção Volume, há um set de botões.
Através destes botões, é possível parar/desmontar um drive, excluir uma partição, formatar etc.
gnome-disk-utility drive selection
Selecione o botão para formatar.
system run high contrast icon
É possível entrar no painel de formatação também através do botão Mais ações, no canto superior direito da tela do aplicativo — a partir do qual é possível selecionar quase todas as mesmas ações.
A opção de Formatar é a primeira do menu Mais ações.
gnome disk utilities format menu
Vamos falar um pouco sobre cada um dos itens deste painel:

  • Apagar — você pode sobrescrever dados ou não.
    A primeira opção (não sobrescrever) é a mais rápida e, na verdade, em vez de “apagar” os dados contidos na mídia de armazenamento, apenas marca seu espaço como disponível para novas gravações.
    A segunda opção (sobrescrever) é a mais segura e garante que, por exemplo, seja mais difícil a alguém com conhecimento recuperar e acessar informações no dispositivo.
    Se trata-se de um pendrive ou cartão de memória, no qual você costuma armazenar dados sensíveis e você deseja entregá-lo a outra pessoa, é recomendado usar esta opção. Ela é mais demorada, por que, além de apagar, escreve um monte de dados aleatórios sobre o espaço vazio, para tornar mais difícil a recuperação dos dados anteriores.
  • Tipo — No Linux você não está restrito a menos de meia dúzia de possibilidades de sistemas de arquivos.
    linux format disk vfat filesystem

    1. A opção FAT (ou VFAT) é a mais “fraca” e insegura. É um sistema de arquivos velho e ultrapassado.
      Por outro lado, se você está formatando um dispositivo de baixa capacidade de armazenamento, para gravar músicas, fotos e vídeos e ser lido em qualquer equipamento, o FAT é, atualmente, o único sistema de arquivos que você irá poder usar.
      Com esta opção de formatação, o seu pendrive ou cartão de memória poderá ser lido em outros computadores, em smartTVs, no Playstation 3, em aparelhos de som (inclusive o do carro) etc.
    2. A opção NTFS tem uma universalidade reduzida, mas permite que você possa ler o dispositivo em computadores Windows.
    3. A opção Ext4 faz uso de um sistema de arquivos avançado e muito estável. Se você pretende fazer seus backups e precisa de um sistema de arquivos confiável, este é o melhor.
    4. A opção com criptografia LUKS é a mais indicada para quem irá armazenar dados sensíveis, pessoais ou profissionais. Neste caso, a criptografia LUKS oferece um nível de segurança elevado.
    5. Para finalizar, se nenhuma das opções anteriores satisfizer, personalize a sua escolha.
      Veja aqui uma relação detalhada de sistemas de arquivos específicos para mídias flash, SSD, NAND etc.
  • Nome — escolha um nome para identificar a sua unidade e ficar mais fácil saber seu conteúdo. Note que há limites de caracteres, dependendo do sistema de arquivos escolhido. O FAT permite nomes com até 8 caracteres, por exemplo.

Depois de escolher o nome do volume, inicie o processo de formatação, clicando no botão Formatar.
Há inúmeras outras formas para formatar dispositivos de armazenamento no Linux. Neste texto, apresentei uma das mais simples.
É possível usar a linha de comando para formatar, com maior número de opções de formatação. Mas isto já renderia outro artigo.

Perguntas e respostas sobre o SWAP

No decorrer dos anos, tenho colecionado algumas perguntas sobre o recurso de SWAP, ou área de troca, no Linux.
As perguntas surgiram de alguns artigos sobre o assunto, neste site.
Não tenho a intenção de repetir o que já escrevi (eu não quero ser chato, obviamente) — mas quero responder o que não respondi.
Este post é voltado para usuários novatos e, portanto, não vai abordar técnicas complexas ou usar termos “mais rebuscados” — para isto, há alguns links, no decorrer do texto, para outros posts onde é possível obter informações mais aprofundadas.
Sinta-se à vontade para expôr dúvidas básicas e adicionais ou compartilhar sua experiência, na sessão de comentários.
Disco rígido

O que é o swap

Área de troca ou swap é um espaço em disco que, em conjunto com a memória física (RAM), faz parte do sistema de memória virtual.
A área de troca guarda temporariamente as páginas de memória inativas.
Este espaço é usado quando o sistema percebe que precisa de mais memória física (além da que se encontra disponível) para os processos ativos e para os dados que estão em uso.
O swap pode ficar em uma partição dedicada do disco rígido (o que é recomendado), em um arquivo de swap ou em uma combinação dos dois.
Seu principal defeito é que seu tempo de acesso é muito lento.
Se comparar a velocidade da memória RAM com as taxas de transferência dos discos rígidos mais rápidos, o swap é extremamente lento, para ser usado como memória.
Trata-se de um paliativo e não, exatamente, uma solução.
Se o seu sistema está fazendo uso intenso do swap, você deveria pensar em adquirir mais memória RAM.
Disco rígido, HDD

Por que necessitamos de SWAP

Há várias situações em que o seu sistema pode recorrer ao uso do swap.

  • Programas consomem memória.
    Alguns programas consomem muita memória — o que pode fazer com que o sistema necessite, temporariamente, de uma quantidade extra de espaço na memória RAM.
    Parte dos recursos, das informações ou páginas usadas por programas podem não estar mais sendo utilizadas. Neste caso, o sistema pode movê-las para a área de troca, liberando memória RAM para as tarefas ativas.
  • O recurso de hibernação ou suspend-to-disk funciona gravando o conteúdo da memória RAM na partição, antes de desligar a máquina.
    Para isto ocorrer, é necessário que o espaço alocado para o swap seja do tamanho (pelo menos) da sua memória RAM.
  • Circunstâncias ou eventos imprevisíveis, de vários tipos (o que inclui programas com “mau comportamento”) podem ocupar uma grande quantidade de memória. Neste caso, é bom ter um espaço extra para “manobrar” dentro do sistema.
  • Otimizar o uso da memória do sistema, uma vez que os discos rígidos são consideravelmente mais lentos do que a RAM. Isto ocorre por que o acesso aos dados envolve a movimentação de partes mecânicas, no caso dos HDs.
    Ainda que você considere o uso do swap em uma unidade de estado sólido (ou SSD – Solid State Drive), ela ainda será significativamente mais lenta que a memória RAM.
    Deixar o gerenciamento de memória do sistema para o Linux resolver, costuma ser a melhor política.
    O Linux carrega os arquivos para a RAM e os mantém lá para uso posterior. Os arquivos armazenados na RAM podem ser disponibilizados instantaneamente.
    Há porções da RAM separados para para acelerar a leitura dos dispositivos de armazenamento auxiliares (leitores de CD/DVD/Bluray, cartões de memória, USB etc) — e são chamadas de cache.
    A função do sistema de cache, é armazenar em RAM, dados que estão sendo lidos dos dispositivos auxiliares, para que possam ser acessados mais rapidamente.
    Uma vez que o caching é uma das melhores formas de agilizar as tarefas, o Linux prefere mover dados pouco usados para o swap, em função de liberar mais memória para o sistema de cache — que é uma solução mais eficiente.
  • O sistema de gestão da memória, no Linux, é comprovadamente excelente. O aperfeiçoamento deste sistema, contudo, pode ser feito através de ajustes, que o adequem às necessidades específicas das aplicações que você estiver rodando.

  • Otimizar a performance do próprio swap. Já que este também usa o disco rígido ao mesmo tempo que todo o resto do sistema, pode causar gargalos e afetar seriamente a performance do sistema.
    Uma das formas de evitar este problema é manter a área de troca em um drive físico diferente — para evitar a competição por recursos entre os aplicativos e o sistema de swap.

Qual o tamanho ideal do swap

Em distribuições populares, como o Ubuntu, Debian, Fedora etc. instaladas em máquinas com menos de 1 GB de memória física (RAM), o tamanho do swap deve ser equivalente à quantidade de memória.
Se você tiver muito espaço no disco rígido, pode configurar o sistema para usar mais swap, até um teto equivalente ao dobro da capacidade de memória física.
A partir deste valor, não há benefícios significativos.
Se você precisa de um swap maior do que o dobro da capacidade de memória RAM, você deveria investir em aumentar a quantidade de memória física do sistema.
Geralmente, se algo demora 1 segundo para ser feito dentro da memória RAM, levaria 15 minutos para ser feito a partir do disco rígido. Mesmo em um SSD rápido, o trabalho ainda levaria mais de um minuto.
É seguro acompanhar a tabela abaixo, para computadores com até 1 GB de memória RAM:

Quantidade de RAM Sem hibernação Com hibernação Máximo
(Valores em MB)
256 256 512 512
512 512 1024 1024
1024 1024 2048 2048

Trocando em miúdos, configure o tamanho do swap para ser igual ao da memória física da sua máquina, se não for usar o recurso de hibernação. Se for usar o recurso, configure o swap para o dobro da memória física.
Para computadores, com maior quantidade de memória, use os valores da tabela a seguir.

Quantidade de RAM Sem hibernação Com hibernação Máximo
(Valores em GB)
1 1 2 2
2 1 3 4
3 2 5 6
4 2 6 8
5 2 7 10
6 2 8 12
8 3 11 16
12 3 15 24
16 4 20 32
24 5 29 48
32 6 38 64
64 8 72 128
128 11 139 256

Estas tabelas demonstram o quanto é indesejável inflar a área de troca no Linux — use apenas o necessário.
Geralmente, o recurso de hibernação não faz sentido em servidores. Portanto, podem usar a quantidade mínima de espaço na área de troca.

O que é mais rápido? Usar uma partição exclusiva para swap ou usar um arquivo swap?

Na perspectiva do usuário final, em kernel de versão superior a 2.6.x, arquivos de swap e partições de swap têm o mesmo desempenho de velocidade.
A limitação dos arquivos de swap é que precisam ter seus blocos todos contíguos para obter o melhor desempenho.
A fragmentação não é um problema pro kernel — na verdade, o sistema de swap pode englobar partições, arquivos, drives USB etc. todos de uma vez.
O kernel mantém um mapeamento com a localização de cada dispositivo e o acessa diretamente, ignorando o cache e o sistema de arquivos.
Embora não seja um problema, esta situação concorre para a redução do desempenho.
A documentação da Red Hat recomenda que você use partições exclusivas para swap, portanto.
Quando a partição exclusiva para swap reside em disco rígido (HDD), que é um dispositivo magnético e rotativo, é possível tirar vantagem da localização contígua e desfragmentada dos dados — o que proporciona um tempo de busca menor.
Contudo, é mais fácil administrar os arquivos de swap: você os pode colocar onde quiser; é fácil redimensionar etc.

Podemos usar o swap em uma unidade SSD?

As pessoas costumam ver este cenário como problemático, por 2 motivos:

  1. por acreditar que o swap é muito usado no seu sistema, causando um grande fluxo de dados — intensa atividade de leitura e escrita e
  2. por acreditar que as unidades SSD não suportam um grande número de eventos de leitura e escrita

O fato é que, no Linux, o swap é muito pouco usado. Em um sistema com quantidade adequada de memória para as suas aplicações, há poucas possibilidades de se chegar a usar o swap.
Ainda neste post, mostro como saber a quantidade de swap que você está usando no sistema.
Ainda que fosse muito usado, como no Windows, ainda assim se recomenda deixar o swap no SSD.
As unidades SSD atuais suportam uma grande quantidade de operações de leitura e escrita — o suficiente para você não precisar se preocupar com o suposto desgaste.
Some a isto o fato de que as partições swap do Linux, por padrão, executam operações de trimming, quando o dispositivo de bloco tem suporte ao TRIM.
Portanto, a resposta é sim. Se você tem uma unidade SSD atual, com espaço para uma partição ou arquivo de swap, é recomendado usá-lo.

O que é o swapiness?

O parâmetro de controle swapiness dita a tendência do kernel a mover processos da memória física para o swap (arquivo ou partição).
Como já se sabe, discos são muito mais lentos do que a memória RAM.
Portanto, quanto mais o sistema usa a área de troca em disco, mais lento ele se torna.
O swapiness regula esta relação entre o uso da memória física e o swap:

  • pode ter um valor entre 0 e 100
  • ao definir o valor 0 para o swapiness, você diz pro kernel para só mover processos da memória física para a área de troca em último caso
  • ao definir o valor 100 par o swapiness, você diz ao kernel para mover agressivamente processos da memória física para o swap

Nas principais distribuições GNU/Linux, como Ubuntu, Debian, Fedora etc. o valor padrão do swapiness é igual a 60.
No artigo Como melhorar a performance do Ubuntu, reduzir o valor do swapiness é apontado como uma das medidas a ser adotada para melhorar o desempenho geral do sistema.
No site oficial (veja links ao final do texto) da comunidade e suporte ao Ubuntu, há uma recomendação para usar swapiness=10 em instalações de uso normal.
Para verificar o valor atual do swapiness no seu sistema, use o seguinte comando:

cat /proc/sys/vm/swappiness

Se você quiser saber mais sobre este assunto e aprender a alterar o swapiness, leia o texto Reduza o uso do swap e melhore o desempenho do Linux.
Memória RAM

Por que o Linux não está usando o swap?

É possível saber quanto do swap está sendo usado em seu sistema com o comando free:

free -h
             total       used       free     shared    buffers     cached
Mem:          7,5G       3,5G       4,0G       403M        90M       1,7G
-/+ buffers/cache:       1,7G       5,8G
Swap:          15G         0B        15G

Neste momento, no meu sistema 0 bytes estão sendo usados pelo swap.
A resposta mais simples para esta situação é: se o sistema não está usando, é por que não é necessário.
Contudo, você pode alterar o quadro se abrir vários aplicativos vorazes por recursos da memória do sistema — como o Gimp, o LibreOffice, o Audacity etc).
Depois disto, rode o comando free mais uma vez.
Incrementar o valor do swapiness, como já foi explicado antes, pode ser uma forma mais agressiva de aumentar o uso do swap.
Lembre-se também que o Linux usa o recurso durante a hibernação — onde ele grava o estado atual da memória do sistema.
Você pode também verificar se há e qual é a partição swap no seu sistema, com o comando fdisk:

sudo fdisk -l | grep swap
[sudo] password for justincase: 
/dev/sda1  *        2048  31999999  31997952  15,3G 82 Linux swap / Solaris

Como esvaziar o swap

Mesmo tendo uma grande quantidade de RAM e mesmo que você esteja usando um valor baixo para o swapiness, ainda é possível que o seu sistema recorra ao swap, em algum momento.
Se isto acontecer, você pode manualmente esvaziar esta área.
Só para ficar claro, este procedimento é totalmente desnecessário e você nunca deveria se preocupar em esvaziar a área de troca do seu sistema — o próprio Linux se encarrega de fazer isto automaticamente.
Os próximos passos necessitam de privilégios administrativos para serem realizados:

  1. Inicie o seu editor favorito para criar o script swap2ram.sh. Eu vou guardar o meu script em ‘/usr/local/sbin/’. Você pode gravar o seu onde quiser. Apenas tome o cuidado para adequar as instruções deste post ao que você vai realizar aí.
  2. O conteúdo do script é o que segue:
    #!/bin/sh
    
    mem=$(LC_ALL=C free  | awk '/Mem:/ {print $4}')
    swap=$(LC_ALL=C free | awk '/Swap:/ {print $3}')
    
    if [ $mem -lt $swap ]; then
        echo "ERRO: não há espaço suficiente em RAM para transferir o conteúdo do swap. Não é possível prosseguir." >&2
        exit 1
    fi
    
    swapoff -a && 
    swapon -a
    
    
  3. Após gravar o seu script, torne-o executável:
    sudo chmod +x /usr/local/sbin/swap2ram.sh
    

Basicamente, o script /usr/local/sbin/swap2ram.sh compara a quantidade de memória RAM disponível e o tamanho do swap.
Se houver espaço suficiente na primeira, o script prossegue com a desativação (swapoff) e ativação (swapon) da área de troca.


Imagens: http://www.pixabay.com.

Referências

https://lkml.org/lkml/2006/5/29/3.
https://en.wikipedia.org/wiki/Paging#Linux.
https://help.ubuntu.com/community/SwapFaq.
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Deployment_Guide/ch-swapspace.html.

Recupere o seu sistema de arquivos com o TestDisk

O TestDisk é uma ferramenta poderosa e útil para recuperar dados de dispositivos de armazenamento, como HDs, SSDs, pendrives, cartões de memória etc.
Originalmente, foi projetado para recuperar partições perdidas, danificadas e/ou fazer discos, que não estão dando boot mais, voltar a dar boot — quando estes sintomas forem causados por softwares defeituosos, vírus ou remoção acidental da tabela de partições.
A tarefa de recuperar tabelas de partições é relativamente fácil com o TestDisk.
testdisk logo
Neste texto, vou apresentar o aplicativo, mostrar como ele pode ser instalado e dar algumas dicas iniciais para o processo de recuperação dos dados.

O que dá pra fazer com o TestDisk

Dentre as tarefas possíveis com o aplicativo, a wiki oficial (link no final do texto) cita as seguintes:

  • Concertar a tabela de partições e recuperar partições removidas acidentalmente
  • Recuperar o setor de boot de uma partição FAT32 a partir do seu backup
  • Reconstruir setores de inicialização (boot sectors) de partições FAT12/FAT16/FAT32
  • Consertar tabelas FAT
  • Rebuild NTFS boot sector
  • Recover NTFS boot sector from its backup
  • Corrige o MFT, usando o MFT mirror
  • Localiza o Backup SuperBlock dos sistemas de arquivos ext2, ext3 e ext4
  • Recupera arquivos apagados da FAT, da exFAT, partições NTFS e ext2
  • Copia arquivos apagados a partir de sistemas FAT, exFAT, NTFS, ext2, ext3 e ext4

O utilitário tem recursos voltados para usuários novatos e avançados.
Se você tem pouco conhecimento sobre técnicas de recuperação de dados, pode usar o TestDisk apenas para coletar informações detalhadas sobre um dispositivo que não está inicializando e enviá-las para a análise de um técnico.
Sistemas operacionais suportados pelo TestDisk:

  • DOS
  • Windows (NT4, 2000, XP, 2003, Vista, 2008, Windows 7 (x86 & x64), Windows 10
  • Linux
  • FreeBSD, NetBSD, OpenBSD
  • SunOS
  • MacOS X

Ao final do texto, segue o link para download do aplicativo para a sua plataforma preferida.
Neste artigo, vou focalizar o uso do TestDisk no Linux (Debian 8.2, para ser mais preciso) — você pode facilmente adequar os conceitos explicados aqui a outra distribuição GNU/Linux ou plataforma de sistema operacional.

Sistemas de arquivos suportados

De acordo com a wiki, o TestDisk suporta os seguintes sistemas de arquivos:

  • BeFS ( BeOS )
  • BSD disklabel ( FreeBSD/OpenBSD/NetBSD )
  • CramFS, Compressed File System
  • DOS/Windows FAT12, FAT16 and FAT32
  • XBox FATX
  • Windows exFAT
  • HFS, HFS+ and HFSX, Hierarchical File System
  • JFS, IBM’s Journaled File System
  • Linux btrfs
  • Linux ext2, ext3 and ext4
  • Linux GFS2
  • Linux LUKS encrypted partition
  • Linux RAID md 0.9/1.0/1.1/1.2
  • RAID 1: mirroring
  • RAID 4: striped array with parity device
  • RAID 5: striped array with distributed parity information
  • RAID 6: striped array with distributed dual redundancy information
  • Linux Swap (versions 1 and 2)
  • LVM and LVM2, Linux Logical Volume Manager
  • Mac partition map
  • Novell Storage Services NSS
  • NTFS ( Windows NT/2000/XP/2003/Vista/2008/7 )
  • ReiserFS 3.5, 3.6 and 4
  • Sun Solaris i386 disklabel
  • Unix File System UFS and UFS2 (Sun/BSD/…)
  • XFS, SGI’s Journaled File System
  • Wii WBFS
  • Sun ZFS

Como instalar o TestDisk

Em distribuições baseadas no Debian, como é o caso do Ubuntu, Linux Mint e várias outras, é possível baixar e instalar diretamente dos repositórios oficiais, com o comando apt-get:

sudo apt-get install testdisk

se você prefere usar o aptitude (ideal, no Debian):

sudo aptitude install testdisk

Para executar o aplicativo, rode o comando testdisk no terminal.
Captura de tela do testdisk
A versão, que você vê na imagem acima, é a versão em modo texto.
Você também pode encontrar o TestDisk dentro de várias distribuições Live CD — ideal para suporte técnico ou no caso de você ter perdido acesso ao seu sistema por causa de problemas no disco rígido.
Como usar:

  • Para fazer uso do aplicativo, use as setas (no teclado), para se movimentar entre as opções do menu.
  • Para prosseguir e confirmar suas opções, use a tecla Enter.
  • Você pode usar a tecla ‘q’ (quit) para voltar às opções anteriores.
  • Para gravar as mudanças, use a tecla ‘y’ (yes) e Enter, para confirmar.
  • A opção ‘Write” é usada para registrar as mudanças na MBR (Master Boot Record).

Por fim, é necessário ter privilégios administrativos (superusuário) para usar a maior parte dos recursos do programa.

Alguns detalhes que você precisa entender

Antes de começar a trabalhar na recuperação do seu sistema de arquivos, é preciso entender que não há garantias de que você irá recuperar coisa alguma depois de um acidente ou desastre.
Suas chances de recuperar dados importantes são aleatórias — boa sorte!
Prepare-se psicologicamente para o pior.
Por mais que eu queira simplificar esta tarefa, a recuperação de dados é algo complexo e você pode facilmente causar mais danos ao sistema, piorando ainda mais a situação.

Se as informações são muito importantes para você, pergunte-se se não vale mais a pena pagar a um especialista para realizar os procedimentos necessários para a recuperação.

Não raro, a tarefa exige destreza no uso da linha de comando, conhecimento sobre partições, geometria de discos rígidos, compilações e, possivelmente, entender o conteúdo de arquivos a partir de um hex editor.
É muito importante não fazer nada, antes de ter certeza do que você está fazendo.

Referências

Como recuperar seu sistema de arquivos com o FSCK: https://elias.praciano.com/2014/03/como-verificar-e-consertar-seu-sistema-de-arquivos-no-ubuntu/
Download do TestDisk: http://www.cgsecurity.org/wiki/TestDisk_Download
Wiki do TestDisk, no CGISecurity: http://www.cgsecurity.org/wiki/TestDisk
Dedoimedo: http://www.dedoimedo.com/computers/linux-data-recovery.html