web-dev-qa-db-ja.com

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)マルチコールバイナリ

8
Mercer

Tarfileが破損しているか、切り捨てられているようです。

tarfileのヘッダー には、ファイルの長さを含むsizeフィールドが含まれています。¹実際のファイルがヘッダーよりも短い場合、tarは過去のファイルを読み込もうとしますファイルシステムのファイルの終わりになり、予想よりも短い読み取りが返されるため、表示されるメッセージが生成されます。

¹この機能は、tarが主にテープアーカイビングに使用されたときまで遡り、テープ上のEOFマーカーに到達するまで読み取ることによって「ファイル」の長さを知ることしかできませんでした。下位互換性があり、ヘッダーとファイルの整合性に対するニースチェック(少々安い場合)も提供します。

5
msw

通常、このメッセージは、tarアーカイブが不完全な場合に表示されます。 tar tvf ./VM_DECOMPTEST.tarを実行すると、tarファイルに不整合がないかチェックされます。

2
Kamiccolo

これは、特にGNU tarでこの問題を再現できない場合に、実行している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で修正されたある種のバグがあるようです。

0
user60561