tar: 短い読書

tar: 短い読書

私のtar

私はこうする:

tar xvf VM_DECOMPTES.tar

しばらくすると、次のエラーが発生します。

tar: short read

ここで何の問題がありますか?

tar: 認識できないオプション '--version' BusyBox v1.9.1-VMware-visor-klnext-2965(2010-04-19 12:53:48 PDT) マルチコール バイナリ

答え1

tarファイルが破損しているか切り捨てられているようです。

これtarファイルヘッダsizeファイルの長さを含むフィールドを含みます。実際のファイルがヘッダーで指定されたものより短い場合、tar はファイルのファイルシステムの末尾を読み取ろうとし、予想より短い読み取りを返すことによって表示されるメッセージを生成します。

1この機能は、tarが主にテープの保管に使用されていた頃にさかのぼり、テープからEOFマークが表示されるまで読んで「ファイル」の長さだけを知ることができました。これは以前のバージョンとの互換性のために維持され、ヘッダーとファイルの一貫性の良い(やや安い)チェックを提供します。

答え2

このメッセージは通常、tar アーカイブが不完全な場合に表示されます。実行すると、tar tvf ./VM_DECOMPTEST.tartarファイルに矛盾があるかどうかを確認します。

答え3

これは実行中のtarバージョンによるものである可能性があり、特にGNU tarを使用して問題を再現できない場合はさらにそうです。

次のコマンドを実行して、プラットフォームに合わせて新しいバージョンのbusyboxを構築できます。

$ wget https://busybox.net/downloads/busybox-1.31.0.tar.bz2
$ tar xjf busybox-1.31.0.tar.bz2
$ cd busybox-1.31.0
$ LDFLAGS=--static make -j16  # if applicable: CROSS_COMPILE=...-linux-gnu-

具体的には、busybox v1.22.1(または他のバージョン)で解凍したときに何らかのバグがあるようですが、これはv1.31.0で修正されました。

関連情報