Como compactar um arquivo muito grande contendo apenas alguns dados

2

Comprei um SSD de 250 GB, executei um formato completo nele, instalei o Win10 nele, clonei o disco inteiro usando o comando dd em um terminal Linux para ter um backup caso meu SSD quebra em algum momento, então agora eu tenho um arquivo de imagem de disco com um tamanho de aprox. 250 GB que se parece com isso:

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

Eu comecei a compactar o arquivo usando zip e esperava que zip fosse inteligente o suficiente para me dar um .zip de aprox. 17 GB de tamanho, mas depois de horas de compactação e meu .zip alcançando mais de 50 GB, interrompi o processo e vim aqui para perguntar se há outras maneiras possíveis de fazer isso.

    
por tom 30.09.2017 / 03:38

2 respostas

2

Tem certeza de que a parte vazia da unidade contém apenas nulos? Há provavelmente muito lixo deletado por aí. As coisas no pacote de distribuição foram sem dúvida armazenadas compactadas. Ele foi descompactado para instalação e, em seguida, os arquivos foram copiados para seus destinos, depois todo o lixo temporário foi excluído quando foi feito. Assim, 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 muito ruins, a compactação do archive diminui 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 muito isso (como seria se o problema fosse o que você pensava que fosse) você acaba com as execuções do código para a entrada de dicionário que são compactadas. (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 eram mais compactados, mas os dados de manutenção sim.)

Dito isto, o que você precisa fazer aqui é copiar sua partição, então encolher a partição copiada tão pequena quanto você puder (nuke sua troca e hibernate arquivos, se puder), então faça o que você fez para o resultado. / p>     

por 30.09.2017 / 04:35
0

Você não pode presumir que qualquer espaço vazio em um disco contenha apenas dados 0 ou completamente consistentes. A exclusão de um arquivo não grava automaticamente 0s na área de disco ocupada, apenas marca quaisquer ponteiros para esses dados como inválidos e aguarda que algo mais precise gravar dados nesse espaço. Enquanto isso, qualquer dado que esteja lá ainda está tecnicamente lá, mas é mais difícil chegar lá.

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

Se você absolutamente precisa ter uma imagem de disco gerada dessa forma, você precisará preencher esse espaço vazio com dados consistentes primeiro.

No Windows, você pode fazer o download de uma ferramenta chamada sdelete e tem uma opção para zerar corretamente preenche um disco: sdelete -z

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

A opção mais inteligente é usar ferramentas que entendam o formato do disco e armazenem apenas dados que realmente precisem ser armazenados para começar, além de ignorar o espaço "em branco" no disco.

  • Macrium Reflect
  • Clonezilla
  • Acronis Trueimage

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

    
por 30.09.2017 / 09:46