Сегодня стационарные компьютеры начинают медленно уходить на задний план. Их место прочно занимают ноутбуки, а затем идут и планшетные компьютеры. Сочетание мобильности, высокой производительности и высокой скорости получения информации – все это является несомненным плюсом планшетов. Однако, и своя ложка дегтя у планшетов есть: это малый размер жестких дисков. Если диск 16, 32 и даже 64 ГБ, вовсе не хочется разбрасываться ценным пространством на установочные файлы. С выходом Windows 8.1 Update появилось решение этой проблемы – WIMBoot – новый способ установки ОС, обеспечивающий большее свободное пространство для пользователя.
Обзор технологии
Итак, что же такое WIMBoot (Windows Image Boot)? Это технология, предназначенная для устройств с малым объемом жестких дисков, с помощью которой обеспечивается большее пространство под пользовательские данные и приложения после установки операционной системы. Сразу перечислю ограничения при использовании WIMBoot:
- WIMBoot может быть использован только на компьютерах с UEFI, запущенных в режиме UEFI. Режим совместимости с BIOS не поддерживается.
- WIMBoot предназначен для устройств с малым объемом жестких дисков SSD или eMMC.
- WIMBoot доступен только Windows 8.1 Update и не поддерживается для серверных ОС. WIMBoot доступен для всех архитектур процессоров (amd64, x86, и ARM).
Чем отличается WIMBoot от обычной установки Windows? При обычной установке Windows каждый установочный файл записывается на диск дважды: в сжатой форме на случай восстановления и в разархивированном виде для использования. Таким образом, размер пространства доступного пользователю, уменьшается.
Стандартная схема разделов (без WIMBoot)
При установке Windows с использование WIMBoot, файлы записываются на жесткий диск только однажды и в сжатом формате. Далее к разделу Windows применяются файлы-указатели (Pointer files), которые ссылаются на сжатые файлы в разделе образов.
Схема разделов при использовании WIMBoot
В чем преимущества WIMBoot? C технической точки зрения, пользователь не заметит разницы в работе системы. Все файлы пользователя будут видны и доступны без каких-либо преобразований. При этом, место на устройства будет значительно больше. Для примера, при обычной установке Windows 8.1 на 16 ГБ жесткого диска, пользователю будут доступны примерно 7 ГБ. В случае установки системы из образа WIMBoot, свободное пространство увеличится, и пользователю будет доступно уже порядка 12 ГБ.
Теперь попробуем самостоятельно создать образ WIMBoot и развернуть его. Для этого понадобится образ Windows 8.1 Update, Windows Assessment and Deployment Kit для Windows 8.1 и загрузочный диск Windows PE 5.1. Для проверки версии Windows PE в среде wpeinit необходимо запустить редактор реестра (regedit) и проверить следующий регистрационный ключ:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinPE
Если версия WinPE будет 5.1, Windows PE можно не обновлять.
Начинаем с установки Windows ADK Для начала установите следующие компоненты из Windows ADK для Windows 8.1: это Deployment Image and Management и PE Environment (скачать). Создавать образ WIMBoot можно как на компьютере под управлением Windows 8 и Windows 8.1, так и на Windows Server 2012.
После того, как Windows ADK установлен, необходимо запустить программу Deployment Image and Management с правами администратора. Именно с ней нам и предстоит работать. Так же, для удобства, будем использовать следующую систему каталогов:
C:Images – каталог, в котором хранятся образы
C:mount – каталог, в который будем монтировать образы
C:MSU – каталог, в котором сохраним архивы с обновлениями
В каталог C:Images скопируем файл install.wim из установочного образа Windows 8.1.
Прежде чем детально описывать процесс создания образа WIMBoot, я перечислю основные шаги, которые нужно проделать.
- Создание образа WIMBoot
- Создание временной копии образа для установки Windows
- Отделение образа для восстановления от главного образа Windows
- Оптимизация образа для WIMBoot
- Создание загрузочного диска WinPE 5.1
- Добавление WIMBoot на загрузочный диск
- Развертывание WIMBoot
- Форматирование жесткого диска по схеме разделов WIMBoot
- Добавление Windows и файлов восстановления
- Защита папки WIMBoot
Далее подробно рассмотрим каждый из этих шагов. В конце статьи в качестве дополнительных материалов приведены подробные описания процессов обновления образа Windows, образа WinPE, а также инструкция по проверке финального образа WIMBoot.
1. Создание образа WIMBoot
С помощью обновленных файлов Windows, создадим образ WIMBoot.
1.1 Создание временной копии образа для установки Windows
Скопируем обновленный файл install.wim в новый временный файл. Именно этот файл будет использоваться для установки WIMBoot.
Copy C:Imagesinstall.wim C:Imagesinstall_temp.wim
Создадим каталог и смонтируем туда образ.
md C:mountWindows
Dism /Mount-Image /ImageFile:"C:Imagesinstall_temp.wim" /Index:1 /MountDir:C:mountWindows
1.2 Отделение образа для восстановления от главного образа Windows
Переместим образ Windows RE (winre.wim) из смонтированного каталога. Добавлю пару слов о Windows RE. Windows Recovery Environment это расширяемая платформа для восстановления основанная на Windows PE. В процессе создания образа WIMBoot образ Windows RE рекомендуется отделить от основного образ Windows. Иначе образ потребует еще примерно 200 МБ свободного пространства на жестком диске, которое не будет использовано. Также хочу отметить, что файл winre.wim обычно скрыт, поэтому его необходимо сделать видимым.
attrib –s -h C:mountWindowsWindowsSystem32Recoverywinre.wim
move C:mountWindowsWindowsSystem32Recoverywinre.wim C:imageswinre.wim
1.3 Оптимизация образа для WIMBoot
Оптимизируем образ WIMBoot.
Dism /Optimize-Image /Image:C:mountWindows /WIMBoot
Размонтируем образ
Dism /Unmount-Image /MountDir:C:mountWindows /Commit
2. Создание загрузочного диска WinPE 5.1
Создаем рабочую копию файлов Windows PE. Доступны на выбор две версии x86 или amd64.
copype amd64 C:WinPE_amd64
Если это необходимо, обновляем WinPE 5.0 до WinPE 5.1. Подробное описание процесса обновления смотрите в приложении.
Следующим этапом создадим загрузочный диск WinPE 5.1. Тут возможно несколько вариантов. В самом простом варианте можно записать файлы на обычную флешку. Размер флеш-карты лучше выбрать 16 ГБ и больше, т.к. понадобится в дальнейшем делать некоторые манипуляции с образом, для которых понадобится дополнительное место. Создать загрузочную флешку можно с помощью команды:
MakeWinPEMedia /UFD C:WinPE_amd64 F:
В моем случае, WIMBoot тестировался на виртуальной машине Hyper-V. Чтобы сымитировать стандартный процесс установки WIMBoot на планшет с флешки, я буду использовать виртуальный жесткий диск и опишу процесс его создания. Для того, чтобы записать образ Windows PE на VHD, воспользуемся инструментом diskpart и введем следующие команды:
Diskpart
create vdisk file=”C:WinPE.vhdx” maximum=16000
attach vdisk
create partition primary
assign letter=V
format fs=ntfs quick
exit
Далее запишем файлы WinPE на созданный нами виртуальный диск
MakeWinPEMedia /UFD C:WinPE_amd64 V:
Снова запустим diskpart и завершим создание диска.
Diskpart
select vdisk file=”C:WinPE.vhdx”
detach vdisk
exit
3. Добавление WIMBoot на загрузочный диск
После того, как создан образ WinPE 5.1 и подготовлен образ WIMBoot, программу Deployment Image and Management можно закрыть. Продолжим работать мы уже без нее. Теперь на диск с WinPE 5.1 необходимо добавить файлы образа WIMBoot (копируем папку Images целиком). Также, я рекомендую добавить на загрузочный диск несколько скриптов для diskpart, которые сэкономят нам время при создании и развертывание образа WIMBoot. Эти скрипты необязательны, их можно добавить позже или не добавлять к образу совсем.
Добавлять WIMBoot на загрузочный диск можно на абсолютно любом компьютере или же виртуальной машине, главное, чтобы они соответствовали ограничениям, которые накладывает технология WIMBoot. Я продолжу работать с виртуальной машиной и создам в Hyper-V виртуальную машину второго поколения (Generation 2), которая поддерживает технологию UEFI. В качестве образа для установки операционной системы я укажу созданный ранее виртуальный диск WinPE.vhdx. Образ WinPE с WIMBoot я создавала на виртуальной машине с размером жесткого диска в 32 ГБ. А устанавливала систему с помощью WIMBoot уже на виртуалку с размером жесткого диска для создаваемой виртуальной машины будет составлять 16 ГБ, чтобы симулировать установку на планшет с маленьким размером жесткого диска. Загружаем виртуальную машину с диска WinPE.vhdx и ждем пока запустится утили wpeinit (может занять несколько минут).
С помощью утилиты diskpart создадим разделы жесткого диска. Можно запустить скрипт, приведенный ниже с помощью команды
diskpart /s C:Createpartition.txt
Проверить нахождения файла скрипта можно запустив утилиту diskpart и команду list volume. Надо указать путь к диску WinPE.
rem == CreatePartitions.txt ==
select disk 0
clean
convert gpt
rem == Создание раздела под средства восстановления ==
create partition primary size=300
format quick fs=ntfs label=”Windows RE tools”
assign letter=”T”
set id=”de94bba4-06d1-4d40-a16a-bfd50179d6ac”
gpt attributes=0x8000000000000001
rem == Создание системного раздела ==
create partition efi size=100
format quick fs=fat32 label=”System”
assign letter=”S”
rem == Создание раздела MSR ==
create partition msr size=128
rem == Создание раздела Windows ==
create partition primary
shrink minimum=10000
format quick fs=ntfs label=”Windows”
assign letter=”W”
rem == Создание образа для восстановления ==
create partition primary
format quiсk fs=ntfs label=”Recovery image”
assign letter=”R”
set id=”de94bba4-06d1-4d40-a16a-bfd50179d6ac”
gpt attributes=0x8000000000000001
list volume
exit
Небольшой комментарий по поводу команды
set id=”de94bba4-06d1-4d40-a16a-bfd50179d6ac”
gpt attributes=0x8000000000000001
Использование приведенного выше скрипта не позволяет пользователю увидеть разделы восстановления через проводник, однако через Disk Management Tools пользователь может эти разделы удалить. Чтобы предотвратить удаление разделов восстановления и нужно использовать вышеприведенную команду.
После выполнения данного скрипта, вы должны увидеть примерно следующее.
В итоге получились вот такие разделы (MSR – резервный раздел Microsoft и в выводе данной команды не отображается):
Далее выполним установку образа. Сначала создадим директорию на диске R и скопируем туда установочный образ.
md R:RI
copy C:Imagesinstall.wim R:RIinstall.wim
Применим образ install.wim на раздел Windows.
dism /Apply-Image /ImageFile:R:RIinstall.wim /Index:1 /ApplyDir:W:
Скопируем инструменты для восстановления на раздел Windows RE.
md T:RecoveryWindowsRE
attrib –s –h W:windowssystem32recoverywinre.wim
copy W:windowssystem32recoverywinre.wim T:RecoveryWindowsREwinre.wim
Скопируем загрузочные файлы с раздела Windows на раздел System. Данный шаг нужен для того, чтобы загружать развернутый образ.
bcdboot W:Windows
Зарегистрируем раздел Windows и раздел восстановления
W:WindowsSystem32reagentc /setosimage /path R:RI /target W:Windows /index 1
W:WindowsSystem32reagentc /setreimage /path T:RecoveryWindowsRE /target W:Windows
Перезагрузим компьютер. При новой загрузке дождемся экрана с началом настройки.
При его появлении необходимо нажать комбинацию CTRL+SHIFT+F3, чтобы перезагрузить компьютер в режиме аудита. После этого компьютер запустит систему под учетной записью локального администратора. В среде Windows 8.1 нужно будет запустить командную строку с правами Администратора и очистить образ. Очистка образа позволит освободить дополнительное место на диске.
dism /Cleanup-Image /Online /StartComponentCleanup
После этого с помощью команды Sysprep подготовим компьютер к использованию и завершим работу.
C:WindowsSystem32Sysprepsysprep /generalize /shutdown /oobe
Запустим компьютер снова в режиме WinPE. Рекомендую запустить утилиту diskpart и команду list volume. У вас должны быть назначены буквы на диск с Windows и на диск WinPE. Все остальные разделы скрыты.
Создадим каталог для временных файлов C:RecyclerScratch и перезахватим образ, но уже с опцией WIMBoot.
DISM /Capture-Image /WIMBoot /ImageFile:"D:Imagesinstall_wimboot.wim" /CaptureDir:C: /Name:"WIMBoot Enterprise_x64 with 8.1 Updates" /ScratchDir:C:RecyclerScratch
После того, как выполнение команды завершится, мы можем выключить компьютер. Теперь на нашем виртуальном диске или на флешке есть установочный образ WIMBoot.
4. Развертывание WIMBoot
Теперь осталось только протестировать образ WIMBoot и убедиться в том, что размер файлов, занимаемых Windows уменьшится. Как уже и говорилось ранее, для установки будет использована виртуальная машина второго поколения, поддерживающая технологию UEFI с объемом жесткого диска в 16 ГБ. В качестве установочного диска используем виртуальный диск WinPE.vhdx и запустим виртуальную машину.
4.1 Форматирование жесткого диска по схеме разделов WIMBoot
Дождемся запуска среды wpeinit, запустим утилиту diskpart и команду list volume. Если на раздел WinPE назначена буква С, рекомендую переназначить ее с помощью следующих команд.
select volume=0
assign letter=”D”
exit
Теперь с помощью утилиты diskpart и приведенного ниже скрипта создадим разделы для установки. Скрипт запустим командой
diskpart /s D:WimCreatePartition.txt
rem == WimCreatePartition.txt ==
select disk 0
clean
convert gpt
rem == Создание системного раздела ==
create partition efi size=100
format quick fs=fat32 label=”System”
rem == Создание раздела MSR ==
create partition msr size=128
rem == Создание раздела Windows ==
create partition primary
shrink minimum=5000
format quick fs=ntfs label=”Windows”
assign letter=”С”
rem == Создание раздела для образов ==
create partition primary
format quick fs=ntfs label=”Images”
assign letter=”M”
set id=”de94bba4-06d1-4d40-a16a-bfd50179d6ac”
gpt attributes=0x8000000000000001
list volume
exit
В итоге должны получить вот такой результат:
4.2 Добавление Windows и файлов восстановления
Создадим папку “Windows Images” в разделе Images. Название папки обязательно должно быть “Windows Images”.
md "M: Windows Images "
Скопируем образ Windows с диска WinPE в папку Windows Images и переименуем его в install.wim, если это необходимо.
copy D:Imagesinstall_update1.wim "M:Windows Imagesinstall.wim"
Применим образ Windows к разделу Windows с помощью команды /WIMBoot. Перед этим создадим каталог для временных файлов, чтобы избежать проблем, связанных с короткими именами файлов.
md C:RecyclerScratch
DISM /Apply-Image /ImageFile:"M:Windows Imagesinstall.wim" /ApplyDir:C: /Index:1 /WIMBoot /ScratchDir:C:RecyclerScratch
Создадим файлы загрузки и настроим их работу в раздел Windows.
C:WindowsSystem32bcdboot C:Windows
Скопируем образ среды восстановления Windows в папку Images
md M:RecoveryWindowsRE
echo f | xcopy D:Imageswinre.wim M:RecoveryWindowsREwinre.wim /h
Зарегистрируем раздел среды восстановления Windows.
C:WindowsSystem32Reagentc /SetREImage /Path M:RecoveryWindowsRE /Target C:Windows
4.3 Защита папки WIMBoot
Осталось защитить разделы образов Windows и проверить полученные результаты. Для установки атрибута «Только для чтения» в среде wpeinit выполним следующие команды
icacls "M:Windows Images" /inheritance:r /T
icacls "M:Windows Images" /grant:r SYSTEM:(R) /T
icacls "M:Windows Images" /grant:r *S-1-5-32-544:(R) /T
Теперь осталось только запустить компьютер и увидеть приятную картинку:
Что же произошло? Теперь свободного диска на разделе Windows стало больше. Это произошло за счет того, что в разделе Windows теперь находятся файлы-указатели, которые ссылаются на образы Windows. При этом пользователь не ощущает разницы в работе: все его файлы работают нормально.
В завершение, хочу дополнительно отметить, что если есть необходимость добавить к образу WIMBoot какие-либо дополнительные настройки, это можно сделать до того, как папки WIMBoot были защищены. Дополнительную информацию по WIMBoot можно почитать на TechNet.
Надеюсь, информация будет полезна!
Приложение
Предварительно должна быть создана рабочая копия файлов Windows PE.
Смонтируем образ Windows PE
Dism /Mount-Image /ImageFile:"C:WinPE_amd64mediasourcesboot.wim" /index:1 /MountDir:"C:WinPE_amd64mount"
Добавляем пакеты обновлений к образу Windows PE. Набор пакетов обновлений тот же, что и был использован для обновления образа Windows 8.1 можно скачать здесь. Важно при загрузке пакета KB2919355 скачать также пакеты KB2919355, KB2932046, KB2934018, KB2937592, KB2938439, и KB2959977. Пакеты нужно устанавливать по порядку и по отдельности.
Dism /Add-Package /PackagePath:C:MSUWindows8.1-<Package>-<arch>.msu /Image:C:mountWindows /LogPath:AddPackage.log
Оптимизируем образ
Dism /Image:С:WinPE_amd64mount /Cleanup-Image /StartComponentCleanup /ResetBase
Размонтируем образ Windows PE
Dism /Unmount-Image /MountDir:"C:WinPE_amd64mount" /commit
Экспортируем и конвертируем образ Windows PE в новый wim-файл
Dism /Export-Image /SourceImageFile:C:WinPE_amd64mediasourcesboot.wim /SourceIndex:1 /DestinationImageFile:C:WinPE_amd64mediasourcesboot2.wim
Заменяем файл boot.wim новым файлом boot2.wim
del C:WinPE_amd64mediasourcesboot.wim
rename C:WinPE_amd64mediasourcesboot2.wim boot.wim
- Проверяем наличие разделов System, MSR, Windows и Images
diskpart
select disk 0
select partition 3
assign letter C
select partition 4
assign letter M
list partition
exit
Ожидаемый результат:
- Проверка атрибутов раздела Images
diskpart
select disk 0
select partition 4
detail partition
exit
Ожидаемый результат:
- Проверка файлов в разделе Images и файлов восстановления
dir "M:Windows Images"
dir M:RecoveryWindowsRE
Ожидаемый результат:
- В среде восстановления Windows должно быть правильно указано расположение допустимого образа восстановления.
C:WindowsSystem32Reagentc /Info /Target C:Windows
Ожидаемый результат:
md C:mountWindows
Dism /Mount-Image /ImageFile:"C:Imagesinstall.wim" /Index:1 /MountDir:C:mountWindows
Устанавливаем обновления KB2919442 и KB2919355. Данные пакеты доступны для различных архитектур процессора: x86, x64 и arm. Скачать пакеты можно здесь. Пакеты обновлений должны быть установлены по порядку и по отдельности.
Dism /Add-Package /PackagePath:C:MSUWindows8.1-<Package>-<arch>.msu /Image:C:mountWindows /LogPath:AddPackage.log
Здесь и далее — имя пакета, а — архитектура процессора.
Монтируем образ Windows RE
md C:mountWinRE
Dism /Mount-Image /ImageFile:"C:mountWindowsWindowsSystem32Recoverywinre.wim" /Index:1 /MountDir:C:mountWinRE
Обновляем образ WinRE с помощью тех же пакетов, которые были использованы при обновлении образа Windows
Dism /Add-Package /PackagePath:C:MSUWindows8.1-<Package>-<arch>.msu /Image:C:mountWinRE /LogPath:AddPackage.log
Дополнительно выполним очистку образа, для того, чтобы удалить некоторые элементы и уменьшить конечный размер образа. Этот шаг необязателен, но его можно выполнить только на этом этапе: после запуска очистить образ будет невозможно.
Dism /Cleanup-Image /Image:C:mountWinRE /StartComponentCleanup /ResetBase
Теперь можно размонтировать образ Windows RE
Dism /Unmount-Image /MountDir:C:mountWinRE /Commit
Для того, чтобы увидеть изменения в размере файла, образ нужно экспортировать.
Dism /Export-Image /SourceImageFile:C:mountWindowsWindowsSystem32Recoverywinre.wim /SourceIndex:1 /DestinationImageFile:C:Imageswinre_updated.wim
После экспорта, необходимо заменить winre.wim новой версией.
attrib –s -h C:mountWindowsWindowsSystem32Recoverywinre.wim
Del C:mountWindowsWindowsSystem32Recoverywinre.wim
copy C:Imageswinre_updated.wim C:mountWindowsWindowsSystem32Recoverywinre.wim
После того, как обновления установлены, можно размонтировать образ Windows
Dism /Unmount-Image /MountDir:C:mountWindows /Commit
Автор: m_berzin