破損したターボール回復

破損したターボール回復

私の手に破損したターボールがあります。私の最初の回復の試みは次のようになりました。

$ 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

これは、問題が発生する前にタールボールから多くを抽出しません。終了ステータスは 2 で、tar のマニュアルページには致命的なエラーが表示されます。

出荷書類ビーチ」gzip回復ツールキット「提案は次のとおりです。

cpio -F tarball.tar -i -v

これは1.8Gタールボールの1.2Gを抽出し、これはかなり良い結果です。端末プロンプトに多くのゴミを入力すると停止します。画面に印刷されません。入力したがまだEnterキーを押していないのと同じです。

より良い方法がありますか? 「タールボールの不良ブロックをスキップする」方法はありますか?

tarを使用して--ignore-zerostarファイル全体を読み取ることができるようです。

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内容を回復できないようです。

ベストアンサー1

tarしかし、を使用していませんし、gtarエラーメッセージは次のとおりです。

tar: Archive contains obsolescent base-64 headers

gtar20年以上繰り返し報告されたよく知られたエラーに関連しています。過去にこの問題の発生の可能性を減らすためにソースコードを変更しましたが、これらの変更によってまだ問題は実際には解決されていませんgtar

アーカイブを確認するにはパッケージtartestの内容を使用でき、starがエラーを報告した場合はstarstarを使用してアーカイブを抽出できます。star -i

おすすめ記事