Освобождаем свободное место на жестком диске: WIMBoot

Сегодня стационарные компьютеры начинают медленно уходить на задний план. Их место прочно занимают ноутбуки, а затем идут и планшетные компьютеры. Сочетание мобильности, высокой производительности и высокой скорости получения информации — все это является несомненным плюсом планшетов. Однако, и своя ложка дегтя у планшетов есть: это малый размер жестких дисков. Если диск 16, 32 и даже 64 ГБ, вовсе не хочется разбрасываться ценным пространством на установочные файлы. С выходом Windows 8.1 Update появилось решение этой проблемы — WIMBoot — новый способ установки ОС, обеспечивающий большее свободное пространство для пользователя.10fda9354c6f123c2a0ed32f03c9fc6c.jpg

Обзор технологииИтак, что же такое WIMBoot (Windows Image Boot)? Это технология, предназначенная для устройств с малым объемом жестких дисков, с помощью которой обеспечивается большее пространство под пользовательские данные и приложения после установки операционной системы. Сразу перечислю ограничения при использовании WIMBoot: WIMBoot может быть использован только на компьютерах с UEFI, запущенных в режиме UEFI. Режим совместимости с BIOS не поддерживается. WIMBoot предназначен для устройств с малым объемом жестких дисков SSD или eMMC. WIMBoot доступен только Windows 8.1 Update и не поддерживается для серверных ОС. WIMBoot доступен для всех архитектур процессоров (amd64, x86, и ARM). Чем отличается WIMBoot от обычной установки Windows? При обычной установке Windows каждый установочный файл записывается на диск дважды: в сжатой форме на случай восстановления и в разархивированном виде для использования. Таким образом, размер пространства доступного пользователю, уменьшается.imageСтандартная схема разделов (без WIMBoot) При установке Windows с использование WIMBoot, файлы записываются на жесткий диск только однажды и в сжатом формате. Далее к разделу Windows применяются файлы-указатели (Pointer files), которые ссылаются на сжатые файлы в разделе образов.34c1ea8d1fcfd2c0400ef3d2bb7fb5b1.jpg

Схема разделов при использовании 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_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinPE Если версия 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:\Images\install.wim C:\Images\install_temp.wim Создадим каталог и смонтируем туда образ. md C:\mount\Windows Dism /Mount-Image /ImageFile: «C:\Images\install_temp.wim» /Index:1 /MountDir: C:\mount\Windows 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:\mount\Windows\Windows\System32\Recovery\winre.wim move C:\mount\Windows\Windows\System32\Recovery\winre.wim C:\images\winre.wim 1.3 Оптимизация образа для WIMBoot Оптимизируем образ WIMBoot. Dism /Optimize-Image /Image: C:\mount\Windows /WIMBoot Размонтируем образ Dism /Unmount-Image /MountDir: C:\mount\Windows /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=0×8000000000000001 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=0×8000000000000001 list volume exit Небольшой комментарий по поводу команды set id=«de94bba4–06d1–4d40-a16a-bfd50179d6ac» gpt attributes=0×8000000000000001 Использование приведенного выше скрипта не позволяет пользователю увидеть разделы восстановления через проводник, однако через Disk Management Tools пользователь может эти разделы удалить. Чтобы предотвратить удаление разделов восстановления и нужно использовать вышеприведенную команду.После выполнения данного скрипта, вы должны увидеть примерно следующее.1b6def21587d2873990a02c138288216.jpgВ итоге получились вот такие разделы (MSR — резервный раздел Microsoft и в выводе данной команды не отображается): cf6a53299d4a3a4abd51dc4abbadb781.jpgДалее выполним установку образа. Сначала создадим директорию на диске R и скопируем туда установочный образ. md R:\RI copy C:\Images\install.wim R:\RI\install.wim Применим образ install.wim на раздел Windows. dism /Apply-Image /ImageFile: R:\RI\install.wim /Index:1 /ApplyDir: W:\ Скопируем инструменты для восстановления на раздел Windows RE. md T:\Recovery\WindowsRE attrib –s –h W:\windows\system32\recovery\winre.wim copy W:\windows\system32\recovery\winre.wim T:\Recovery\WindowsRE\winre.wim Скопируем загрузочные файлы с раздела Windows на раздел System. Данный шаг нужен для того, чтобы загружать развернутый образ. bcdboot W:\Windows Зарегистрируем раздел Windows и раздел восстановления W:\Windows\System32\reagentc /setosimage /path R:\RI /target W:\Windows /index 1 W:\Windows\System32\reagentc /setreimage /path T:\Recovery\WindowsRE /target W:\Windows Перезагрузим компьютер. При новой загрузке дождемся экрана с началом настройки.a961a48c299156bb037e9bc5f29cfd2a.jpgПри его появлении необходимо нажать комбинацию CTRL+SHIFT+F3, чтобы перезагрузить компьютер в режиме аудита. После этого компьютер запустит систему под учетной записью локального администратора. В среде Windows 8.1 нужно будет запустить командную строку с правами Администратора и очистить образ. Очистка образа позволит освободить дополнительное место на диске. dism /Cleanup-Image /Online /StartComponentCleanup После этого с помощью команды Sysprep подготовим компьютер к использованию и завершим работу. C:\Windows\System32\Sysprep\sysprep /generalize /shutdown /oobe Запустим компьютер снова в режиме WinPE. Рекомендую запустить утилиту diskpart и команду list volume. У вас должны быть назначены буквы на диск с Windows и на диск WinPE. Все остальные разделы скрыты.536b94a82a8192f3d3266bd24c247fd2.jpgСоздадим каталог для временных файлов C:\Recycler\Scratch и перезахватим образ, но уже с опцией WIMBoot. DISM /Capture-Image /WIMBoot /ImageFile: «D:\Images\install_wimboot.wim» /CaptureDir: C: /Name: «WIMBoot Enterprise_x64 with 8.1 Updates» /ScratchDir: C:\Recycler\Scratch После того, как выполнение команды завершится, мы можем выключить компьютер. Теперь на нашем виртуальном диске или на флешке есть установочный образ 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=0×8000000000000001 list volume exit В итоге должны получить вот такой результат: 79cd03e95f380e6d272e6fe8155129ad.jpg4.2 Добавление Windows и файлов восстановления Создадим папку «Windows Images» в разделе Images. Название папки обязательно должно быть «Windows Images». md «M:\ Windows Images \» Скопируем образ Windows с диска WinPE в папку Windows Images и переименуем его в install.wim, если это необходимо. copy D:\Images\install_update1.wim «M:\Windows Images\install.wim» Применим образ Windows к разделу Windows с помощью команды /WIMBoot. Перед этим создадим каталог для временных файлов, чтобы избежать проблем, связанных с короткими именами файлов. md C:\Recycler\Scratch DISM /Apply-Image /ImageFile: «M:\Windows Images\install.wim» /ApplyDir: C: /Index:1 /WIMBoot /ScratchDir: C:\Recycler\Scratch Создадим файлы загрузки и настроим их работу в раздел Windows. C:\Windows\System32\bcdboot C:\Windows Скопируем образ среды восстановления Windows в папку Images md M:\Recovery\WindowsRE echo f | xcopy D:\Images\winre.wim M:\Recovery\WindowsRE\winre.wim /h Зарегистрируем раздел среды восстановления Windows. C:\Windows\System32\Reagentc /SetREImage /Path M:\Recovery\WindowsRE /Target C:\Windows 4.3 Защита папки WIMBoot Осталось защитить разделы образов Windows и проверить полученные результаты. Для установки атрибута «Только для чтения» в среде wpeinit выполним следующие команды icacls «M:\Windows Images» /inheritance: r /T icacls «M:\Windows Images» /grant: r SYSTEM:® /T icacls «M:\Windows Images» /grant: r *S-1–5–32–544:® /T Теперь осталось только запустить компьютер и увидеть приятную картинку: 81decfdaed0b2fde987d9ff132485612.jpgЧто же произошло? Теперь свободного диска на разделе Windows стало больше. Это произошло за счет того, что в разделе Windows теперь находятся файлы-указатели, которые ссылаются на образы Windows. При этом пользователь не ощущает разницы в работе: все его файлы работают нормально.10fda9354c6f123c2a0ed32f03c9fc6c.jpgВ завершение, хочу дополнительно отметить, что если есть необходимость добавить к образу WIMBoot какие-либо дополнительные настройки, это можно сделать до того, как папки WIMBoot были защищены. Дополнительную информацию по WIMBoot можно почитать на TechNet.Надеюсь, информация будет полезна!

Приложение Установка обновления: WinPE 5.0 --> WinPE 5.1 Перейдем к созданию WinPE и его обновления. В принципе, можете сначала просто создать WinPE, попробовать загрузить с его помощью целевой компьютер и проверить его версию. Однако здесь я приведу весь процесс создания образа.Предварительно должна быть создана рабочая копия файлов Windows PE.Смонтируем образ Windows PE Dism /Mount-Image /ImageFile: «C:\WinPE_amd64\media\sources\boot.wim» /index:1 /MountDir: «C:\WinPE_amd64\mount» Добавляем пакеты обновлений к образу Windows PE. Набор пакетов обновлений тот же, что и был использован для обновления образа Windows 8.1 можно скачать здесь. Важно при загрузке пакета KB2919355 скачать также пакеты KB2919355, KB2932046, KB2934018, KB2937592, KB2938439, и KB2959977. Пакеты нужно устанавливать по порядку и по отдельности. Dism /Add-Package /PackagePath: C:\MSU\Windows8.1--.msu /Image: C:\mount\Windows /LogPath: AddPackage.log Оптимизируем образ Dism /Image: С:\WinPE_amd64\mount /Cleanup-Image /StartComponentCleanup /ResetBase Размонтируем образ Windows PE Dism /Unmount-Image /MountDir: «C:\WinPE_amd64\mount» /commit Экспортируем и конвертируем образ Windows PE в новый wim-файл Dism /Export-Image /SourceImageFile: C:\WinPE_amd64\media\sources\boot.wim /SourceIndex:1 /DestinationImageFile: C:\WinPE_amd64\media\sources\boot2.wim Заменяем файл boot.wim новым файлом boot2.wim del C:\WinPE_amd64\media\sources\boot.wim rename C:\WinPE_amd64\media\sources\boot2.wim boot.wim Проверка образа WIMBoot

Установка обновлений на образ Windows 8.1 Смонтируем образ Windows md C:\mount\Windows Dism /Mount-Image /ImageFile: «C:\Images\install.wim» /Index:1 /MountDir: C:\mount\Windows Устанавливаем обновления KB2919442 и KB2919355. Данные пакеты доступны для различных архитектур процессора: x86, x64 и arm. Скачать пакеты можно здесь. Пакеты обновлений должны быть установлены по порядку и по отдельности. Dism /Add-Package /PackagePath: C:\MSU\Windows8.1--.msu /Image: C:\mount\Windows /LogPath: AddPackage.log Здесь и далее — имя пакета, а — архитектура процессора.Монтируем образ Windows RE md C:\mount\WinRE Dism /Mount-Image /ImageFile: «C:\mount\Windows\Windows\System32\Recovery\winre.wim» /Index:1 /MountDir: C:\mount\WinRE Обновляем образ WinRE с помощью тех же пакетов, которые были использованы при обновлении образа Windows Dism /Add-Package /PackagePath: C:\MSU\Windows8.1--.msu /Image: C:\mount\WinRE /LogPath: AddPackage.log Дополнительно выполним очистку образа, для того, чтобы удалить некоторые элементы и уменьшить конечный размер образа. Этот шаг необязателен, но его можно выполнить только на этом этапе: после запуска очистить образ будет невозможно. Dism /Cleanup-Image /Image: C:\mount\WinRE /StartComponentCleanup /ResetBase Теперь можно размонтировать образ Windows RE Dism /Unmount-Image /MountDir: C:\mount\WinRE /Commit Для того, чтобы увидеть изменения в размере файла, образ нужно экспортировать. Dism /Export-Image /SourceImageFile: C:\mount\Windows\Windows\System32\Recovery\winre.wim /SourceIndex:1 /DestinationImageFile: C:\Images\winre_updated.wim После экспорта, необходимо заменить winre.wim новой версией. attrib –s -h C:\mount\Windows\Windows\System32\Recovery\winre.wim Del C:\mount\Windows\Windows\System32\Recovery\winre.wim copy C:\Images\winre_updated.wim C:\mount\Windows\Windows\System32\Recovery\winre.wim После того, как обновления установлены, можно размонтировать образ Windows Dism /Unmount-Image /MountDir: C:\mount\Windows /Commit

© Habrahabr.ru