Что такое boot wim
Загрузка Windows Recovery Environment (или любого WIM-образа) с USB flash
На самом деле лично я создаю загрузочные флешки на основе GRUB4DOS, но сегодня рассмотрим менее альтернативный способ, чтобы обойтись только стандартными средствами ОС Windows.
Что понадобится
1) сам образ winre.wim, получить который можно двумя способами:
— из установленной системы, в Win7 он находится в C:\Recovery\recovery-guid (где папка recovery-guid — это набор букв/цифр); в Win8 и выше — в С:\Recovery\WindowsRE.
Или же папки С:\Recovery может не существовать, тогда она находится на специальном загрузочном разделе Windows «Зарезервировано системой», который имеет размер 100-500 Мб и расположен на диске до основного системного раздела С:\.
Тогда этому мелкому разделу нужно присвоить букву в Управлении дисками.
Более сложный случай: папка \Recovery находится на скрытом OEM разделе восстановления, которому уже просто так не присвоить букву, перед этим нужно сменить его тип.
Делается это при помощи Командной строки, запущенной от имени Администратора, и DiskPart:
( disk 0 и partition 2 указаны для примера, см. реальные номера нужного диска/раздела в выводе команд list ; при помощи detail посмотрите и запомните ID раздела до изменения, чтобы вернуть его назад)
ВАЖНО: winre.wim, скопированный из раздела восстановления, созданного производителем компьютера или ноутбука, может отличаться от стандартного и не иметь нужных функций!
Поэтому лучше взять его
— с установочного DVD из образа \sources\install.wim — внутри образа файл находится по пути \System32\Recovery.
WIM-образы можно смонтировать в систему при помощи DISM:
или открыть последней версией 7-Zip.
2) вспомогательный файл boot.sdi — тоже находится внутри winre.wim или install.wim по пути \Windows\Boot\DVD\PCAT, или на DVD в \boot.
3) программа bootsect.exe для того, чтобы сделать флешку загрузочной — искать также в WIM в \Windows\System32, или на DVD в \boot.
Форматирование флешки
Обычно этого делать не нужно, и флешки, как правило, уже имеют один раздел отформатированный в FAT32 (не смотря на то, что многие руководства по созданию загрузочных флешек рекомендуют отформатировать в NTFS, это не обязательно), который является активным (загрузочным). А может и не являться. 🙂
Поэтому, если ваша флешка не грузится, отформатируйте её так:
Создание загрузочного сектора
(где E: — буква, под которой смонтирована флешка)
Установка загрузчика bootmgr
Опять же, есть 2 способа: с использованием установочного DVD и без него.
1) Сначала рассмотрим способ только при помощи имеющейся системы:
Необходимо помнить про разрядность версии ОС!
Если вы создаёте флешку с x32-версией WinRE для лечения x32-систем, то и исходной системой, откуда копируется загрузчик при помощи bcdboot.exe, должна быть именно x32. Про x64, соответственно, тоже самое.
Но плюс в том, что при данном способе вы можете иметь на одной флешке хоть 10 версий WinRE — от всех систем (Windows Vista/7/8/8.1/10 + аналогичные серверные версии) и любой разрядности. Одновременно. Без регистрации и СМС. 🙂
2) Если же использовать DVD, то необходимо скопировать следующие папки и файлы (и конечно же при ручном копировании версия Windows не важна!):
(это — минимальный набор необходимых файлов; их можно вручную скопировать и из системы, с диска C: — БЕЗ использования bcdboot.exe, которая скопирует больше файлов)
Отступление про разные версии Windows
От того, какой вы возьмёте файл bootmgr, будет зависеть, каким будет загрузчик: текстовым, с управлением клавиатурой, либо графическим, с поддержкой мыши.
Win7 использует текстовый режим, а Win8/8.1/10 — графический.
Текстовый вариант, естественно, загружается быстрее.
3 файла шрифта выше — это минимальный набор для русского языка для bootmgr из Windows 7, к тому же, эти файлы опциональны — без них шрифт будет более простым.
Более новые версии Windows используют больше файлов шрифтов.
Я рекомендую использовать bootmgr из Windows 7, а образ winre.wim из Windows 10, т.к. среда восстановления теоретически совершенствуется от версии к версии.
Откуда брать файлы: из установленной системы или с DVD — значения не имеет.
Создание загрузочной записи
(где — GUID новой загрузочной записи, см. в выводе первой команды)
После последовательного выполнения всех команд загрузочная запись будет создана, однако её содержание будет немного отличаться, в зависимости от того, откуда был взят файл-хранилище BCD.
Это связано с тем, что за основу для создания новой записи берутся разные исходные записи из хранилища: для запуска программы установки, или для загрузки Windows.
Полный листинг рабочей загрузочной записи, взятой с DVD Windows 7 x32:
Копирование WIM-образа
Скопируйте файлы winre.wim и boot.sdi в папку \boot на флешке.
Папка может быть любой (тогда скорректируйте пути в командах bcdedit выше), но оба файла должны быть в одной и той же папке.
Для загрузки нескольких образов достаточно одного файла boot.sdi.
Загрузка с флешки
Не забудьте настроить BIOS на загрузку с USB, и через некоторое время вы окажетесь в среде восстановления Windows.
P.S. Комментаторы подсказывают, что этот способ не работает на компьютерах и планшетах с UEFI.
Но проверить это (и может модернизировать эту инструкцию) мне не на чем ввиду отсутствия подходящего устройства.
UPD 02.02.2016, 15:40:
Дополнения про извлечение образов из скрытых разделов и про монтирование их в систему при помощи DISM.
Поддержка boot.wim служб развертывания Windows (WDS)
Функции развертывания операционной системы Windows служб развертывания (WDS) частично обесценились. Начиная с Windows 11, рабочий процесс, который опирается на boot.wim из установочного носитля или на запуск Windows установки в режиме WDS, больше не будет поддерживаться.
При загрузке PXE-загрузки с сервера WDS, который использует файл boot.wim из установочного носителя в качестве изображения загрузки, Windows установка запускается в режиме WDS. Этот рабочий процесс отстает от Windows 11 и более новых изображений загрузки. Отображается следующее сообщение об амортизации:
Затронутые сценарии развертывания
В таблице ниже приведены сведения о поддержке для определенных сценариев развертывания (Boot Image Version).
Windows 10 | Windows Server 2016 | Windows Server 2019 | Windows Server 2022 | Windows 11 | |
---|---|---|---|---|---|
Windows 10 | Поддерживается с помощью изображения загрузки из совпадающих или более новых версий. | Поддерживается с помощью изображения загрузки Windows 10 версии 1607 или более поздней версии. | Поддерживается с помощью изображения загрузки из Windows 10, версия 1809 или более поздней. | Не поддерживается. | Не поддерживается. |
Windows Server 2016 | Поддерживается с помощью изображения загрузки Windows 10 версии 1607 или более поздней версии. | Поддерживается. | Не поддерживается. | Не поддерживается. | Не поддерживается. |
Windows Server 2019 | Поддерживается с помощью изображения загрузки из Windows 10, версия 1809 или более поздней. | Поддерживается. | Поддерживается. | Не поддерживается. | Не поддерживается. |
Windows Server 2022 | Обесценилось, с предупреждением. | Обесценилось, с предупреждением. | Обесценилось, с предупреждением. | Обесценилось, с предупреждением. | Не поддерживается. |
Windows 11 | Не поддерживается, блокируется. | Не поддерживается, блокируется. | Не поддерживается, блокируется. | Не поддерживается, блокируется. | Не поддерживается, блокируется. |
Причина изменения
Альтернативы WDS, такие как Microsoft Endpoint Configuration Manager и Microsoft Deployment набор средств (MDT), обеспечивают более гибкий и богатый функцией опыт развертывания Windows изображений.
Создаём установочный носитель с множеством версий Windows NT 6.0+ без использования стороннего софта
Здравствуйте. Сегодня я расскажу как можно создать единый установочный носитель с множеством разных версий Windows не прибегая к использованию стороннего ПО. Таким образом вы будете полностью понимать какие манипуляции мы выполняем.
Также я сделаю упор на то, чтобы как можно меньше энтропии привносить в этот мир изменять структуру оригинальных установочных дистрибутивов.
Кому интересно — прошу под кат.
Предыстория
Без хакинга эти имена не поменять. Для чего это может понадобиться? Да для того, чтобы иметь несколько дистрибутивов Windows на одной флешке! Ведь кто-то не переваривает Win8, ему Win7 ставь, а кто-то хочет систему поновее и пошустрее.
Эти обстоятельства послужили тригером к решению:
Конечно, в этом можно найти определённую логику: такой подход позволяет не распаковывать ISO-шки, а положить их в отдельную папку на флешке… Но надо поддерживать кучу других файлов…
Короче, это не наш путь.
Творим
Мы не будем играться с монтированием ISO, а просто разместим файлы для загрузки на установочном носителе. Но не просто перенесём эти файлы с установочных ISO (как было до этого), а немного переделаем их структуру так, чтобы можно было просто выбирать версию Windows для установки, не делая больше никаких рутинных действий (см. предысторию).
Делать мы всё будем руками и, как было обещано, без стороннего ПО. А то есть куча разных прог для создания супер мега крутых мультизагрузочных дисков, но толком не ясно что они делают и как. А у нас план — без стороннего софта и с минимальным вмешательством!
Подготовка флешки
Определитесь с файловой системой
Выбор-то и не большой:
Вот и получается:
обязательно нужен UEFI — FAT32, не обязательно или не нужен вовсе — NTFS.
Отформатируйте флешку в выбранную вами ФС.
Примечание: если ваша флешка уже имеет нужную ФС, то форматировать её необязательно. Но я бы всё-таки отформатировал 😉
Сделайте раздел активным
Для USB-HDD это можно сделать так:
Откройте оснастку Управление дисками (diskmgmt.msc). Щёлкните правой кнопкой мыши по нужному разделу своего USB-HDD и выберите «Сделать раздел активным». Если этот пункт контекстного меню неактивен — значит раздел уже активен.
Для флешки этот вариант не пройдёт. Тут пункт контекстного меню «Сделать раздел активным» будет всегда неактивен. Поэтому нужно использовать универсальный способ:
Откройте Командную строку (cmd.exe). Выполните такие команды:
Наполнение дистрибутивами
Файлы диспетчера загрузки Windows
Нам нужен набор файлов менеджера загрузки. Это:
Я скопировал эти файлы из самого свежего дистрибутива — Windows 10 x64 (Threshold 2).
Дистрибутивы
Настройка
Мы хотим, чтобы можно было выбирать любую из этих систем просто из меню. Без переименовывая папок и т.п. рутины. Значит, надо добавить пункт меню для каждой из Windows.
Помните, раньше мы копировали файлы диспетчера загрузки? Теперь нужно отредактировать файлы данных конфигурации загрузки. Это:
Редактируем BCD
Сначала включим отображение меню. И уберём таймаут, чтобы оно отображалось столь угодно долго до совершения выбора пользователем (мы ведь не просто загружаемся, а систему устанавливаем! Выбор должен быть осознанным ◕‿◕).
Чтобы сделать это выполните команды:
где здесь и далее — ваша флешка.
Дальше будем добавлять пункты установки для каждой из систем. Сначала выполним команду
bcdedit /store :\boot\bcd /enum
чтобы узнать значение device и osdevice пункта по-умолчанию. Они будут приблизительно такими:
Параметр device определяет устройство, на котором лежит \windows\system32\boot\winload.exe (это значение указано в параметре path ).
Параметр osdevice определяет устройство, на котором лежит \windows (это значение указано в параметре systemroot ).
В нашем случае значения device и osdevice состоят из пути к WIM-образу системы (в данном случае WinPE), который загружается в оперативную память (ramdisk). После запятой указан GUID записи, которая определяет параметры устройства, с которого будет загружаться WinPE (в нашем случае — ramdisk). На неё можно взглянуть подробнее:
Ничего особенного. Будем использовать эти же параметры устройства для других пунктов загрузки.
Поскольку пункт по-умолчанию уже полностью настроен (кроме значений device и osdevice ), то мы просто будем его копировать и изменять.
Добавление пунктов
bcdedit /store :\boot\bcd /set < > osdevice ramdisk=[boot]\ \boot.wim,
Эти две команды отличаются только одним словом (выделено).
Здесь приведено несколько примеров создания новых пунктов загрузки на основе пункта по-умолчанию.
Не копируйте тупо команды отсюда! У вас будут другие GUID-ы. Эти примеры только чтобы понять что к чему.
Завершение редактирования BCD
После того, как все пункты добавлены удаляем пункт по-умолчанию:
bcdedit /store :\boot\bcd /delete
Редактируем BCD для UEFI
Если вам нужна загрузка по UEFI, то вам нужно также отредактировать другое хранилище конфигурации загрузки (то, которым руководствуется BootMgFw.efi ).
\windows\system32\boot\winload.exe vs \windows\system32\boot\winload.efi
\boot\memtest.exe vs \efi\microsoft\boot\memtest.efi
Update
Посредством UEFI могут загружаться все 64-битные версии Windows NT 6.0+, а из 32-битных — только Windows 8+.
Кроме того, в пунктах установки ОС, предшествующих Windows 8, не должно быть параметра IsolatedContext со значением Yes. Иначе, у вас просто не запустится среда предустановки этой системы (т.е. вы не сможете установить, например, Windows 7 x64 в режиме UEFI).
Windows PE
Итак, у нас при загрузке с флешки уже есть рабочее меню, где мы можем выбирать нужную версию Windows. Загрузитесь и убедитесь, что при выборе определённого пункта меню загружается соответствующая Windows PE.
Проблема
Мы ещё не всё сделали. Ведь, если попытаться установить какую-то из систем, то получим неприятный сюрприз:
Варианты решения
Вы уже можете установить Windows из своей флешки, вручную правильно запустив программу установки. Есть несколько вариантов.
Решение
Это всё хорошо, но мы же не хотим вручную запускать установку, правда? Хотим чтобы оно само. Значит надо сделать так, чтобы оно само запускало установку откуда надо.
Варианты автоматизации
Нам нужно выполнить свой сценарий, который найдёт на флешке нужный файл и запустит его. Как видите, у нас не один вариант:
Я продемонстрирую вариант только с добавлением файлов (минимальное вмешательство, да).
Модифицируем boot.wim
Теперь, как и запланировали, копируем в C:\mnt\Windows\System32\ файлы winpeshl.ini и свой файл сценария (я назвал его runsetup.cmd ).
А за тем, чтобы файлы winpeshl.ini и runsetup.cmd были универсальны для всех дистрибутивов Windows NT 6.0+. Т.е. их не нужно отдельно модифицировать под установку Win7, Win8 и т.п. Путь к папке дистрибутива определяется автоматически.
Также добавлен простой способ запуска Восстановления системы, т.к. из-за прямого запуска \sources\setup.exe вместо X:\setup.exe мы теряем страницу:
Разница только в том, что в нашем случае мы язык выбираем уже после запуска установки Windows или Восстановления системы. В оригинальных ISO образах X:\setup.exe сообщает языковые настройки запускаемым через него приложениям.
Внимание! В предоставленном мной runsetup.cmd путь к программе установки определяется по шаблону :\\ _ _ \setup.exe
(строка %RamdiskSourceDrive%\%WinDistAfx%_%WinVerAfx%_%WinArchAfx%\setup.exe ). Т.е. в моём случае сценарий будет формировать пути (в зависимости от того, из какого дистрибутива был запущен) наподобие:
Если вы создавали на флешке другую структуру папок и их названий — сделайте соответствующие изменения.
Осталось отмонтировать образ с сохранением изменений:
Чего бы улучшить?
Тут ещё несколько советов по улучшению вашей установочной флешки.
Пропуск ввода ключа продукта и выбор любой редакции Windows
Для этого нужно поместить файлик ei.cfg рядом с программой установки
Запуск приложения реального режима из меню Диспетчера загрузки Windows
Прогрессбар при загрузке boot.wim на ramdisk
В новейших BootMgr сделали загрузку образа boot.wim на ramdisk без анимации. Т.е. просто выводится статический логотип Windows и всё, ждите. Можно вернуть прогрессбар, как было раньше. Он хоть будет давать информацию о степени загрузки WinPE в оперативную память.
Правда, вместе с этим вы отключите новый стиль меню дополнительных параметров и сообщений об ошибках (на голубом фоне, с управлением функциональными клавишами), но то такое (^̮^)
Подробный вывод загружаемых файлов
Это в дополнение к предыдущему украшательству. Работает по Windows 7 включительно. В Windows 8+ майки это выпилили почему-то (не даёт эффекта).
Применив предыдущие два украшательства прикольнее всего грузится Windows 7. Но это всё — баловство.
Итак, что мы сделали:
На этом всё. Вопросы, замечания и пожелания приветствуются (ʘ‿ʘ)
Как применить технологию WIMBoot во время установки Windows 8.1 и Windows 10
Щёлкаем на подсоединённом ISO-образе двойным щелчком левой мыши и образ Win 10 подсоединяется к виртуальному дисководу (буква диска K:)
ISO-образ Windows 10 содержит в себе несколько релизов, и к аждый релиз имеет свой индекс образа.
Узнаём индексы всех релизов. Введём в командной строке администратора команду:
Dism /Get-WimInfo /WimFile:K:\sources\install.esd (где K :, буква виртуального диска с файлами Windows 10, папкой sources и файлом install.esd).
Как видим, Windows 10 Домашняя для одного языка, индекс образа 3. Запомним это.
В Управлении дисками создаём виртуальный диск VHD.
«Действие»—>«Создать виртуальный жёсткий диск»
Отмечаем пункт «Динамический расширяемый».
Жмём на кнопку «Обзор».
Отмечаем пункт «Таблица с GUID разделов (GPT)» и жмём «ОК»
После инициализации диска создаём на нераспределённом пространстве простой том.
Новый том (F:) создан.
Файлы Windows 10 развёрнуты на виртуальный диск (F:).
Когда флешка будет готова, заходим на виртуальный диск VHD (раздел F:), в папку F:\Windows\System32\Recovery и вырезаем из неё файл winre.wim (среда восстановления Windows) и копируем его на нашу флешку (он нам пригодится позже). Если файл не будет виден, включите в системе отображение скрытых файлов и папок.
Можно сказать, подготовительный этап закончен. Теперь мы имеем оптимизированный для WIMBoot файл-образ install.wim, который и будем использовать для установки Windows 10.
sel dis 0
clean
convert GPT
creat par efi size=100
format fs=fat32
creat par msr size=16
creat par prim size=24000
format fs=NTFS quick label=OS
assign
creat par prim
format fs=NTFS quick label=Images
assign
Загружаем наш компьютер или ноутбук с загрузочной флешки Live CD AOMEI PE Builder.
Жмём «Enter» на клавиатуре.
Загружается рабочий стол Live CD AOMEI PE Builder, представляющий из себя обычный Live CD на базе Windows 8.1.
Открываем Управление дисками
и видим твердотельный накопитель SSD (нераспределённое пространство) подключенный к нашему ноутбуку, также видим загрузочную флешку Live CD AOMEI PE Builder (буква диска D:).
В корне флешки находится текстовый файл par.txt, содержащий сценарий DiskPart.
Запускаем командную строку от имени администратора.
Вводим команду diskpart /s D:\par.txt и запускается сценарий DiskPart, находящийся в файле par.txt на нашей загрузочной флешке (буква диска D:).
После работы сценария на твердотельном накопителе SSD создаются четыре раздела:
1. Скрытый шифрованный (EFI) системный раздел, отформатированный в файловую систему FAT32, размер 100 Мб, на нём будут находится файлы загрузки Windows 10.
3. Диск (C:), на который мы установим Windows 10 с применением технологии WIMBoot.
4. Диск (E:), на котором будут расположены файлы install.wim и custom.wim, а также папка Recovery с файлом winre.wim (среда восстановления).
Заходим на диск (E:) и создаём на нём две папки: Windows Images и Recovery, копируем в папку Windows Images файл-образ install.wim из нашей флешки, также с флешки копируем в папку Recovery файл winre.wim (среда восстановления).
Возвращаемся на рабочий стол Live CD AOMEI PE Builder и заходим в папку « Софт »
Открываем папку WinNTSetup3.
Запускаем программу WinNTSetup_x64.
Именно с помощью этой программы произведём установку на наш ноутбук Windows 10 с применением технологии WIMBoot.
Нажимаем кнопку «Выбрать»
В открывшемся проводнике находим на диске (E:) папку Windows Images и заходим в неё, затем выделяем левой мышью файл-образ install.wim и жмём «Открыть»
Загрузчик выбирать не нужно, он автоматически установится на Скрытый шифрованный (EFI) системный раздел, отформатированный в файловую систему FAT32, размер 100 Мб
Выбираем диск, на который установим Windows 10.
Нажимаем кнопку «Выбрать»
Указываем Диск (C:) и нажимаем «Выбор папки» (в вашем случае буква системного диска может быть другой).
Отмечаем пункт «Mode» и выбираем опцию « WIMBoot ».
Выбираем код установщика «UEFI»
На рабочем столе жмём на кнопку «Перезагрузка»
Загружаем ноутбук с твердотельного накопителя SSD.
Сразу начинается заключительная фаза инсталляции Windows 10.
Ключ можете ввести позже.
Принимаем лицензионное соглашение.
Можете использовать стандартные параметры или настройте свои.
Если у вас нет учётной записи Майкрософт, то создайте Локальную учётную запись, жмите «Пропустит этот шаг»
Вводим имя локальной учётной записи и жмём «Далее»
Загружается Windows 10.
Идём в Управление дисками.
Открываем свойства диска (C:) и видим, что занято на нём всего 2,8 ГБ,
из которых файл подкачки (pagefile.sys) занимает 1,2 ГБ, а файлы-указатели занимают на диске (C:) примерно 1,4 ГБ.
Как работают файлы-указатели
Идём в Параметры Windows—>Обновления и безопасность,
производим проверку наличия обновлений и устанавливаем доступные обновления.
Обновления установлены. Перезагружаем компьютер.
Устанавливаем в Windows 10 все драйвера и необходимые нам программы.
Открываем свойства диска (C:) и видим, что после установки обновлений и программ на нём занято уже чуть больше места 4,9 ГБ,
Производим очистку папки WinSxS
Открываем командную строку от имени администратора и вводим команду:
Dism.exe /online /cleanup-image /StartComponentCleanup
Активируем среду восстановления
В командной строке администратора вводим команду:
reagentc /setreimage /path D:\recovery
Создание файла custom.wim, в котором будут содержаться обновления, драйвера и программы
В начальной фазе установки Windows 10 жмём кл. сочетание Shift + F10, открывается окно командной строки.
В командной строке вводим команду:
Dism /Capture-CustomImage /CaptureDir:C: ( файл custom.wim, содержащий обновления, драйвера и программы создан и находится на диске (D:) в папке Windows Images рядом с файлом install.wim).
Перезагружаем компьютер и загружаемся в операционную систему Windows 10.
Заходим на диск (D:) и видим в папке Windows Images рядом с файлом install.wim файл custom.wim, содержащий обновления, драйвера и программы.
Смотрим свойства диска (C:), после создания файла custom.wim, на диске (C:) прибавилось свободного пространства.
Также откроем свойства системной папки Windows, принадлежащей другой Windows 10, установленной без технологии WIMBoot.
Как видим результат совсем другой.
И наконец присвоим разделу (D:) атрибут: 0X8000000000000001 обязательный (защищённый)
в командной строке администратора вводим команды:
lis dis (выводится список всех накопителей)
sel dis 0 (выбираем единственный жёсткий диск)
lis par (выводим список всех разделов жёсткого диска)
gpt attributes=0X8000000000000001 (присваиваем разделу атрибут: 0X8000000000000001 обязательный (защищённый))
lis vol (выводим в список все разделы подключенных накопителей)
sel vol 2 (выбираем диск (D:)
remove (удаляем букву диска D:)
После этого раздел (D:) будет в Управлении дисками недоступен, если щёлкнуть на нём правой кнопкой мыши, будет доступна только «Справка».