Desfragmentação

Sim, pode ser que seu sistema Linux necessite de uma desfragmentação! Entenda os motivos e aprenda como fazê-lo.


| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. 
Mais detalhes clicando aqui.


1. Introdução

  • Pera, pera, calma aew. Como assim cara? O sistema é muito otimizado, pra que eu faria uma desfragmentação?

O referido comando existe nativamente na maioria das distribuições linux e pode ser feito tranquilamente pelo terminal. Mesmo que pouco utilizado (e desnecessário na maioria dos casos), uma verificação dessas pode ser interessante naquele seu computador que está rodando a uns 5 anos sem saber o que é “formatação” ou num servidor de produção.

O tutorial serve para todos os usuários, porém priorizo os que usam WINE ou mesmo Proton pela Steam, pois eles são o campeões em criar fragmentos na pasta /home. A geração de pastas de versões do WINE também geram fragmentos devido à alta quantidade de pequenos arquivos .dll presentes nelas. O WINE recria o sistema Windows com maestria – para nossa alegria – e é tão bem recriado que a alta fragmentação dos arquivos também se faz presente – para nossa tristeza!

2. Desfragmentando um SSD: TRIM

  • Este comando serve para todos os tipos de SSD’s, incluindo NVME’s, e serve para qualquer sistema de arquivos!

Sempre que você grava um arquivo no SSD e exclui ele, ele é apenas marcado para exclusão e não some de imediato. O comando TRIM aplica a exclusão, liberando espaço útil no SSD.

  • Mas não é mais fácil eu apenas gravar por cima dos ditos arquivos marcados para excluir?

Temos um problema aí: Se você grava por cima, você causa mais danos aos transístores que armazenam os dados dos SSDs, diminuindo sua vida útil e deixando-o lento no longo prazo. Caso você use SSD, dependendo da distro e do sistema de arquivos, o TRIM pode ocorrer automaticamente uma vez por dia ou por mês. Mas caso queira se garantir e executar o TRIM manualmente, faça o comando abaixo, ele irá buscar e aplicar o TRIM a todas as partições no SSD:

$ sudo fstrim -va

O processo costuma demorar dependendo da máquina.
Aguarde pacientemente.

3. Desfragmentação do seu HDD

3.1 APENAS para EXT3/EXT4 – Não utilize em SSD.

Para fazer a desfragmentação em sistemas EXT3/EXT4, defina a partição que deseja verificar, de preferencia aonde a /home está localizada. Normalmente fica em /dev/sda1 mas para conferir você pode visualizar pelo programa “gnome disks” ou “gparted”.

Abra seu Terminal e digite:

 $ sudo e2fsck -fn /dev/sdXY

Sendo XY o endereço da sua partição, sda1, sda2, sdb1 etc.
O comando -f faz uma verificação e o -n não causa qualquer “dano” aos arquivos, apenas verifica superficialmente, mesmo se seu sistema estiver montado.

Ao término do comando, você verá o seguinte dado na ultima linha:

/dev/sda1: 292448/61054976 files (0.9% non-contiguous)
 Temos que, no meu caso, tenho 0.9% de fragmentos no disco.

Pela minha experiência, recomendo desfragmentar caso esse valor passe de 5%.

  • Certo, meu sistema deu +5%! O que eu faço?

Agora você utilizará uma ferramenta de desfragmentação nativa da maioria das distros linux:

$ sudo e4defrag /dev/sdXY

Repetindo, XY sendo sua partição verificada agora a pouco.
O e4defrag é um desfragmentador desenvolvido especialmente para sistemas EXT4.
Portanto o comando só funcionará se você usa EXT4 em seu Linux!
Se você não tem certeza, provavelmente é EXT4, é o formato de partição padrão da maioria das distros Linux populares. Aguarde o término da desfragmentação, que pode demorar muito ou pouco, depende.

Quando concluir, dê novamente o comando “$ sudo fsck -fn” e verifique a quantos % ficou seus fragmentos.
Erros ainda podem existir no disco mas para corrigi-los você deverá entrar em modo LiveUSB e fazer o “sudo fsck -fy” para confirmar as correções.

Esse comando não funciona em unidades montadas e você só conseguirá corrigir a / root do seu sistema se estiver nele via LiveUSB. O comando também não vai formatar nada, apenas corrigir algum erro na partição, preservando os arquivos.

3.2 Desfragmentação APENAS para BTRFS

Para fazer a desfragmentação em sistemas BTRFS faça o seguinte:

$ sudo btrfs filesystem defragment -rvf /pasta

Sendo /pasta o caminho para a partição, pasta ou dispositivo. O BTRFS permite que você desfragmente apenas uma pasta específica se achar conveniente.

Além disso, pode comprimir os dados enquanto desfragmenta com:

$ sudo btrfs filesystem defragment -rvf -clzo /pasta 

Você pode trocar a capacidade da compactação trocando -clzo por -czstd por exemplo, para utilizar o ZSTD.

4. Quando utilizar cada método?

Depende da sua necessidade.

Se você utiliza SSD, não titubeie e utilize apenas o TRIM para desfragmenta-lo. Se utilizar BTRFS, você pode usar o desfragmentador do BTRFS citado acima para por exemplo, mudar o nivel de compactação dos dados! Mas evite rodar o comando em demasia nos discos desnecessariamente, ele pode ser bastante agressivo em seu processo de leitura/escrita para re-gravar os dados com uma compactação maior.

SSD’s são feitos para que a pior fragmentação seja imperceptível e força-los a desfragmentar vai apenas diminuir sua vida útil.

Se você utiliza HDDs, pode usar o método de acordo com seu sistema de arquivos, lembrando que o TRIM será inútil aqui.

#UrbanCompassPony

1 comentário em “Desfragmentação”

Deixe um comentário