如何解决错误“tar:60140处的单独零块”?


0

我在使用winace创建的tar.gz文件中收到错误时tar vxzf package.tar.gz在Linux中打开它:

tar: A lone zero block at 60140

Answers:


3

听起来你丢失了tarball所在的硬盘驱动器的一个扇区,因此该文件块全部为零。您可能希望再次下载它,或从备份或其他东西恢复。

有关该文件的第二个意见,请尝试gunzip将其解压缩,然后解压缩tar xvf ...

您可能还想阅读该硬盘驱动器上的SMART计数器,看它是否报告任何待处理,重新映射或重新分配的坏扇区。如果您发现任何问题,请从硬盘驱动器中取出所有内容(或者如果您有足够的备份,请在某处测试备份以确保可以从中恢复所有内容),然后使用选定的选项擦除硬盘驱动器将零或随机数据写入驱动器的每个扇区。这是迫使硬盘重新映射任何坏扇区的唯一方法。但是,一旦硬盘驱动器开始出现故障,可能需要更换驱动器。


0

这可能是一个错误的constructet .tgz文件。

单独的零块就意味着这一点。tar文件由头块和文件内容交错组成(头部确定将有多少文件内容块)。然后,文件由两个或多个零块终止。

现在,如果只有一个零块,并且文件在此之后结束,或者在该GNU之后存在非零块,tar则将写入此诊断并终止(就好像文件在那里正确结束)。

如果您丢失了硬盘驱动器的扇区,可能会导致gzip显示错误(并且tar会对此做出反应),例如:

gzip: stdin: unexpected end of file 
tar: A lone zero block at 1754
tar: Child returned status 1
tar: Error is not recoverable: exiting now

类似地,如果下载过早终止gzip也会发出错误。没有这些错误你就不可能.tgz以某种方式受到伤害(gzip很可能会检测到zip流中的位错误并为此提供错误)。

鉴于zip流是一致的,可以得出结论,.tar打包的流是错误的(只有在打包存档时才会发生)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.