CtrlSoft
28-01-2011, 17:54
Меню для boot.wim - выбор загружаемого индекса
(пример)
http://img821.imageshack.us/img821/1813/thumbi.png (http://img821.imageshack.us/img821/760/screenshot20110202001.png) http://img821.imageshack.us/img821/7798/thumb2a.png (http://img821.imageshack.us/img821/7102/screenshot20110202002.png) http://img821.imageshack.us/img821/1553/thumb3j.png (http://img821.imageshack.us/img821/5131/screenshot20110202003.png) http://img821.imageshack.us/img821/9733/thumb4.png (http://img821.imageshack.us/img821/305/screenshot20110202004.png) http://img821.imageshack.us/img821/5736/thumb5.png (http://img821.imageshack.us/img821/7986/screenshot20110202005.png)
http://img821.imageshack.us/img821/8373/thumb6.png (http://img821.imageshack.us/img821/3646/screenshot20110202006.png) http://img821.imageshack.us/img821/2120/thumb7y.png (http://img821.imageshack.us/img821/333/screenshot20110202007.png) http://img821.imageshack.us/img821/4008/thumb8t.png (http://img821.imageshack.us/img821/6779/screenshot20110202008.png)
Вам приходило в голову что было бы не плохо выбрать какой образ из boot.wim следует загружать для выполнения той или иной операции? Скажем нужно установить ОС - выбираем "Установка Windows", требуется выполнить восстановление системы - "Запуск среды восстановления Windows" или же запустить персонализированный WimPE? Раньше для этого требовалось создать новую запись в BCD и назначить путь к каждому из образов boot*.wim. Но ведь средний размер WinPE.wim около 120 mb а при необходимости собрать несколько образов wim в один дистрибутив, размер iso-образа может увеличится в несколько раз!
К счастью мы можем экспортировать нужные образы wim в единый boot.wim в не зависимости от архитектуры или содержания и сэкономить место на диске. Но есть одно Но, по умолчанию BCD загружает лишь один из индексов в образе boot.wim (назначить его можно при помощи imagex). Как-же сделать меню с возможностью выбора индекса для загрузки?
Спешу вас познакомить с замечательной находкой: CheckWIM и пропатченый загрузчик bootmgr (wimpatched).
Утилита CheckWIM считает индексы из boot.wim и отображает необходимую информацию которую следует использовать при создании меню.
wimpatched это измененый загрузчик Windows который умеет читать даные что отобразил CheckWIM.
Примечание. Программа установки требует наличия boot.wim в папке sources, обьеденив 32-разрядный и 64-разрядный boot.wim в единый образ мы теряем возможность установки / обновления ОС из Windows. Ниже я объесню что требуется для преодоления данного недостатка.
Если же вы не нуждаетесь в наличии установки / обновления из Windows, то можете экспортировать все индексы в один wim-файл.
Создаем сборку «Microsoft Windows 7 Ultimate x86-x64 EN-RU»
Шаг-за-шагом:
-> подготовка
Копируем содержимое DVD-диска Windows 7 x86 в E:\AIO\DVD
xcopy V:\*.* /s /e /f E:\AIO\DVD
Копируем содержимое DVD-диска Windows 7 x86 в E:\AIO\DVD\64-bit
xcopy V:\*.* /s /e /f E:\AIO\DVD\64-bit
-> работаем с первым индексом образов boot.wim
Монтируем первый индекс 32-разрядного образа boot.wim
dism /mount-wim /wimfile:E:\AIO\DVD\sources\boot.wim /index:1 /mountdir:E:\offline
Добавляем языковые пакеты для компонентов Windows PE
dism /image:E:\offline /add-package /packagepath:E:\packages\pe86-i1
требуемые пакеты для интеграции :LP_RU-RU.CAB
WINPE-SCRIPTING_RU-RU.CAB
WINPE-SRT_RU-RU.CAB
WINPE-WDS-TOOLS_RU-RU.CAB
WINPE-WMI_RU-RU.CAB
dism /image:E:\offline /set-allintl:en-us
Сохраняем изменения и демонтируем образ
dism /unmount-wim /mountdir:E:\offline /commit
Чистим следы
rd /s /q E:\offline & dism /cleanup-wim & md E:\offline
Монтируем первый индекс 64-разрядного образа boot.wim
dism /mount-wim /wimfile:E:\AIO\DVD\64-bit\sources\boot.wim /index:1 /mountdir:E:\offline
Добавляем языковые пакеты для компонентов Windows PE
dism /image:E:\offline /add-package /packagepath:E:\packages\pe64-i1
требуемые пакеты для интеграции :LP_RU-RU.CAB
WINPE-SCRIPTING_RU-RU.CAB
WINPE-SRT_RU-RU.CAB
WINPE-WDS-TOOLS_RU-RU.CAB
WINPE-WMI_RU-RU.CAB
Сохраняем изменения и демонтируем образ
dism /unmount-wim /mountdir:E:\offline /commit
Чистим следы
rd /s /q E:\offline & dism /cleanup-wim & md E:\offline
-> работаем со вторым индексом образов boot.wim
Монтируем второй индекс 32-разрядного образа boot.wim
dism /mount-wim /wimfile:E:\AIO\DVD\sources\boot.wim /index:2 /mountdir:E:\offline
Добавляем языковые пакеты для компонентов Windows PE
dism /image:E:\offline /add-package /packagepath:E:\packages\pe86-i2
требуемые пакеты для интеграции :требуемые пакеты для интеграции:
LP_RU-RU.CAB
WINPE-SCRIPTING_RU-RU.CAB
WINPE-SETUP-CLIENT_RU-RU.CAB
WINPE-SETUP_RU-RU.CAB
WINPE-SRT_RU-RU.CAB
WINPE-WDS-TOOLS_RU-RU.CAB
WINPE-WMI_RU-RU.CAB
Сохраняем изменения и демонтируем образ
dism /unmount-wim /mountdir:E:\offline /commit
Монтируем второй индекс 64-разрядного образа boot.wim
dism /mount-wim /wimfile:E:\AIO\DVD\sources\boot.wim /index:2 /mountdir:E:\offline
Добавляем языковые пакеты для компонентов Windows PE
dism /image:E:\offline /add-package /packagepath:E:\packages\pe64-i2
требуемые пакеты для интеграции :LP_RU-RU.CAB
WINPE-SCRIPTING_RU-RU.CAB
WINPE-SETUP-CLIENT_RU-RU.CAB
WINPE-SETUP_RU-RU.CAB
WINPE-SRT_RU-RU.CAB
WINPE-WDS-TOOLS_RU-RU.CAB
WINPE-WMI_RU-RU.CAB
Чистим следы
rd /s /q E:\offline & dism /cleanup-wim & md E:\offline
Добавляем языковые пакеты для компонентов Windows RE
C помощью 7-zip извлеките образы WinRE.wim из папки
"E:\AIO\DVD\sources\install.wim\<<5 (или ваш индекс)>>\Windows\System32\Recovery" в E:\WIM\x86
"E:\AIO\DVD\sources\install.wim\<<4 (или ваш индекс)>>\Windows\System32\Recovery" в E:\WIM\x64
Монтируем первый (и единственый) индекс 32-разрядного образа winre.wim
dism /mount-wim /wimfile:E:\WIM\x86\winre.wim /index:1 /mountdir:E:\offline
Добавляем языковые пакеты для компонентов Windows RE
dism /image:E:\offline /add-package /packagepath:E:\packages\pe86-i2
требуемые пакеты для интеграции :LP_RU-RU.CAB
WINPE-SCRIPTING_RU-RU.CAB
WINPE-SETUP-CLIENT_RU-RU.CAB
WINPE-SETUP_RU-RU.CAB
WINPE-SRT_RU-RU.CAB
WINPE-WDS-TOOLS_RU-RU.CAB
WINPE-WMI_RU-RU.CAB
Сохраняем изменения и демонтируем образ
dism /unmount-wim /mountdir:E:\offline /commit
Чистим следы
rd /s /q E:\offline & dism /cleanup-wim & md E:\offline
Монтируем первый (и единственый) индекс 64-разрядного образа winre.wim
dism /mount-wim /wimfile:E:\WIM\x64\winre.wim /index:1 /mountdir:E:\offline
Добавляем языковые пакеты для компонентов Windows RE
dism /image:E:\offline /add-package /packagepath:E:\packages\pe64-i2
требуемые пакеты для интеграции :LP_RU-RU.CAB
WINPE-SCRIPTING_RU-RU.CAB
WINPE-SETUP-CLIENT_RU-RU.CAB
WINPE-SETUP_RU-RU.CAB
WINPE-SRT_RU-RU.CAB
WINPE-WDS-TOOLS_RU-RU.CAB
WINPE-WMI_RU-RU.CAB
Сохраняем изменения и демонтируем образ
dism /unmount-wim /mountdir:E:\offline /commit
Чистим следы
rd /s /q E:\offline & dism /cleanup-wim & md E:\offline
Экспортируем образы winre.wim
imagex /export /compress maximum E:\WIM\x86\winre.wim 1 E:\WIM\x86\new\winre.wim
imagex /export /compress maximum E:\WIM\x86\winre.wim 1 E:\WIM\x86\new\winre.wim
.....
(В процессе написания)
(пример)
http://img821.imageshack.us/img821/1813/thumbi.png (http://img821.imageshack.us/img821/760/screenshot20110202001.png) http://img821.imageshack.us/img821/7798/thumb2a.png (http://img821.imageshack.us/img821/7102/screenshot20110202002.png) http://img821.imageshack.us/img821/1553/thumb3j.png (http://img821.imageshack.us/img821/5131/screenshot20110202003.png) http://img821.imageshack.us/img821/9733/thumb4.png (http://img821.imageshack.us/img821/305/screenshot20110202004.png) http://img821.imageshack.us/img821/5736/thumb5.png (http://img821.imageshack.us/img821/7986/screenshot20110202005.png)
http://img821.imageshack.us/img821/8373/thumb6.png (http://img821.imageshack.us/img821/3646/screenshot20110202006.png) http://img821.imageshack.us/img821/2120/thumb7y.png (http://img821.imageshack.us/img821/333/screenshot20110202007.png) http://img821.imageshack.us/img821/4008/thumb8t.png (http://img821.imageshack.us/img821/6779/screenshot20110202008.png)
Вам приходило в голову что было бы не плохо выбрать какой образ из boot.wim следует загружать для выполнения той или иной операции? Скажем нужно установить ОС - выбираем "Установка Windows", требуется выполнить восстановление системы - "Запуск среды восстановления Windows" или же запустить персонализированный WimPE? Раньше для этого требовалось создать новую запись в BCD и назначить путь к каждому из образов boot*.wim. Но ведь средний размер WinPE.wim около 120 mb а при необходимости собрать несколько образов wim в один дистрибутив, размер iso-образа может увеличится в несколько раз!
К счастью мы можем экспортировать нужные образы wim в единый boot.wim в не зависимости от архитектуры или содержания и сэкономить место на диске. Но есть одно Но, по умолчанию BCD загружает лишь один из индексов в образе boot.wim (назначить его можно при помощи imagex). Как-же сделать меню с возможностью выбора индекса для загрузки?
Спешу вас познакомить с замечательной находкой: CheckWIM и пропатченый загрузчик bootmgr (wimpatched).
Утилита CheckWIM считает индексы из boot.wim и отображает необходимую информацию которую следует использовать при создании меню.
wimpatched это измененый загрузчик Windows который умеет читать даные что отобразил CheckWIM.
Примечание. Программа установки требует наличия boot.wim в папке sources, обьеденив 32-разрядный и 64-разрядный boot.wim в единый образ мы теряем возможность установки / обновления ОС из Windows. Ниже я объесню что требуется для преодоления данного недостатка.
Если же вы не нуждаетесь в наличии установки / обновления из Windows, то можете экспортировать все индексы в один wim-файл.
Создаем сборку «Microsoft Windows 7 Ultimate x86-x64 EN-RU»
Шаг-за-шагом:
-> подготовка
Копируем содержимое DVD-диска Windows 7 x86 в E:\AIO\DVD
xcopy V:\*.* /s /e /f E:\AIO\DVD
Копируем содержимое DVD-диска Windows 7 x86 в E:\AIO\DVD\64-bit
xcopy V:\*.* /s /e /f E:\AIO\DVD\64-bit
-> работаем с первым индексом образов boot.wim
Монтируем первый индекс 32-разрядного образа boot.wim
dism /mount-wim /wimfile:E:\AIO\DVD\sources\boot.wim /index:1 /mountdir:E:\offline
Добавляем языковые пакеты для компонентов Windows PE
dism /image:E:\offline /add-package /packagepath:E:\packages\pe86-i1
требуемые пакеты для интеграции :LP_RU-RU.CAB
WINPE-SCRIPTING_RU-RU.CAB
WINPE-SRT_RU-RU.CAB
WINPE-WDS-TOOLS_RU-RU.CAB
WINPE-WMI_RU-RU.CAB
dism /image:E:\offline /set-allintl:en-us
Сохраняем изменения и демонтируем образ
dism /unmount-wim /mountdir:E:\offline /commit
Чистим следы
rd /s /q E:\offline & dism /cleanup-wim & md E:\offline
Монтируем первый индекс 64-разрядного образа boot.wim
dism /mount-wim /wimfile:E:\AIO\DVD\64-bit\sources\boot.wim /index:1 /mountdir:E:\offline
Добавляем языковые пакеты для компонентов Windows PE
dism /image:E:\offline /add-package /packagepath:E:\packages\pe64-i1
требуемые пакеты для интеграции :LP_RU-RU.CAB
WINPE-SCRIPTING_RU-RU.CAB
WINPE-SRT_RU-RU.CAB
WINPE-WDS-TOOLS_RU-RU.CAB
WINPE-WMI_RU-RU.CAB
Сохраняем изменения и демонтируем образ
dism /unmount-wim /mountdir:E:\offline /commit
Чистим следы
rd /s /q E:\offline & dism /cleanup-wim & md E:\offline
-> работаем со вторым индексом образов boot.wim
Монтируем второй индекс 32-разрядного образа boot.wim
dism /mount-wim /wimfile:E:\AIO\DVD\sources\boot.wim /index:2 /mountdir:E:\offline
Добавляем языковые пакеты для компонентов Windows PE
dism /image:E:\offline /add-package /packagepath:E:\packages\pe86-i2
требуемые пакеты для интеграции :требуемые пакеты для интеграции:
LP_RU-RU.CAB
WINPE-SCRIPTING_RU-RU.CAB
WINPE-SETUP-CLIENT_RU-RU.CAB
WINPE-SETUP_RU-RU.CAB
WINPE-SRT_RU-RU.CAB
WINPE-WDS-TOOLS_RU-RU.CAB
WINPE-WMI_RU-RU.CAB
Сохраняем изменения и демонтируем образ
dism /unmount-wim /mountdir:E:\offline /commit
Монтируем второй индекс 64-разрядного образа boot.wim
dism /mount-wim /wimfile:E:\AIO\DVD\sources\boot.wim /index:2 /mountdir:E:\offline
Добавляем языковые пакеты для компонентов Windows PE
dism /image:E:\offline /add-package /packagepath:E:\packages\pe64-i2
требуемые пакеты для интеграции :LP_RU-RU.CAB
WINPE-SCRIPTING_RU-RU.CAB
WINPE-SETUP-CLIENT_RU-RU.CAB
WINPE-SETUP_RU-RU.CAB
WINPE-SRT_RU-RU.CAB
WINPE-WDS-TOOLS_RU-RU.CAB
WINPE-WMI_RU-RU.CAB
Чистим следы
rd /s /q E:\offline & dism /cleanup-wim & md E:\offline
Добавляем языковые пакеты для компонентов Windows RE
C помощью 7-zip извлеките образы WinRE.wim из папки
"E:\AIO\DVD\sources\install.wim\<<5 (или ваш индекс)>>\Windows\System32\Recovery" в E:\WIM\x86
"E:\AIO\DVD\sources\install.wim\<<4 (или ваш индекс)>>\Windows\System32\Recovery" в E:\WIM\x64
Монтируем первый (и единственый) индекс 32-разрядного образа winre.wim
dism /mount-wim /wimfile:E:\WIM\x86\winre.wim /index:1 /mountdir:E:\offline
Добавляем языковые пакеты для компонентов Windows RE
dism /image:E:\offline /add-package /packagepath:E:\packages\pe86-i2
требуемые пакеты для интеграции :LP_RU-RU.CAB
WINPE-SCRIPTING_RU-RU.CAB
WINPE-SETUP-CLIENT_RU-RU.CAB
WINPE-SETUP_RU-RU.CAB
WINPE-SRT_RU-RU.CAB
WINPE-WDS-TOOLS_RU-RU.CAB
WINPE-WMI_RU-RU.CAB
Сохраняем изменения и демонтируем образ
dism /unmount-wim /mountdir:E:\offline /commit
Чистим следы
rd /s /q E:\offline & dism /cleanup-wim & md E:\offline
Монтируем первый (и единственый) индекс 64-разрядного образа winre.wim
dism /mount-wim /wimfile:E:\WIM\x64\winre.wim /index:1 /mountdir:E:\offline
Добавляем языковые пакеты для компонентов Windows RE
dism /image:E:\offline /add-package /packagepath:E:\packages\pe64-i2
требуемые пакеты для интеграции :LP_RU-RU.CAB
WINPE-SCRIPTING_RU-RU.CAB
WINPE-SETUP-CLIENT_RU-RU.CAB
WINPE-SETUP_RU-RU.CAB
WINPE-SRT_RU-RU.CAB
WINPE-WDS-TOOLS_RU-RU.CAB
WINPE-WMI_RU-RU.CAB
Сохраняем изменения и демонтируем образ
dism /unmount-wim /mountdir:E:\offline /commit
Чистим следы
rd /s /q E:\offline & dism /cleanup-wim & md E:\offline
Экспортируем образы winre.wim
imagex /export /compress maximum E:\WIM\x86\winre.wim 1 E:\WIM\x86\new\winre.wim
imagex /export /compress maximum E:\WIM\x86\winre.wim 1 E:\WIM\x86\new\winre.wim
.....
(В процессе написания)