Я получаю сообщение об ошибке из файла tar.gz, который был создан с помощью winace при открытии его с помощью tar vxzf package.tar.gz в Linux:

tar: A lone zero block at 60140

2 ответа2

3

Похоже, вы потеряли один из секторов вашего жесткого диска, на котором сидел этот тарболл, так что весь блок файла - все нули. Вы можете загрузить его снова или восстановить из резервной копии или чего-то еще.

Для второго мнения о файле попробуйте распаковать его с помощью gunzip , а затем распаковать с помощью tar xvf ...

Вы также можете прочитать счетчики SMART на этом жестком диске и посмотреть, сообщает ли он о каких-либо ожидающих, переназначенных или перераспределенных поврежденных секторах. Если вы найдете что-нибудь, снимите с жесткого диска все, что можете (или, если у вас достаточно резервных копий, проверьте где-нибудь свои резервные копии, чтобы убедиться, что вы можете восстановить все из них), а затем сотрите жесткий диск с выбранной опцией, чтобы фактически записать нули или случайные данные в каждый сектор диска. Это единственный способ заставить жесткий диск переназначить любые плохие сектора. Но как только на жестком диске начинают выходить из строя сектора, возможно, пришло время заменить диск.

0

Вероятно, это неверно созданный файл .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 был неисправен (что происходит только при упаковке архива).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .