Создание собственного загрузочного диска на базе Windows PE

С выходом Windows 7 вышел и новый WAIK. В целом работа с ним особо не отличается от работы с WAIK для Windows Vista, однако в нем наконец-то появилась поддержка русского языка. А это означает что можно беспроблемно его использовать для например сохранения данных с нерабочено ноутбука/компьютера.
Получить его можно здесь – http://www.microsoft.com/downloads/details.aspx?familyid=696DD665-9F76-4177-A811-39C26D3B3B34&displaylang=en. Хотелось бы отметить, что в отличие от предыдущей версии для скачивания данного WAIK не нужно проходить проверку подлинности Windows. Странно, но это так. Скачиваем, пишем на болванку, устанавливаем. И затем запускаем Deployment Tools Command Prompt (запустить необходимо с правами администратора).
А дальше все очень просто:
d:\Data\OsDeployImages\boot\work\image – директория для работы,правится по надобности.
copype.cmd x86 d:\Data\OsDeployImages\boot\work\image\
Директория image не должна существовать и будет создана.
В отличие от предыдущего WAIK тут практически все делается одной командой – dism
Монтируем образ:
dism /mount-wim /wimfile:d:\data\osdeployimages\boot\work\image\boot.wim /index:1 /mountdir:d:\Data\OsDeployImages\boot\work\image\mount

Добавляем поддержку русского языка:

dism /image:d:\Data\OsDeployImages\boot\work\image\mount /add-package /packagepath:e:\WinPE_LangPacks\x86\ru-ru\lp.cab

Диск E это DVD с WAIK.
Устанавливаем русский язык языком по умолчанию:

dism /image:d:\Data\OsDeployImages\boot\ork\image\mount\ /set-allintl:ru-ru

Учитывая что я обычно гружусь по сети, то необходимо интегрировать в образ все необходимые драйвера сетевых карт для поддержки любого имеющегося у меня оборудования. Сложил я все драйвера в директорию D:\Data\OsDeployImages\boot\drivers, где для каждой железяки создана отдельная директория с драйверами для нее. И тут меня ждал сюрприз – теперь inf файл нужно указывать конкретно, указание путь\*.inf как было раньше уже не работает. Ручками перепысывать было лень и появился такой маленький скрипт для powershell:

Get-ChildItem D:\Data\OsDeployImages\boot\drivers -recurse | where {$_.extension -eq “.inf” } | select fullname | foreach-object { echo “Dism /image:d:\Data\OsDeployImages\boot\work\image\mount /Add-Driver /Driver:”$_.fullname} | out-file d:\list.txt -encoding ascii

После его работы получаем список вида:

Dism /image:d:\Data\OsDeployImages\boot\work\image\mount /Add-Driver /Driver:D:\Data\OsDeployImages\boot\drivers\2510p\e1000325.inf
Dism /image:d:\Data\OsDeployImages\boot\work\image\mount /Add-Driver /Driver:D:\Data\OsDeployImages\boot\drivers\2510p\E1E5132.INF
Dism /image:d:\Data\OsDeployImages\boot\work\image\mount /Add-Driver /Driver:D:\Data\OsDeployImages\boot\drivers\2510p\E1e6032.inf
Dism /image:d:\Data\OsDeployImages\boot\work\image\mount /Add-Driver /Driver:D:\Data\OsDeployImages\boot\drivers\2510p\e1g6032.inf
Dism /image:d:\Data\OsDeployImages\boot\work\image\mount /Add-Driver /Driver:D:\Data\OsDeployImages\boot\drivers\2510p\e1q5132.inf
Dism /image:d:\Data\OsDeployImages\boot\work\image\mount /Add-Driver /Driver:D:\Data\OsDeployImages\boot\drivers\2510p\e1q6032.inf
Dism /image:d:\Data\OsDeployImages\boot\work\image\mount /Add-Driver /Driver:D:\Data\OsDeployImages\boot\drivers\2510p\PRO1000\DOS\oemsetup.inf
Dism /image:d:\Data\OsDeployImages\boot\work\image\mount /Add-Driver /Driver:D:\Data\OsDeployImages\boot\drivers\2510p\PRO1000\Win32\e1000325.inf
Dism /image:d:\Data\OsDeployImages\boot\work\image\mount /Add-Driver /Driver:D:\Data\OsDeployImages\boot\drivers\2510p\PRO1000\Win32\E1E5132.INF

который просто исполняем.

Далее добавляем нужные программы:

Создаем директорию d:\Data\OsDeployImages\boot\work\image\mount\Tools и в нее добавляем все, что нам нужно. Для снятия образов нужно не забыть скопировать на него утилиту imagex.
Если необходимо запускать какую-то программу после загрузки, то добавляем ее в файлик d:\Data\OsDeployImages\boot\work\image\mount\Windows\System32\Startnet.cmd Вообще-то для этого существует файл Winpeshl.ini, но вот я после загрузки запускаю Far Manager. Если его запуск прописать в Winpeshl.ini то startnet.cmd почему-то не отрабатывает. Почему не знаю, у меня работало именно таким образом.
После чего командой
dism /unmount-Wim /MountDir:d:\Data\OsDeployImages\boot\work\image\mount /Commit
отмонтируем образ boot.wim и на этом этап создания образа окончен. Добавляем его например как boot image в WDS сервер и получаем возможность загрузить по сети любой компьютер.
Если нужна загрузка с DVD, то все достаточно просто:

Монтируем образ:

dism /mount-wim /wimfile:d:\Data\OsDeployImages\boot\work\image\boot.wim /index:1 /mountdir:d:\Data\OsDeployImages\boot\work\image\mount

и создаем загрузочное меню:

Bcdedit /createstore d:\Data\OsDeployImages\boot\work\image\mount\boot\BCD
Bcdedit /store d:\Data\OsDeployImages\boot\work\image\mount\boot\BCD -create {bootmgr} /d “Boot Manager”
Bcdedit /store d:\Data\OsDeployImages\boot\work\image\mount\boot\BCD -set {bootmgr} device boot
Bcdedit /store d:\Data\OsDeployImages\boot\work\image\mount\boot\BCD -create /d “WINPE” -application osloader
После данной команды будет выдан ID, который необходимо запомнить. {668f076f-a44f-11de-aab5-002264ad89b9}
Bcdedit /store d:\Data\OsDeployImages\boot\work\image\mount\boot\BCD -set {668f076f-a44f-11de-aab5-002264ad89b9} osdevice boot
Bcdedit /store d:\Data\OsDeployImages\boot\work\image\mount\boot\BCD -set {668f076f-a44f-11de-aab5-002264ad89b9} device boot
Bcdedit /store d:\Data\OsDeployImages\boot\work\image\mount\boot\BCD -set {668f076f-a44f-11de-aab5-002264ad89b9} path \windows\system32\winload.exe
Bcdedit /store d:\Data\OsDeployImages\boot\work\image\mount\boot\BCD -set {668f076f-a44f-11de-aab5-002264ad89b9} systemroot \windows
Bcdedit /store d:\Data\OsDeployImages\boot\work\image\mount\boot\BCD -set {668f076f-a44f-11de-aab5-002264ad89b9} winpe yes
Bcdedit /store d:\Data\OsDeployImages\boot\work\image\mount\boot\BCD -displayorder {668f076f-a44f-11de-aab5-002264ad89b9} -addlast
oscdimg -n -m -o -bd:\Data\OsDeployImages\boot\work\image\etfsboot.com d:\Data\OsDeployImages\boot\work\image\mount d:\Data\OsDeployImages\boot\winpe_x86.iso

Все, загрузочный iso образ готов. Если boot.wim не нужен, то его можно отмонтировать.