Введение

Снова здравствуй, мой дорогой читатель. Сегодня будем вспоминать сжатие дисков. Во времена, описываемые в моих предыдущих постах, передо мной остро стояла проблема нехватки дискового пространства. Играть хотелось, а места для игр не хватало. Решение было найдено мной в справочной системе Windows (тогда она была весьма толковой и подробной).

Программы сжатия дисков были доступны для:

  • MS-DOS старше 5 версии
  • PC-DOS старше 5 версии
  • Windows 3.x
  • Windows 95
  • Windows 98
  • Windows Me только сжатие гибких дисков
  • OS/2 старше 2 версии
  • OS/2 Warp
  • Novell NetWare 3.x. использовала NetSqueeze

Речь пойдет о сжатии дисков программами Stacker 4 и DriveSpace 3. Именно их я использовал в годы острой нехватки свободного пространства. Суть сжатия заключается в создании на диске файла сжатого диска, при этом сам файл монтировался в систему и получал букву как обычный диск.

  • Под сжатие можно отдать весь диск или его часть.
  • Размер файла сжатого диска можно менять в обе стороны.
  • Несущий диск можно скрыть.
  • Можно сжать системный диск и загружаться с него.
  • Большинство загрузочных дисков DOS корректно воспринимают сжатые диски
  • Поддерживаются только FAT12 и FAT16
  • Сжать можно как жесткий, так и гибкий диск.

Повреждение данных

Потеря данных конечно возможна. Обусловлена она в основном двумя факторами и оба человеческие. Первый — это безусловно, отключение компьютера до сброса дискового кэша. Оно и сейчас губительно для данных, но в случае со сжатыми данными внутри одного файла, ситуация обостряется. Второй фактор: если диск не примонтирован (например был не загружен драйвер сжатия), пользователь вместо содержимого сжатого диска лишь файл большого размера. И этот файл ничто не мешает удалить, потеряв всё.

Stacker

Alt text

После установки я сдал системный диск и второй диск, размером 1 Гб. На него я буду записывать файлы с целью определить, сколько данных поместится. На снимке ниже в левой панели виден сжатый диск С, а на правой панели несущий диск D. На нем я выделил файл сжатого диска. Выделен файл сжатого диска.

Alt text

Статистика сжатия диска С:

Alt text

Теперь суть эксперимента: у меня есть диск с файлами: 2Гб разных файлов. И есть сжатый 1 Гб диск. Проверим сколько поместится. Начинаю копирование:

Alt text

В процессе копирования система докладывает об окончании свободного места на диске. Коэффициент сжатия 2 к 1:

Alt text

На этом снимке хорошо видно, что 1 299 Мб полезных данных заняли 1 702 Мб, заняв фактически 857 Мб. Создавая сжатый диск размером, близким к пределу FAT16 мы попадаем на потери, вызванные большим размером кластера: 32КБ. Впрочем, больших дисков тогда и не водилось.

Alt text

DriveSpace 3

Корпорация Microsoft так-же не стояла на месте и совершенствовала свой продукт. Сложно сказать, у кого лучше получилось. Основные отличия появились именно в DriveSpace 3: появился Агент сжатия, оптимизирующий соотношение скорость/сжатие и на выбор три алгоритма сжатия. Начнем со сжатия диска:

После сжатия я начинаю копировать данные до получения сообщения об исчерпании свободного пространства.

Alt text

Система выдала долгожданную ошибку, смотрим свойства диска:

Alt text

При использовании стандартного сжатия, коэффициент 1,67 к 1 и свободно на диске 1,2 МБ

Но и тут у нас есть выход: Использовать Агент сжатия. Запускаем, разрешив использовать только HiPack. Это хороший алгоритм сжатия, обеспечивающий сильную компрессию и хорошую производительность. Кстати, можно совмещать два алгоритма в зависимости от использования файлов.

Выбор метода сжатия:

Alt text

Результат работы агента сжатия:

Alt text

Отчет о сжатии:

Alt text

Повторю оптимизацию, разрешив использование UltraPack для всех файлов:

Обратите внимание: при переходе со стандартного сжатия (1,67 к 1) на HiPack (1,8 к 1), мы освободили дополнительно 109 МБ пространства. Но при переходе на алгоритм UltraPack получив коэффициент 2,02 к 1 мы не получили дополнительного пространства: те — же 109 Мб. Коэффициент сжатия вырос, но мы достигли лимита FAT16.

Потери на остатках кластеров

На этом снимке хорошо видно, что 1,47 Гб полезных данных заняли 2 Гб, заняв фактически 1 Гб. И мы опять уперлись в предел FAT 16 и попали на большой размер кластера.

Alt text

Получается, что сжатие диска обязывает нас использовать FAT16, а это вызывает потери на остатках кластера. При этом стоит напомнить, что за счет сжатия мы всё равно остаемся в плюсе.

FAT32 экономит пространство

FAT32 пришла на смену FAT16 в августе 1996 года (Windows95 OSR2).

При наличии дисков больше 2 Гб имеет смысл задуматься об использовании FAT32. На этом снимке диск FAT16 2Гб. Размер кластера 32КБ. Обратите внимание на свободное пространство диска D до конвертации в FAT32.

А теперь посмотрите на него после конвертации: сэкономили почти четверть: это был переход на FAT32 с кластером 4Кб.

Alt text

Хорошо потери на остатках кластеров визуализирует Partition Magic:

Alt text

Вместо заключения

Описанные в статье методы сжатия давно уже неактуальны, в связи с ростом объема носителя. Сжатие дисков теперь стало возможностью файловых систем. Принцип контейнерного хранения теперь используется в шифровании.

Интересно, у сжатых дисков менялася процесс визуализации дефрагментации диска. Вот как он выглядит для несжатого диска:

А вот так процесс выглядит для сжатого:

Бонусные скриншоты Stacker

Бонусные скриншоты DriveSpace 3