alcatrão: um bloco zero solitário em 343398

10

ao tentar extrair um arquivo tar.gz no terminal ubuntu, ocorreu um erro na última frase aqui: tar: um bloco zero solitário em 343398

qual é a solução para esse problema ???

wael
fonte

Respostas:

18

Depende se isso acontece com todos os tar.gzarquivos ou apenas com este. Este arquivo específico pode estar corrompido e, portanto, não será aberto corretamente. Se estiver usando tar para extrair, você precisa usar a zopção, já que é necessário quando um arquivo é compactado: tar xzvf <file.tar.gz>. Como alternativa, também vale a pena tentar extraí-lo comgunzip <file.tar.gz>

Para descobrir se o arquivo está corrompido, execute gzip -t <file.tar.gz>; este comando verifica o arquivo quanto a erros e, se houver algum, deve aparecer no terminal. Isso deve informar se o arquivo está corrompido.

Se o arquivo estiver correto e o erro ocorrer novamente, significa que provavelmente é o problema conhecido com o tar que ocorre quando um arquivo não possui um par zero blocksno final, como espera o GNU tar. A solução para isso é adicionar a -iopção de ignorar o zero blocks. Então use tar ixzvf <file.tar.gz>O problema está documentado aqui em detalhes.


fonte
1

O mesmo aconteceu comigo porque eu canalizei stdout e stderr através de um canal que não separa stderr e stdout (uma sessão de terminal adb do Android).

Dessa forma, algumas mensagens de erro acabaram no fluxo. Este foi o comando defeituoso:

  • Comando defeituoso, o shell adb apenas mescla stderr e stdout localmente => lixo! :
    adb shell tar -cf - /some/dir \| uuencode bla | uudecode -o - > backup.tar

  • Comando fixo:
    adb shell tar -cf - /some/dir 2>/dev/null\| uuencode bla | uudecode -o - > backup.tar

O mesmo acontecerá se você executar um comando semelhante sobre o SSH, como este tar rápido transmitido pelo ssh, se você esquecer de redirecionar o stderr para / dev / null:

ssh user@host tar -czf /some/remote/path 2\>/dev/null > /local/path/to/file.tar.gz

ce4
fonte
1
Boa pegada. Isso também acontece se você definir RequestTTY yesseu ssh_config. Pode ser desativado explicitamente com -T Disable pseudo-tty allocation.Para mim, o erro era tar: Skipping to next headeroriginalmente, o bloco de zero solitário ocorreu quando eu tentei com --posix..
eMPee584
0

No outro dia, recebi esse erro ao tentar descompactar um arquivo que não foi compactado em gzip. A origem do arquivo era desconhecida para mim, mas achei que o criador poderia usar catpara combinar vários alcatrões em um único. Isso fez com que o marcador zero no final do arquivo fosse lido pelo tarutilitário no meio de um arquivo combinado, exibindo o erro "Um bloco zero solitário".

Se for esse o caso, a opção --ignore-zerosou -ipode ajudar a suprimir esses erros. Por favor, veja man tarou este link como uma referência.

Yerden
fonte