Como compactar um arquivo muito grande contendo apenas alguns dados

Como compactar um arquivo muito grande contendo apenas alguns dados

Comprei um SSD de 250 GB, executei uma formatação completa nele, instalei o Win10 nele, clonei o disco inteiro usando oddcomando em um terminal Linux para ter um backup caso meu SSD quebre em algum momento, então agora tenho um arquivo de imagem de disco com tamanho de aprox. 250 GB parecido com isto:

| --- some data (approx. 17 GB) --- | ------ no data at all, only nulls ------ |

Comecei a compactar o arquivo usandofecho eclaire esperava quefecho eclairseria inteligente o suficiente para me dar uma.fecho eclairde aprox. 17 GB de tamanho, mas depois de horas compactando e meu.fecho eclairjá chegando a mais de 50 GB, interrompi o processo e vim aqui perguntar se há outras maneiras possíveis de fazer isso.

Responder1

Tem certeza de que a parte vazia da unidade contém apenas nulos? Provavelmente há muito lixo excluído por aí. O material do pacote de distribuição foi sem dúvida armazenado compactado. Ele foi descompactado para instalação e em seguida os arquivos foramcopiadopara seus alvos, então todo o lixo temporário foi excluído quando foi concluído. Portanto, eu esperaria encontrar dados excluídos pelo menos tão grandes quanto o tamanho da instalação - o espaço ocupado pelos arquivos de troca.

Além disso, quando se trata de dados altamente compactáveis, descobri que, em casos realmente graves, a compactação do arquivo irá reduzi-lo ainda mais. A maioria dos compressores tem um comprimento máximo de um item de dicionário, quando a redundância em seu arquivo excede amplamente isso (como seria se o seu problema fosse o que você pensava), você acaba com execuções do código para a entrada do dicionário que é compactada. (E observe que também vi um pequeno benefício na compactação de um arquivo que continha um grande número de arquivos pequenos - os arquivos não foram mais compactados, mas os dados de manutenção sim.)

Dito isto, o que você precisa fazer aqui é copiar sua partição e, em seguida, reduzir a partição copiada o menor possível (destruir seus arquivos de troca e hibernação, se puder) e, em seguida, fazer o que você fez com o resultado.

Responder2

Você não pode presumir que qualquer espaço vazio em um disco contém apenas 0 ou dados completamente consistentes. A exclusão de um arquivo não grava automaticamente 0s na área do disco que ele ocupava, apenas marca quaisquer ponteiros para esses dados como inválidos e aguarda que algo mais precise gravar dados nesse espaço. Entretanto, quaisquer dados que existissem ainda estão tecnicamente disponíveis, mas são mais difíceis de obter.

Você também não pode presumir que um novo disco será zerado; pode ser que os dados sejam lixo completamente aleatório dos procedimentos de fabricação e teste.

Se você realmente precisa ter uma imagem de disco gerada dessa maneira, primeiro você precisa preencher esse espaço vazio com dados consistentes.

No Windows você pode baixar uma ferramenta chamadaexcluire tem uma opção para preencher corretamente um disco com zero:sdelete -z

Isso consumirá muito tempo em discos maiores e poderá levar horas ou até dias, dependendo do tamanho do disco.

A opção mais inteligente é usar ferramentas que entendam o formato do disco e armazenem apenas os dados que realmente precisam ser armazenados e ignorem o espaço "em branco" no disco.

  • Refletir Macrium
  • Clonezilla
  • Acronis Trueimage

Esses são alguns, mas existem muito mais softwares de imagem de disco por aí.

informação relacionada