Получение ошибок при попытке распаковать разделенные zip-файлы

Версия ОС:

root@triiage_1:~/zip# cat /etc/os-release
NAME="Ubuntu"
VERSION="18.04.4 LTS (Bionic Beaver)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 18.04.4 LTS"
VERSION_ID="18.04"

версия zip :

root@triiage_1:~# zip --version
Copyright (c) 1990-2008 Info-ZIP - Type 'zip "-L"' for software license.
This is Zip 3.0 (July 5th 2008), by Info-ZIP.
Currently maintained by E. Gordon.  Please send bug reports to
the authors using the web page at www.info-zip.org; see README for details.

Latest sources and executables are at ftp://ftp.info-zip.org/pub/infozip,
as of above date; see http://www.info-zip.org/ for other sites.

Compiled with gcc 6.3.0 20170415 for Unix (Linux ELF).

У меня есть 2 файла cpio файлов

root@triiage_1:~/zip# ll -h;file *
total 111M
drwxr-xr-x  2 root root 4.0K Feb 28 09:12 ./
drwx------ 15 root root  12K Feb 28 09:12 ../
-rw-r--r--  1 root root  56M Feb 28 09:09 kernel1.cpio
-rw-r--r--  1 root root  56M Feb 28 09:09 kernel2.cpio
kernel1.cpio: ASCII cpio archive (SVR4 with no CRC)
kernel2.cpio: ASCII cpio archive (SVR4 with no CRC)

Я сжимаю их с помощью zip и разделяю zip-файл, по 15 МБ на каждую часть файл.

root@triiage_1:~/zip# zip xk.zip -s 15m kernel1.cpio kernel2.cpio
  adding: kernel1.cpio (deflated 1%)
  adding: kernel2.cpio (deflated 1%)
root@triiage_1:~/zip# ll -h
total 220M
drwxr-xr-x  2 root root 4.0K Feb 28 09:23 ./
drwx------ 15 root root  12K Feb 28 09:12 ../
-rw-r--r--  1 root root  56M Feb 28 09:09 kernel1.cpio
-rw-r--r--  1 root root  56M Feb 28 09:09 kernel2.cpio
-rw-r--r--  1 root root  15M Feb 28 09:22 xk.z01
-rw-r--r--  1 root root  15M Feb 28 09:22 xk.z02
-rw-r--r--  1 root root  15M Feb 28 09:22 xk.z03
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z04
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z05
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z06
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z07
-rw-r--r--  1 root root 4.5M Feb 28 09:23 xk.zip
root@triiage_1:~/zip# file *
kernel1.cpio: ASCII cpio archive (SVR4 with no CRC)
kernel2.cpio: ASCII cpio archive (SVR4 with no CRC)
xk.z01:       Zip multi-volume archive data, at least PKZIP v2.50 to extract
xk.z02:       data
xk.z03:       data
xk.z04:       data
xk.z05:       data
xk.z06:       data
xk.z07:       data
xk.zip:       data

Удалите оригинальный kernel1.cpio kernel2.cpio

root@triiage_1:~/zip# rm kernel1.cpio kernel2.cpio
root@triiage_1:~/zip# ll -h
total 110M
drwxr-xr-x  2 root root 4.0K Feb 28 09:23 ./
drwx------ 15 root root  12K Feb 28 09:12 ../
-rw-r--r--  1 root root  15M Feb 28 09:22 xk.z01
-rw-r--r--  1 root root  15M Feb 28 09:22 xk.z02
-rw-r--r--  1 root root  15M Feb 28 09:22 xk.z03
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z04
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z05
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z06
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z07
-rw-r--r--  1 root root 4.5M Feb 28 09:23 xk.zip

Распакуйте xk.zip с помощью «7z e xk.zip», успешно.

root@triiage_1:~/zip# 7z e xk.zip

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz (406E3),ASM,AES-NI)

Scanning the drive for archives:
1 file, 4718352 bytes (4608 KiB)

Extracting archive: xk.zip
--
Path = xk.zip
Type = zip
Physical Size = 4718352
Embedded Stub Size = 4
Total Physical Size = 114818832
Multivolume = +
Volume Index = 7
Volumes = 8

Everything is Ok

Files: 2
Size:       115745324
Compressed: 114818832
root@triiage_1:~/zip# ll -h
total 220M
drwxr-xr-x  2 root root 4.0K Feb 28 09:24 ./
drwx------ 15 root root  12K Feb 28 09:12 ../
-rw-r--r--  1 root root  56M Feb 28 09:09 kernel1.cpio
-rw-r--r--  1 root root  56M Feb 28 09:09 kernel2.cpio
-rw-r--r--  1 root root  15M Feb 28 09:22 xk.z01
-rw-r--r--  1 root root  15M Feb 28 09:22 xk.z02
-rw-r--r--  1 root root  15M Feb 28 09:22 xk.z03
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z04
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z05
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z06
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z07
-rw-r--r--  1 root root 4.5M Feb 28 09:23 xk.zip

Снова удалите kernel1.cpio kernel2.cpio.

root@triiage_1:~/zip# ll -h
total 110M
drwxr-xr-x  2 root root 4.0K Feb 28 09:37 ./
drwx------ 15 root root  12K Feb 28 09:28 ../
-rw-r--r--  1 root root  15M Feb 28 09:22 xk.z01
-rw-r--r--  1 root root  15M Feb 28 09:22 xk.z02
-rw-r--r--  1 root root  15M Feb 28 09:22 xk.z03
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z04
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z05
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z06
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z07
-rw-r--r--  1 root root 4.5M Feb 28 09:23 xk.zip

Попробуйте объединить разделенные zip-файлы xk.zip xk.z01 ~ z07 в один yk.zip, затем разархивируйте его, обнаружите ошибки.

root@triiage_1:~/zip# zip -s0 xk.zip -O yk.zip
 copying: kernel1.cpio
 copying: kernel2.cpio
root@triiage_1:~/zip# ll -h
total 160M
drwxr-xr-x  2 root root 4.0K Feb 28 09:47 ./
drwx------ 15 root root  12K Feb 28 09:28 ../
-rw-r--r--  1 root root  15M Feb 28 09:22 xk.z01
-rw-r--r--  1 root root  15M Feb 28 09:22 xk.z02
-rw-r--r--  1 root root  15M Feb 28 09:22 xk.z03
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z04
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z05
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z06
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z07
-rw-r--r--  1 root root 4.5M Feb 28 09:23 xk.zip
-rw-r--r--  1 root root  51M Feb 28 09:47 yk.zip
root@triiage_1:~/zip# unzip yk.zip
Archive:  yk.zip
  inflating: kernel1.cpio
  error:  invalid compressed data to inflate
  inflating: kernel2.cpio
  error:  invalid compressed data to inflate
root@triiage_1:~/zip# ll -h
total 211M
drwxr-xr-x  2 root root 4.0K Feb 28 09:47 ./
drwx------ 15 root root  12K Feb 28 09:28 ../
-rw-r--r--  1 root root  31M Feb 28 09:09 kernel1.cpio
-rw-r--r--  1 root root  21M Feb 28 09:09 kernel2.cpio
-rw-r--r--  1 root root  15M Feb 28 09:22 xk.z01
-rw-r--r--  1 root root  15M Feb 28 09:22 xk.z02
-rw-r--r--  1 root root  15M Feb 28 09:22 xk.z03
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z04
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z05
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z06
-rw-r--r--  1 root root  15M Feb 28 09:23 xk.z07
-rw-r--r--  1 root root 4.5M Feb 28 09:23 xk.zip
-rw-r--r--  1 root root  51M Feb 28 09:47 yk.zip

Вот мое беспокойство.

а. размер kernel1.cpio был изменен с 56M на 31M, что-то вроде потеряно.

б. размер kernel2.cpio был изменен с 56M на 21M, что-то вроде потеряно.

с. общий размер разделенных zip-файлов xk.zip xk.z01 ~ z07 составляет около 110 МБ, почему объединенный zip-файл yk.zip составляет всего 51 МБ?

Я ошибаюсь?

0
задан 28 February 2020 в 08:47

1 ответ

Судя по личному опыту, в некоторых случаях 7z не поддерживает многокомпонентные zip-архивы.

unzip не поддерживает составные архивы. zip 3.0 может объединять архивы, состоящие из нескольких частей.

Поэтому сначала из составных архивов с zip 3.0 сделать однофайловый архив следующим образом:

$ zip -s- xk.zip -O xk_full.zip

используя знак - после параметра командной строки -s без пробел объединяет все архивы, состоящие из нескольких частей, и записывает их в виде единого zip-файла, имя файла которого обозначается опцией -O.Опция

-s предназначена для разделения на несколько файлов, но если указан размер 0 или отрицательный (в нашем случае -), то вместо разбиения соединить многочастные архивы.

Затем используйте unzip для распаковки только что созданного однофайлового архива.

$ unzip xk_full.zip

К вашему сведению, из руководства по распаковке:

Архивы, состоящие из нескольких частей, пока не поддерживаются, кроме как в сочетании с zip. (Все части должны быть объединены вместе по порядку, а затем необходимо выполнить команду zip -F (для zip 2.x) или zip -FF (для zip 3.x) на объединенном архиве, чтобы «исправить» его. Также, zip 3.0 и более поздние версии могут объединять составные (разделенные) архивы в комбинированный однофайловый архив с помощью zip -s-inarchive -O outarchive.Дополнительную информацию см. на странице руководства zip 3.)

0
ответ дан 11 June 2020 в 05:59

Другие вопросы по тегам:

Похожие вопросы: