ファイルを解凍する際の余分なバイトエラー


28

を入力するとunzip ../founation-latest.zip、これが出力されます:

警告[../foundation-latest.zip]:開始時またはzipファイル内で248バイト(とにかく処理しようとしています)

ファイルは138KBです。正しく解凍されますが、なぜこのエラーが発生するのですか?


2
考えられる原因の1つは、システムへの移動の1ステップで、ftpバイナリモードではなくASCIIモードで転送され、いくつかのバイトが追加されたことです。ftpいずれかの段階で使用した場合はftp、「put」または「get」の前に「bin」コマンドを使用して、再度実行してください。
マークプロトニック14

最初に悪意のあるペイロードが含まれている可能性があります。それは敵対的なインターネットです。そのようなzipを開くために使用するunzipユーティリティに注意してください。
jbrahy

多くの原因が考えられるため、現在の回答には多くの推測があります。問題のファイルへのリンクまたはコピーがあると役立ちます。
デュオズモ

悪意のある余分なペイロードの可能性について:そのサイズで、ファイルをvirustotal.comにアップロードして、個人情報がない場合にチェックすることができます。ただし、元のファイルを別の場所にコピーする場合にのみ、Linuxのウイルスについてはあまり心配しません。(データが完全だと思う場合は、いつでもファイルを再パックできます。)
Ned64

これが問題であることを確認するだけです。私は両方と私のiTunesのファイル・スペースのバックアップを作成しようとしたzipとしてdittounzip(10.11によって)提供は、同様のように、これらの両方に失敗しました7za。MacOSの解凍では、zipファイルが(大規模?)好きではありません。
オテウス

回答:


37

私の問題は、PKZIPで圧縮されたものを処理できないMAC OSXで「unzip」を使用しようとしていたためです。

brew install p7zipコマンドを使用して解凍できました7za x some_file.zip

私はもともとこの記事で解決策を見つけました:need-pk-compat-v4-5-can-do-v2-1


4
microsoft.comからWindows VMをダウンロードしましたが、これが解凍のソリューションでした。
-sod

1
また、これは(私の場合:2009年4月20日のUnZipを6.00、Debianのことで。)Linux上で解凍にも適用することができる
BradHards

2
また、それは少し速く、進行状況を示していることも言及する価値があります。
previous_developer

またp7zハンドル新しいジップで大きなファイルやファイルを
Konrads

今日、AWS Linuxイメージで同じ問題が発生しました。timeoff.wsisiz.edu.pl/rpms.htmlからp7zip RPMをダウンロードし、アーカイブをテストして問題なく抽出しました。
スプロケット

23

同様の問題があるこのスレッドを見つけました。バグレポートのタイトルは、「先頭またはzipファイル内に余分なバイト」を含む5.4GB ZIPでunzipが失敗することです。推奨される修正の1つは、.zipファイルでこのコマンドを使用することでした。

$ zip -FFv foo.zip --out fixed.zip

実行例

$ zip -FFv foo.zip --out fixed.zip
Fix archive (-FF) - salvage what can
 Found end record (EOCDR) - says expect single disk archive
Scanning for entries...
 Local ( 1      0): copying: d1/f1   (651734 bytes)
 Local ( 1 651817): copying: d1/d2/  (0 bytes)
 Local ( 1 651905): copying: d1/d2/f3   (80 bytes)
 Local ( 1 652083): copying: d1/f23   (891 bytes)
 Local ( 1 653021): copying: d1/f27   (8764 bytes)
 Local ( 1 661837): copying: d1/f24   (14818 bytes)
 Local ( 1 676709): copying: d1/f25   (17295 bytes)
...
 Cen   ( 1 5488799949): updating: d1/f13
 Cen   ( 1 5488800052): updating: d1/f14
Zip64 EOCDR found ( 1 5488800155)...
Zip64 EOCDL found ( 1 5488800211)...
EOCDR found ( 1 5488800231)...
$ echo $?
0

zipの-FFスイッチ

zipのmanページからの抜粋

       -FF
       --fixfix
              Fix the zip archive. The -F option can be used if some 
              portions of the archive are missing, but requires a reasonably 
              intact central directory.   The  input  archive is scanned as 
              usual, but zip will ignore some problems.  The resulting 
              archive should be valid, but any inconsistent entries will be 
              left out.

              When doubled as in -FF, the archive is scanned from the 
              beginning and zip scans  for  special  signatures  to  
              identify  the  limits between the archive members. The single 
              -F is more reliable if the archive is not too much damaged, so 
              try this option first.

              If  the archive is too damaged or the end has been truncated, 
              you must use -FF.  This is a change from zip 2.32, where the 
              -F option is able to read a truncated archive.  The -F option 
              now more reliably fixes archives with minor damage and the -FF 
              option is  needed to fix archives where -F might have been 
              sufficient before.
              ...

3

トラブルが発生したWebサービスを介してzipアーカイブが転送されたとき、以前にこのタイプのエラーを見ました。zipファイルを直接調べたところ、zipファイルの前にWebサービスからのエラーメッセージが送信されていました。

zipファイルをテキストとして調べ、前面に興味深いものが表示されるかどうかを確認することができます。


3

この警告もありました。私の場合、「curl -i」でダウンロードすると、zipファイルの先頭にhttp-headersが表示されます。愚かな私。確かに、これはすべての場合に原因/解決策ではありませんが、おそらくそれは誰かを助ける...


2

自己解凍アーカイブ(windows .exe)であるか、何らかの理由でパディングされています。


1
「パッド入り」とはどういう意味ですか?
雨水

ファイルを特定の長さにするための余分なバイト(通常はヌル(ゼロ))。これは、ファイル転送ブロックサイズ(xmodemなど)のアーティファクトでしたが、現代の世界では発生しません。暗号署名でもあります。(ファイルがないため、これらの248バイトが何であるかわかりません。)
リッキービーム14

0

私も同じ問題を抱えていました。binモードを使用せずにWindowsからUnixサーバーにファイルをコピーすると、問題が発生しました。この問題を解決する最善の方法は、ファイルをビンモードで転送することでした。


(1)この情報はすでにコメントで提示されています。大丈夫ですが、…(2)コメントには、この回答よりも詳細な情報が含まれています。(3)あなたが話していることを説明することにより、この答えを改善する必要があります。コメントで返信しないでください。回答を編集して、より明確で完全なものにします。
スコット

0

Linux .zipでも4GBを超えるファイルで同じ問題がonly DEFLATED entries can have EXT descriptor発生し、エラーが発生しました。

コマンド7z xは私の問題をすべて解決しました。

ただし、このコマンド7z xは、現在のディレクトリをルートとするすべてのファイルを抽出することに注意してください。このオプション-oにより、出力ディレクトリを指定できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.