Я получаю сообщение об ошибке из файла tar.gz, который был создан с помощью winace при открытии его с помощью tar vxzf package.tar.gz
в Linux:
tar: A lone zero block at 60140
Похоже, вы потеряли один из секторов вашего жесткого диска, на котором сидел этот тарболл, так что весь блок файла - все нули. Вы можете загрузить его снова или восстановить из резервной копии или чего-то еще.
Для второго мнения о файле попробуйте распаковать его с помощью gunzip
, а затем распаковать с помощью tar xvf ...
Вы также можете прочитать счетчики SMART на этом жестком диске и посмотреть, сообщает ли он о каких-либо ожидающих, переназначенных или перераспределенных поврежденных секторах. Если вы найдете что-нибудь, снимите с жесткого диска все, что можете (или, если у вас достаточно резервных копий, проверьте где-нибудь свои резервные копии, чтобы убедиться, что вы можете восстановить все из них), а затем сотрите жесткий диск с выбранной опцией, чтобы фактически записать нули или случайные данные в каждый сектор диска. Это единственный способ заставить жесткий диск переназначить любые плохие сектора. Но как только на жестком диске начинают выходить из строя сектора, возможно, пришло время заменить диск.
Вероятно, это неверно созданный файл .tgz
.
Одинокий нулевой блок означает именно это. Файл tar состоит из блоков заголовка и чередующегося содержимого файла (заголовок определяет, сколько блоков содержимого файла будет). Файл заканчивается двумя или более нулевыми блоками.
Теперь, если есть только один нулевой блок, и файл либо заканчивается после этого, либо после него есть ненулевые блоки, tar
GNU запишет эту диагностику и завершит работу (как если бы файл правильно завершился там).
Если вы потеряли сектора своего жесткого диска, это, вероятно, привело бы к тому, что 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
был неисправен (что происходит только при упаковке архива).