Восстановление поврежденного tarball

У меня на руках испорченный архив. Моя первая попытка восстановления прошла следующим образом:

$ tar --ignore-failed-read --ignore-command-error -xf tarball.tar tar: Skipping to next header tar: Archive contains '180738 0' where numeric mode_t value expected tar: Archive contains '0.445647 -9.' where numeric time_t value expected tar: Archive contains '.259273 ' where numeric uid_t value expected tar: Archive contains obsolescent base-64 headers tar: Archive contains '-0.94874' where numeric gid_t value expected tar: text from a text file is here: implausibly old time stamp 1969-12-31 18:59:59 tar: more text file contents are here: Unknown file type 'p', extracted as normal file tar: Skipping to next header tar: Skipping to next header tar: Exiting with failure status due to previous errors 

Это не извлекло много из tarball перед ошибкой. Статус выхода – это 2, о котором говорит эта страница tar man, является фатальной ошибкой.

Документация для « gzip Recovery Toolkit » предложила следующее:

 cpio -F tarball.tar -i -v 

Это извлекло 1.2G 1.8G tarball, что довольно хорошо. Он останавливается с кучей мусора, введенного после подсказки терминала – он не печатается на экране, это как если бы я набрал его и еще не ударил.

Есть ли способ сделать лучше? Есть ли способ попробовать «перепрыгнуть через плохие куски» tarball?

С --ignore-zeros tar, кажется, читает весь файл tar.

 tar -R --ignore-failed-read --ignore-command-error --ignore-zeros -xvf tarball.tar [...] block 3670356: ** Block of NULs ** block 3670357: ** Block of NULs ** block 3670358: ** Block of NULs ** block 3670359: ** End of File ** tar: Exiting with failure status due to previous errors 

Существует много ошибок Block of NULs поэтому похоже, что содержимое может быть безвозвратным.

One Solution collect form web for “Восстановление поврежденного tarball”

Вы не используете tar но gtar и сообщение об ошибке:

tar: Archive contains obsolescent base-64 headers

связан с известной ошибкой в gtar , о которой неоднократно сообщается с более чем 20 лет. В прошлом произошли изменения в источнике, что сделало эту проблему менее вероятной, но эти изменения еще не зафиксировали связанную с этим проблему в gtar .

Если вы хотите проверить свой архив, вы можете использовать tartest из пакета star , и вы можете попытаться использовать звезду для извлечения архива и star -i если эта звезда сообщает об ошибках.

  • Включение вывода процесса в файл tar
  • Linux + как автоматически сжимать старые файлы журналов
  • Как хранить в переменной список файлов, который включает обратную косую черту, когда это необходимо?
  • Вставить
  • Как установить tar-файл (jhead) на компьютере Mac или Linux
  • Как проверить, что «ls» выводит что-то ... с помощью одной команды?
  • Каковы относительные достоинства различных стандартных архивных утилит Unix?
  • Как заставить tar создать папку, если она не существует при создании архива
  • Сделать загрузочный диск из tar-архива
  • Возможно ли интегрировать файлы zip и tar.gz в качестве каталога в файловую систему
  • переносная команда для распаковки и распаковки без GNU и старого unix
  • Linux и Unix - лучшая ОС в мире.