Błąd dodatkowych bajtów podczas rozpakowywania pliku

28

Kiedy wchodzę unzip ../founation-latest.zip, wyświetla to:

ostrzeżenie [../foundation-latest.zip]: 248 dodatkowych bajtów na początku lub w pliku zip (próba przetworzenia i tak)

Plik ma rozmiar 138 KB. Rozpakowuje się poprawnie, ale dlaczego pojawia się ten błąd?

woda deszczowa 11
źródło
2
Jedną z możliwych przyczyn jest to, że na jednym etapie podróży do systemu został on przeniesiony ftpw trybie ASCII zamiast w trybie BINARNYM i dodano kilka bajtów. Jeśli używałeś ftpna dowolnym etapie, uruchom ftpponownie, używając polecenia „bin” przed każdym „put” lub „get”.
Mark Plotnick
Na początku może mieć złośliwy ładunek. To wrogi internet. Uważaj na narzędzie do rozpakowywania, którego używasz do otwierania takiego pliku zip.
jbrahy
W obecnych odpowiedziach jest wiele przypuszczeń, ponieważ istnieje wiele możliwych przyczyn. Pomocne byłoby posiadanie linku lub kopii danego pliku.
duozmo
Jeśli chodzi o potencjalnie złośliwą dodatkową ładowność: przy takim rozmiarze możesz przesłać plik do virustotal.com, aby go sprawdzić - na wypadek, gdyby nie było tam żadnych danych osobowych. Jednak nie martwię się zbytnio o wirusy w Linuksie, tylko jeśli skopiujesz oryginalny plik gdzie indziej. (Zawsze możesz ponownie spakować plik, jeśli uważasz, że dane są kompletne.)
Ned64
Potwierdzenie tego jest problemem. Próbowałem utworzyć kopię zapasową przestrzeni plików iTunes zarówno w przypadku, jak zipi przy użyciu ditto. Podane unzip(do 10.11) nie powiodło się zarówno z nimi, jak i z 7za. Rozpakowanie MacOS po prostu nie lubi (dużych?) Plików zip.
Otheus

Odpowiedzi:

37

Mój problem polegał na tym, że próbowałem użyć polecenia „rozpakuj” w systemie MAC OSX, który nie obsługuje plików skompresowanych za pomocą PKZIP.

Byłem w stanie brew install p7zipi rozpakować za pomocą polecenia 7za x some_file.zip.

Pierwotnie znalazłem rozwiązanie w tym artykule: need-pk-kompatybil-v4-5-can-do-v2-1

duyker
źródło
4
Pobrałem maszynę wirtualną z systemem Windows z witryny microsoft.com i było to rozwiązanie do rozpakowywania.
sod
1
Może to również dotyczyć rozpakowywania w systemie Linux (w moim przypadku: UnZip 6.00 z 20 kwietnia 2009 r.,
Autorstwa
2
Warto również wspomnieć, że jest nieco szybszy i pokazuje postęp.
previous_developer
Również p7z obsługuje większe pliki i pliki z nowszym zipem
Konrads
Ten sam problem dzisiaj na obrazie linuksowym AWS. Pobrałem p7zip RPM z timeoff.wsisiz.edu.pl/rpms.html, a archiwum przetestowane i rozpakowane bez problemu.
koła łańcuchowe
23

Znalazłem ten wątek, który miał podobny problem. Raport o błędzie jest zatytułowany: rozpakowanie kończy się niepowodzeniem na ZIP 5,4 GB z „dodatkowymi bajtami na początku lub w pliku zip” . Jedną z sugerowanych poprawek było użycie tego polecenia w .zippliku.

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

Przykładowy bieg

$ 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

suwak -FF

fragment strony podręcznika zip

       -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.
              ...
slm
źródło
3

Ten typ błędu widziałem już wcześniej, gdy archiwum zip było przekazywane za pośrednictwem usługi internetowej, która miała problemy. Po bezpośrednim sprawdzeniu pliku zip, znalazłem komunikat o błędzie z serwisu internetowego wysłany przed plikiem zip.

Możesz spróbować sprawdzić plik zip jako tekst i sprawdzić, czy z przodu pojawi się coś interesującego.

Michael Kohne
źródło
3

Właśnie otrzymałem to ostrzeżenie. W moim przypadku było to spowodowane pobraniem go za pomocą „curl -i”, co spowodowało pojawienie się nagłówków http na początku pliku zip. głupi ja. Na pewno nie będzie to przyczyną / rozwiązaniem we wszystkich przypadkach, ale może pomoże komuś ...

dknaus
źródło
2

Może to być samorozpakowujące się archiwum (Windows .exe) lub zostało z jakiegoś powodu uzupełnione.

Ricky Beam
źródło
1
Co rozumiesz przez „wyściełany”?
woda deszczowa 11
Dodatkowe bajty (zwykle zero (zero)), aby plik miał określoną długość. Był to artefakt wielkości bloku transferu plików (np. Xmodem), ale we współczesnym świecie tak się nie dzieje. Może to być również podpis kryptograficzny. (Nie mam pliku, więc nie wiem, co to za 248 bajtów.)
Ricky Beam
0

Też miałem ten sam problem. Zauważyłem problem, gdy kopiowałem pliki z systemu Windows na serwer Unix bez korzystania z trybu bin. Najlepszym sposobem rozwiązania tego problemu było przesłanie plików w trybie bin.

Amit
źródło
(1) Informacje te zostały już przedstawione w komentarzu . Zgadza się, ale… (2) komentarz zawiera bardziej szczegółowe informacje niż ta odpowiedź. (3) Powinieneś poprawić tę odpowiedź, opisując, o czym mówisz. Proszę nie odpowiadać w komentarzach; edytuj swoją odpowiedź, aby była jaśniejsza i bardziej kompletna.
Scott,
0

Miałem ten sam problem w systemie Linux z .zipplikiem większym niż 4 GB, co spotęgowało only DEFLATED entries can have EXT descriptorbłąd.

Polecenie 7z xrozwiązało jednak wszystkie moje problemy.

Uważaj jednak, polecenie 7z xwypakuje wszystkie pliki ze ścieżką zakorzenioną w bieżącym katalogu. Opcja -opozwala określić katalog wyjściowy.

Serge Stroobandt
źródło