A desfragmentação de um disco rígido requer pelo menos algum espaço livre? Se sim, quanto?

A desfragmentação de um disco rígido requer pelo menos algum espaço livre? Se sim, quanto?

Pergunta inspirada neste gif da Wikipedia:

insira a descrição da imagem aqui

(Fonte:https://en.wikipedia.org/wiki/Defragmentation#/media/File:FragmentationDefragmentation.gif)

No gif, os blocos (setores?) são movidos para o espaço livre e reorganizados (desfragmentação).

É necessário espaço livre?

Responder1

Do próprio artigo você obteve o gif:

Para desfragmentar um disco, o software de desfragmentação (também conhecido como “desfragmentador”) só pode mover arquivos dentro do espaço livre disponível. Esta é uma operação intensiva e não pode ser executada em um sistema de arquivos com pouco ou nenhum espaço livre.wikipedia-desfragmentação-mitigação

O Windows XP Defrag requer 15% de espaço livre em disco.

Responder2

Existem duas opções de desfragmentação. Você pode fazer isso da maneira fácil ou da maneira boa:

  1. Mantenha os dados a serem movidos e desfragmentados inteiramente na memória. Essencialmente, você precisa ler arquivos inteiros até liberar espaço suficiente para gravar um deles em um bloco contínuo.

    • a vantagem disso é que será mais rápido e não precisará de armazenamento extra no disco
  2. Mova os dados para outro lugar no disco e, em seguida, mova-os de volta quando um bloco contínuo grande o suficiente for criado.

    • dessa forma, é muito mais lento, pois os dados precisam ser lidos e gravados repetidamente em outro lugar.

A opção 1 potencialmente não precisa de espaço extra no disco, mas também é potencialmente perigosa.

  • Enquanto os arquivos estão sendo lidos e excluídos, os dados não existem mais no disco. No caso de um corte de energia, todos os arquivos que foram lidos, mas não restaurados em seu novo local, serão perdidos, com efeitos potencialmente catastróficos.
  • você não tem idéia do tamanho do buffer necessário para ler arquivos. Você pode ter arquivos de vários gigabytes que precisam ser movidos ou muitos arquivos pequenos. Ele precisa da capacidade de alocar quantidades potencialmente infinitas de memória (expandindo o arquivo de paginação e tornando a fragmentaçãopior) ou use uma porcentagem fixa de memória. Se você tiver um tamanho de buffer fixo, poderá carregar (e truncar) parte do arquivo para liberar espaço, mas acabará em uma posição pior, pois poderá ter perdidopeçasde arquivos em caso de falha de energia, o que seria pior do que perder o arquivo inteiro.

A opção 2 sempre garante que seus dados estejam no disco, especialmente se você copiar primeiro eentãoexcluir blocos.

Então, sim, para uma desfragmentação segura sem ameaça iminente de perda catastrófica de dados, você precisa de algum espaço livre em disco.

informação relacionada