Показать сообщение отдельно
Старый 01.05.2020, 09:06   #1
Person Of The Community
 
Регистрация: 23.04.2020
Пол: Неизвестно
Сообщений: 5
Aniskin на пути к лучшему
По умолчанию Альтернативный метод упаковки образов в 7-Zip             

Возможно, кому-либо пригодится или понравиться еще один эффективный способ упаковки образов дисков. Он основан на использовании сторонних плагинов для известного архиватора 7-Zip. Речь идет о плагине Iso7z. Плагин расширяет функциональность программы 7-Zip и позволяет открывать различные образы дисков как архивы и дополнительно содержит в себе специальный фильтр RawSplitter, заточенный конкретно под упаковку сырых образов дисков (поддерживается упаковка образоа в форматах CCD/IMG, CDI, CUE/BIN, GDI, MDS/MDF, NRG).

Принцип действия фильтра аналогичен принципу действия известной утилиты ECM – при упаковке удаляется служебная информация, которая может быть восстановлена при распаковке. За счет этого удаления можно сэкономить немало дискового пространства. Также фильтр разделяет на отдельные потоки дорожки с данными и аудиодорожки, что позволяет упаковывать эти потоки с оптимальными для них настройками сжатия.

Примеры:

Диск:
Размер: 299 373 194
Размер с новым методом упаковки: 223 477 207

Диск:
Размер: 403 107 901
Размер с новым методом упаковки: 312 856 400

Диск:
Размер: 379 361 177 + 380 540 643
Размер с новым методом упаковки: 321 602 872 + 322 550 662

Единственный видимый мною минус используемого метода – данный архив может быть распакован программой 7-Zip только при условии того, что в нее установлен плагин Iso7z. Также архив может быть распакован любой программой, поддерживающей установку сторонних плагинов для 7-Zip, например, FAR или Total Commander.

Как создавать такие архивы.

Использование нового фильтра чуть-чуть сложнее обычной упаковки в 7-Zip. Это связано с тем, что использование фильтра требует полноценного анализа упаковываемых файлов. И поэтому помимо установки плагина Iso7z требуется установка дополнительного плагина Smart7z. Именно Smart7z занимается анализом упаковываемых файлов. Т.е. для упаковки нужно установить два плагина: Iso7z и Smart7z (напомню, что для распаковки нужен только Iso7z).

Установка плагинов достаточно тривиальна. В папке, в которую установлена программа 7-Zip, необходимо создать папку Formats. После чего в созданную папку необходимо скопировать сами плагины (32 или 64 битные версии в зависимости от разрядности программы 7-Zip). Также нужно заменить файл Smart7z.ini следующим содержимым:

Код:
::SET %LZMA% LZMA:x9:mt2:d128M
::SET %LZMA2% LZMA:x9:mt1:d128M
::SET %PPMD% LZMA:x9:mt2:d128M
   
:Default: m0=LZMA:x9:d128m:mt1 s=4g
   
:RawSplitter-Audio: m0=RawSplitter m1=LZMA:x9:d128m:mt1 m2=Delta:4 m3=LZMA:x9:d128m:lc1:lp2:mt1 m4=LZMA:x9:d32m:fb273 mb0s0:1 mb0s1:2 mb2s0:3 mb0s2:4 s=4g
   
:RawSplitter: m0=RawSplitter m1=LZMA:x9:d128m:mt1 m2=LZMA:x9:d32m:fb273 mb0s0:1 mb0s2:2 s=4g
   
:sorting:
После этого можно попробовать упаковать образ диска новым способом. Для этого нужно выбрать файл или файлы с образом дисков и вызвать окно упаковки. Но вместо привычного формата 7z нужно выбирать формат Smart7z.

После нажатия на OK управление будет передано плагину Smart7z, который совместно с фильтром RawSplitter проанализирует упаковываемые файлы, выберет нужные кодеки (в соответствии с настройками файла Smart7z.ini) и создаст более компактный 7z файл. После упаковки не забудьте протестировать архив.

Важно! При упаковке образов, имеющих индексный файл (CCD/IMG, CUE/BIN, GDI, MDS/MDF) нужно упаковывать не только сами файлы образов, но и индексные файлы, что бы RawSplitter смог их проанализировать.

Если у кого-то есть вопросы – с удовольствием отвечу.
Aniskin вне форума  
Ответить с цитированием
Эти 3 пользователи сказали Спасибо Aniskin за это сообщение: