tar: A lone zero block at 343398

19,640

Solution 1

It depends whether it happens with all tar.gz files or just this one. This particular file could be corrupt, and so won't open properly. If using tar to extract, you need to use the z option, as that's necessary when an archive is gzipped: tar xzvf <file.tar.gz>. Alternatively , it is also worth trying to extract it with gunzip <file.tar.gz>

To find out whether the file is corrupt, run gzip -t <file.tar.gz>; this command will check the file for errors, and if any are found they should appear in the terminal. This should tell you whether the file is corrupt.

If the file is sound and the error reoccurs, it means it is probably the known issue with tar that occurs when a file does not have a pair of zero blocks at the end of it, as GNU tar expects. The solution to this is to add the -i option to ignore the zero blocks. So use tar ixzvf <file.tar.gz> The issue is documented here in detail.

Solution 2

The same thing has happened to me because I piped both stdout and stderr through a channel that doesn't separate stderr and stdout (an android adb terminal session).

That way some error messages ended up in the stream. This was the faulty command:

  • Faulty command, adb shell just merges stderr and stdout locally => garbage! :
    adb shell tar -cf - /some/dir \| uuencode bla | uudecode -o - > backup.tar

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

The same will happen if you do a similar command over SSH like this quick tar streaming over ssh if you forget to redirect stderr to /dev/null:

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

Solution 3

I got this error the other day trying to untar an archive which was not gzipped. The source of the file was unknown to me but I figured that the creator might use cat to combine several tars into a single one. This caused the end-of-file zero marker to be read by tar utility in the middle of a combined archive thus displaying "A lone zero block" error.

If this is the case then --ignore-zeros or -i option might help to suppress these errors. Please see man tar or this link as a reference.

Share:
19,640

Related videos on Youtube

wael
Author by

wael

Updated on September 18, 2022

Comments

  • wael
    wael over 1 year

    while trying to extract a tar.gz file in ubuntu terminal an error happened int he last sentence here it is : tar: A lone zero block at 343398

    what is the solution for this problem???

  • eMPee584
    eMPee584 about 9 years
    Good catch. It also happens if you set RequestTTY yes in your ssh_config. Can be explicitly disabled with -T Disable pseudo-tty allocation. For me, the error was tar: Skipping to next header originally, the lone zero block occurred when I tried with --posix..