Установка Windows 7 Seven по сети.

:

На днях понадобилось установить Windows 7 на нетбук. Ни usb привода, ни флешки приличного объема под руками не оказалось - потому решил сделать установку по сети. Погуглив в поисках готового решения и так и не найдя его решил попробовать сделать аналогично Windows Vista, все таки системы очень похожи.
Итак что нам понадобиться:

1. Дистрибутив с Windows 7 нужной вам редакции
2. Набор автоматической установки Windows® (AIK) для Windows® 7
3. DHCP и TFTP серверы. Используем  tftpd32

4. Компьютер с установленной: 

Windows Server 2003 with Service Pack 2
Windows Vista с пакетом обновления 1 (SP1)
семейство Windows Server 2008
семейство Windows 7
семейство Windows Server 2008 R2
Программой типа Daemon Tools Lite
5. Прямые руки и 20 минут времени. Поехали!!!


Для начала устанавливаем " Набор автоматической установки Windows® (AIK) для Windows® 7", для этого придется смонтировать установочный образ в виртуальный привод(DaemonTools, Alcohol,UltraIso,Nero...) или распаковать в отдельную папку и запустить оттуда StartCD.exe
В меню автозапуска диска выбираем Установка Windows AIK - Далее...-Далее-Готово.

Теперь в меню пуск ищем Microsoft Windows AIK и запускаем оттуда Командная строка средств развертывания. Теперь начинается самое интересное:)

Создаем образ Windows PE

В открытой консоли вводим команды
copype.cmd x86 d:\winpe
imagex /mountrw winpe.wim 1 mount.
Теперь в каталоге d:\winpe\mount у нас находится смонтированный образ winpe.wim.

В процессе загрузки текущего образа Windows PE на экране появиться приглашение командной строки. Для того чтобы не подключать сетевой диск и не запускать программу setup вручную необходимо в каталоге d:\winpe\mount\windows\system32 отредактировать файл startnet.cmd, приведя его к следующему виду. 

wpeinit
net use y: \\192.168.1.1\seven /user:install install
if exist y:\sources\setup.exe (
y:
cd \sources
setup.exe
)
Обратите внимание подключение диска у происходит на правах пользователя install c одноименным паролем. Поэтому важно создать на машине, которая будет выступать сервером пользователя install. Сделать это например можно с помощью команды: 
net user install install /add /passwordchg:no

Если у вас экзотическая сетевая карта - прочитайте ДОПОЛНЕНИЕ в конце статьи.

После того как вся работа с образом закончена необходимо его размонтировать. Сделать это можно с помощью команды: 
imagex.exe /unmount /commit mount
Теперь образ готов.

Создаем каталоги для загрузки по сети

Создаем корневой каталог для загрузки, например D:\Seven\ . В нем создаем каталог boot -  в котором будут храниться загрузочные файлы. Теперь копируем директорию sources c DVD диска Windows 7 в папку Seven. Также в директорию sources вы можете забросить файл autounattend.xml с настройками для автоматической установки, но и без него будет работать.

Теперь заполним каталог boot. 
Снова монтируем образ winpe.wim  для того, что бы скопировать файлы необходимые для загрузки по сети. Сделать это можно с помощью команды  
imagex /mount d:\winpe\winpe.wim 1 d:\winpe\mount.
С помощью команд  
xcopy /ey d:\winpe\mount\windows\boot\pxe d:\seven
xcopy /iy d:\winpe\mount\windows\boot\fonts d:\seven\boot\fonts
copy /y d:\winpe\ISO\boot\boot.sdi d:\seven\boot
копируем в каталог d:\seven необходимые файлы для осуществления загрузки по сети.
После того как вся работа закончено необходимо размонтировать используемый образ командой:
imagex.exe /unmount d:\winpe\mount
Используемый образ WinPE необходимо также скопировать в каталог d:\seven\boot командой:
  copy /y d:\winpe\winpe.wim d:\seven\boot
Также нужно сделать общий доступ(расшарить) к папке D:\Seven для всех пользователей или конкретно для пользователя install.

Теперь создадим файл BCD – boot configuration data (хранилище параметров загрузки)
Для этого нам понадобиться скрипт d:\winpe\createbcd.cmd с таким содержанием:

ДЛЯ РУССКОГО ДИСТРИБУТИВА

bcdedit -createstore %1\BCD
bcdedit -store %1\BCD -create {ramdiskoptions} /d "Ramdisk options"
bcdedit -store %1\BCD -set {ramdiskoptions} ramdisksdidevice  boot
bcdedit -store %1\BCD -set {ramdiskoptions} ramdisksdipath  \boot\boot.sdi
for /F "tokens=2" %%i in ('bcdedit -store %1\BCD -create /d "MyWinPE Boot Image" /application osloader') do  set guid=%%i
bcdedit -store %1\BCD -set %guid% systemroot \Windows
bcdedit -store %1\BCD -set %guid% detecthal Yes
bcdedit -store %1\BCD -set %guid% winpe Yes
bcdedit -store %1\BCD -set %guid% osdevice ramdisk=[boot]\Boot\winpe.wim,{ramdiskoptions}
bcdedit -store %1\BCD -set %guid% device ramdisk=[boot]\Boot\winpe.wim,{ramdiskoptions}
bcdedit -store %1\BCD -create {bootmgr} /d "Windows VISTA BootManager"
bcdedit -store %1\BCD -set {bootmgr} timeout 30
bcdedit -store %1\BCD -set {bootmgr} displayorder %guid%

ДЛЯ АНГЛИЙСКОГО ДИСТРИБУТИВА

bcdedit -createstore %1\BCD
bcdedit -store %1\BCD -create {ramdiskoptions} /d "Ramdisk options" 
bcdedit -store %1\BCD -set {ramdiskoptions} ramdisksdidevice  boot
bcdedit -store %1\BCD -set {ramdiskoptions} ramdisksdipath  \boot\boot.sdi
for /F "tokens=3" %%i in ('bcdedit -store %1\BCD -create /d "MyWinPE Boot Image" /application osloader') do  set guid=%%i
bcdedit -store %1\BCD -set %guid% systemroot \Windows
bcdedit -store %1\BCD -set %guid% detecthal Yes
bcdedit -store %1\BCD -set %guid% winpe Yes
bcdedit -store %1\BCD -set %guid% osdevice ramdisk=[boot]\Boot\winpe.wim,{ramdiskoptions}
bcdedit -store %1\BCD -set %guid% device ramdisk=[boot]\Boot\winpe.wim,{ramdiskoptions}
bcdedit -store %1\BCD -create {bootmgr} /d "Windows VISTA BootManager"
bcdedit -store %1\BCD -set {bootmgr} timeout 30 
bcdedit -store %1\BCD -set {bootmgr} displayorder %guid%
Теперь в нашей консоли выполняем команду:
createbcd.cmd d:\seven\boot

Настройка программы TFTPD32

Запускаем tftpd32.exe , переходим на закладку DHCP и выставляем все как на скриншоте
Теперь жмем Settings, выставляем как на скриншоте, перезапускаем сервер.

ВСЕ ГОТОВО!


Теперь вам нужно подключить пациента к этому серверу по сети и включить в биосе загрузку с сетевой карты. После этого будет получен IP-адрес  через DHCP и выполниться pxeboot.n12 - который запустит WinPE c файла winpe.wim. Сразу после загрузки WinPE будет автоматически примонтирован каталог Seven и с него запуститься установка. Далее установка проходит точно также как и с DVD-диска.

ДОПОЛНЕНИЕ
Если у вас экзотическая сетевая карта, драйвера которой не входят в дистрибутив Windows Seven, вы можете сами их добавить на стадии создания WinPE образа. Для этого из драйвера берем файлы * .cat, *.inf, *.sys и копируем в каталог d:\landrv.
Теперь можно приступать к установки этих драйверов в смонтированный образ, в каталоге mount. Сделать это можно с помощью команды:
peimg.exe /inf= d:\landrv\{DRIVERNAME} mount\windows
Где вместо {DRIVERNAME} имя вашего *.inf - файла

Большую часть информации почерпнул на сайте http://unattendedxp.com . Проверил и испытал лично.