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

12

Eu corro comandos:

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

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

tar -xzf myArchive.tar.gz

O fato de eu ter compactado a bola de alcatrão, garantirá de alguma forma a integridade, ou pelo menos uma CRC do conteúdo descompactado?

Aksel Willgert
fonte

Respostas:

15

tarpor si só não anota uma soma de verificação para posterior comparsão. Se gzipo tararquivo que você pode ter essa funcionalidade.

tarusos compress. Se você usar o -Zsinalizador durante a criação do arquivo tar, utilizará o compressprograma ao ler ou gravar o arquivo. Na página de gzipmanual:

O formato de compactação padrão 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 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

Na página de gzipmanual:

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

caos
fonte
5

Sim, o formato do arquivo gzip contém uma soma de verificação CRC-32 que pode ser usada para detectar se o arquivo foi corrompido.

Obviamente, enquanto a soma de verificação permite ao gzip dizer que o arquivo está corrompido, ele não faz nada para ajudá-lo a recuperar os dados dentro do arquivo. Portanto, é útil principalmente para verificar se um arquivo que você acabou de baixar da Web foi realmente baixado corretamente.

Se você estiver realmente preocupado em armazenar ou transmitir seus arquivos em mídia não confiável, considere usar um formato de arquivo como o par que realmente fornece correção de erros , além da detecção de erros. Obviamente, o lado negativo de tais formatos é que a redundância necessária para a correção de erros necessariamente aumenta um pouco o tamanho do arquivo.

Ilmari Karonen
fonte
4

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 foi alterado, portanto o arquivo btem conteúdo completamente diferente, mas o tar não percebeu isso. Isso é válido para qualquer alcatrão, incluindo o tar-1,28 (mais recente) nos dois formatos de alcatrão --format=gnu --format=posix. O paxcomando (leitor tar alternativo) pax -r < a.tartambém não percebe alterações no arquivo.

user115641
fonte
2
O OP parece estar ciente (ou pelo menos suspeito) de que tar(pelo menos sem a -zopção) não faz verificação de integridade. Além disso, a resposta aceita afirma isso. A questão é: gzip(ou o uso da -zopção) adiciona verificação de integridade?
G-Man diz 'Reinstate Monica'
G-Man correto, esta poderia ser uma resposta correta se também incluísse a parte gzip e demonstrasse que o gzip detecta que o conteúdo foi alterado.
Aksel Willgert
2

Se o tar encontrar erros ao descompactar, ele imprimirá uma mensagem e sairá com um valor de saída diferente de zero. Esse comportamento é independente do algoritmo de compactação usado após a criação do arquivo tar.

Se você deseja verificar se o arquivo foi enviado com êxito ao destino por um link não confiável, crie uma soma md5 do arquivo antes de enviar e verifique a soma md5 após a recepção.

Jan
fonte
se estiver interessado apenas na integridade do conteúdo descompactado. O MD5 no alcatrão não adiciona nada extra em comparação com o alcatrão de verificação durante a descompactação?
Aksel Willgert
A integridade do conteúdo dentro do arquivo tar é cuidada por tarsi só. Você pode adicionar uma camada adicional, se necessário: Se a integridade do arquivo tar for verificada, o conteúdo dentro do arquivo tar também estará OK. Mas tudo isso deve ser tratado pelo protocolo usado para transferir os dados em primeiro lugar.
Janeiro
-1

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

user87282
fonte