Возможно, кому-либо пригодится или понравиться еще один эффективный способ упаковки образов дисков. Он основан на использовании сторонних плагинов для известного архиватора 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 смог их проанализировать.
Если у кого-то есть вопросы – с удовольствием отвечу.