O gzip adiciona verificação de integridade/crc a um .tar?

O gzip adiciona verificação de integridade/crc a um .tar?

Eu executo comandos:

tar -cf myArchive.tar myDirectory/
gzip myArchive.tar

então copio o arquivo em várias mídias não confiáveis ​​e depois descompacto-o usando:

tar -xzf myArchive.tar.gz

O fato de eu ter compactado o tar-ball garantirá de alguma forma a integridade, ou pelo menos um CRC do conteúdo descompactado?

Responder1

tarem si não escreve uma soma de verificação para comparação posterior. Se você gziparquivar tar, poderá ter essa funcionalidade.

tarusa compress. Se você usar o -Zsinalizador ao criar o arquivotar usará o compressprograma ao ler ou gravar o arquivo. Na gzippágina de manual:

O padrãocomprimirformato não foi projetado para permitir verificações de consistência.

Mas você pode usar o -zparâmetro. Em seguida, tarlê e grava o arquivo por meio do arquivo gzip. E gzipescreve uma soma de verificação CRC. Para exibir essa soma de verificação, use esse comando:

$ gzip -lv archive.tar.gz
method  crc     date  time           compressed        uncompressed  ratio uncompressed_name
defla 3f641c33 Sep 25 14:01               24270              122880  80.3% archive.tar

Degzip página de manual:

Ao usar os dois primeiros formatos (gzip ou zip significa), o gunzip verifica um CRC de 32 bits.

Responder2

Sim oformato de arquivo gzipcontém uma soma de verificação CRC-32 que pode ser usada para detectar se o arquivo foi corrompido.

Claro, enquanto a soma de verificação permite gzipdizervocê que o arquivo está corrompido, na verdade não faz nada para ajudá-lo a recuperar os dados dentro do arquivo. Portanto, é mais útil para coisas como verificar se um arquivo que você acabou de baixar da web realmente foi baixado corretamente.

Se você está realmente preocupado em armazenar ou transmitir seus arquivos em mídias não confiáveis, considere usar um formato de arquivo comoparque realmente fornececorreção de errosalém da detecção de erros. É claro que a desvantagem de tais formatos é que a redundância necessária para a correção de erros necessariamente aumenta um pouco o tamanho do arquivo.

Responder3

tarnão possui uma verificação de integridade. Exemplo:

$ echo JJJJJJJJJJJJJJJJJJ > b
$ tar cvf a.tar b
$ sed -i s/JJJJJJJJJJJJJJJJJJ/tttttttttttttttttt/g a.tar
$ tar xvf a.tar
$ cat b

tttttttttttttttttt

Veja, o conteúdo do a.tararquivo mudou, então o arquivo btem um conteúdo completamente diferente, mas o tar não percebeu isso. Isso é verdade para qualquer tar, incluindo tar-1.28 (mais recente) com ambos os formatos tar --format=gnu --format=posix. O paxcomando (leitor tar alternativo) pax -r < a.tartambém não percebe alterações no arquivo.

Responder4

O pacote PKZip (win/dos) vem com um programa chamado PKZipFix que pode recuperar arquivos danificados. Eu usei esse utilitário no passado, ele pode recuperar arquivos de arquivos moderadamente danificados que não seriam descompactados.

informação relacionada