Архитектура и принцип действия WIM-файлов

Введение

Начиная с Widows Vista\Server2008 была введена новая архитектура установки операционной системы, построенная на новых принципах развертывания. О файлах ответов, WDS, и других нововведениях было рассказано в соответствующих статьях, здесь же речь пойдет о wim-файлах, или же образах, которые применяются при установке операционной системы.
WIM- это специальный формат файлового образа диска, предназначенный для хранения операционных систем Windows.
Таким образом, файл WIM представляет собой образ, который хранит в себе данные установочные файлы операционной системы. WIM является файловым образом, то есть представляет собой коллекция каталогов и файлов, в отличие от посекторного образа, который хранит данные на секторном уровне.
Помимо этого, WIM-образ хранит в себе метаданные, которые представляют собой списки доступа ACL, атрибуты и так далее. Таким образом, WIM-образ представляет собой точный «слепок» содержимого диска.

Возможности WIM-файлов

• Простота редактирования.
Так как WIM-файл представляет собой файловый образ, то его редактирование не вызывает трудностей.
• Возможность хранения нескольких образов в одном WIM-файле
• Аппаратная независимость.
Если форматы файловых образов, использующие посекторный принцип работы, привязаны к HAL, то WIM-образы не зависят от аппаратного обеспечения, за исключением микропроцессорных архитектур, но и то это применимо только в том случае, если в WIM-файле хранится образ операционной системы Windows.
• Поддержка алгоритм сжатия LZH, за счет чего данные в них занимают меньше места на диске.
• Исключают избыточность хранения данных с целью экономии дискового пространства.
Допустим, в WIM-файле хранится несколько образов редакций операционной системы Windows. Вполне естественно, что файлы этих редакций отличаются друг от друга максимум на 30%. Так вот, WIM-файл хранит эти данные следующим образом. Создается специальная база данных, которая представляет собой WIM-аналогию MBR, однако она учитывает число повторений файла. Таким образом, если в этот же WIM-файл добавляется точно такой же файл, что уже есть в базе данных, то будет добавлен не сам файл, а всего лишь ссылка на него. При внесении в образ изменений (то есть при изменении одного из дублирующийся через таблицу файлов), в образе физически создается измененный файл.

Архитектура WIM-файлов

• Заголовок WIM-файла.
Содержит в себе метаинформацию, касающуюся всего WIM-файла (версия, размер, тип сжатия)
Пример:
Path: I:\sources\install.wim
GUID: {e749fe93-ac5d-4144-985a-8106d6814592}
Image Count: 9
Compression: LZX
Part Number: 1/1
Attributes: 0xc
Integrity info
Relative path junction
• Файловый ресурс.
Хранит в себе собственно файлы и каталоги, входящие в WIM-файл
• Ресурс метаданных.
Хранит метаданные о файлах и каталогах, входящих в конкретный образ в WIM-файле. Количество этих ресурсов равно количеству WIM-файлов, входящих в образ.
• Таблица поиска.
Очень важный компонент WIM-файла, который обеспечивает исключение повторения идентичных данных в WIM-файле
• XML-данные
Дополнительная информация об образе. Если образ представляет собой образ раздела с Windows, то там хранятся сведения о версии системы и ее архитектуре
• Таблица целостности
Хранит хэш для каждого файла, содержащегося в WIM-файле. Предназначена для проверки целостности данных и WIM-файла в целом.

Заключение

В данной статье была рассмотрена архитектура и принцип действия WIM-файлов. В дальнейшем будут опубликованы статьи о применении WIM файлов и о утилитах для их редактирования.