Установка Windows через PXE

Очень часто возникает необходимость устанавливать операционную систему Windows, в рамках одного компьютера можно воспользоваться диском, флешкой, я предлагаю способ устанавливать эту операционную систему через локальную сеть, в этом нам поможет сервер сетевой загрузки, рассмотренный в статьях тут и тут
Все нижеописанные скрипты я поместил в репозиторий git

План работ

1. Устанавливаем среду сборки образов предустановки WinPE
2. Выполняем сборку wim образа
3. Создаем конфигурацию загрузки на сервере загрузки

WinPE через PXE

Для того чтобы поставить Windows нам потребуется система предустановки Windows, которая называется WinPE.
Ее можно сделать скачав пакет ADK с сайта Microsoft
После установки можно приступать к сборке образа
В рабочем каталоге необходимо создать каталог drivers, в который можно будет сложить драйвера на сетевые карты для образа WinPE

Сборка образа WinPE

Я создал несколько скриптов позволяющих автоматически собирать образы, заточенные под установку ОС Windows.
В Windows7 мне пришлось отключать проверку цифровой подписи драйверов, так как команда dism вываливалась с ошибками, это делается при старте системы, клавишей F8 вызываем меню загрузки и выбираем «отключение обязательной цифровой подписи драйверов».

Автоматизация процесса создания образа WinPE

Скрипты описанные ниже представлены в порядке их запуска и имеют достаточно подробное описание, запускаются они как в автоматическом режиме с помощью setup.bat, так и по отдельности, необходимые переменные помещаю в config.bat

config.bat

В этом скрипте устанавливаем рабочую дерикторию и архитектуру создаваемого образа
arch могут быть «x86″,»amd64»

generate.bat

Создание рабочей дериктории winpe, в процессе работы в каталоге который мы указали появится подкаталог с названием архитектуры. В версииях SDK для Win10 были изменнены пути к скрипту copype, теперь чтобы его установить требуется пакет Windows PE add-on for ADK.

dp0 config.bat
copype %arch% %workdirectory%\%arch%

unpack.bat

Скрипт распаковки созданного wim образа, распаковывает в каталог mount

dp0 \config.bat
dism /Mount-Image /Imagefile:"%workdirectory%\%arch%\media\sources\boot.wim" /index:1 /MountDir:"%workdirectory%\%arch%\mount"

import_start.bat

Помещаем скрипт автозагрузки в системный каталог, в качестве скрипта автозагрузки выступает startnet.cmd, который можно отыскать в примонтированном образе /mount/windows/system32

dp0 config.bat
xcopy /Y %

dp0 startnet. cmd %workdirectory%\%arch% \mount\windows\system32\

driver.bat

Импортируем рекурсивно драйвера на сетевые карты, драйвера должны быть сложены возле каталога со скриптом, команда dism выбирает inf файлы и по ним ищет остальные модули драйвера.

dp0 config.bat
dism /image:%workdirectory%\%arch%\mount /add-driver /driver:"%workdirectory%\drivers" /recurse /forceunsigned

extractBootPXE.bat

Копируем из wim образа файлы для загрузки через PXE, в самом wim образе находятся необходимые модули для загрузки через PXE. Кроме того у меня не получилось загрузиться по сети с pxeboot.n12, но достаточно было ео переименовать заменив n12 на 0 как загрузка прошла без ошибок.

dp0 config.bat
mkdir %workdirectory%\%arch% \PXE
echo f | xcopy /Y %workdirectory%\%arch% \mount\windows\boot\pxe\pxeboot.n12 %workdirectory%\%arch% \PXE\pxeboot.0
xcopy /Y %workdirectory%\%arch% \mount\windows\boot\pxe\bootmgr.exe %workdirectory%\%arch% \PXE
mkdir %workdirectory%\%arch% \PXE\Boot
xcopy /Y %workdirectory%\%arch% \media\Boot\boot.sdi %workdirectory%\%arch% \PXE\Boot

pack.bat

Упаковываем в образ рабочую деррикторию, следует отметить что необходимо из нее выйти (она находится в каталоге mount), иначе образ не отмонтируется.

dp0 \config.bat
dism /Unmount-Image /MountDir:"%workdirectory%\%arch%\mount" /commit

export.bat

Выгружаем из wim образа только наш слой, так как все наши изменения хранятся в образе в виде наслоений и образ начинает понемногу расти, тем самым увеличивая время загрузки.

dp0 \config.bat
Dism /Export-Image /SourceImageFile:%workdirectory%\%arch%\media\sources\boot.wim /SourceIndex:1 /DestinationImageFile:%workdirectory%\%arch%\PXE\winpe%arch%.wim

Если необходимо откатить изменения которые мы делали после распаковки, то запускаем скрипт pack_dscard.bat

pack_dscard.bat

dp0 \config.bat
call %

dp0 var.bat
dism /Unmount-Image /MountDir:"%workdirectory%\%arch%\mount" /discard

setup.bat

Автоматизируем процесс создания wim образа, запустив все созданные скрипты по очереди.

dp0 \config.bat
call %

dp0 \generate.bat
call %

dp0 \unpack.bat
call %

dp0 \import_start.bat
call %

dp0 \driver.bat
call %

dp0 \extractBootPXE.bat
call %

dp0 \pack.bat
call %

Еще понадобится файл с описанием загрузки BCD, он не заработал у меня из среды средств развертывания, поэтому запускаю средствами cmd с повышенными правами

createBCD.bat

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

В результате работы скриптов у получается следующая структура каталогов:

Настройка сервера загрузки

Копируем содержимое каталога PXE в корень tftp каталога сервера загрузки
Так как windows использует другой разделитель для своих путей, то нам необходимо сделать карту символов для tftp сервера, для этого в файле конфигурации /etc/default/tftp-hpa вносим изменения и указываем путь к файлу с картой:

Сервис tftpd-hpa

TFTP_USERNAME= "nobody"
TFTP_DIRECTORY= "/srv/template"
TFTP_ADDRESS= "0.0.0.0:69"
TFTP_OPTIONS= "—secure -v -c -m /srv/template/tftpd.remap"

Создаем файл tftpd.remap с таким содержимым:

Это правило будет заменять все обратные слешы на прямые, затем помещаем этот файл также в корень tftp сервера (чтобы нам легко было изменить в случае чего)
Перезапускаем tftp-hpa сервер

Настройка сервиса общих каталогов Samba

Для установки нам еще понадобится сервер samba,в debian и убунту он ставится командой

в конфигурационном файле /etc/samba/smb.conf добавляем секцию описывающую наш общий каталог:

Образ Window 7 и установовчный скрипт setup.bat

Теперь распаковываем образ с win7 и помещаем каталог sources в публичный каталог samba.
Создаем скрипт start.bat, в котором запускаем програму setup.exe из распакованного sources

Последнее что нам осталось — это прописать в меню загрузки пункт с winpe:

В итоге все получилось

Скрипты в GitHub
После этого у нас загрузившись через PXE начнется загрузка WinPE:
winpe_boot_boot.sdi
winpe_boot_winpe_wim
winpe_setup_win7

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Источник



Linux pxe установка windows

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-00

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-00

Кроме этого:  Замены лобового стекла Набережные Челны

Всем привет сегодня расскажу как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5. Представьте ситуацию что у вас ситуация что вам по сети нужно установить на голый сервер Windows, Linux, ESXI 5.5 или диагностические утилиты, прошивающие железо или позволяющие загрузить DOS, да еще и чтобы сервер был один, который мог все это делать так, что WDS нам не подходит в данном случае. Ниже будет расписано более нескольких десятков уроков, как все это чудо вам реализовать.

Так вот представим ситуацию пришли к вам новые сервера, вы в BIOS выставляете загрузку по PXE и у вас появляется меню в котором можно выбрать установку Windows, Debian, Ubuntu, VMware ESXI 5.5, CentOS, можете загрузить диагностические утилиты по тесту памяти или диски обновления драйверов для каждого вендора железа, неправда ли круто, давайте посмотрим как это сделать, в основу статьи была положена реализация ребят из ServerClub. В качестве плацдарма будет выступать Debian 8. Как установить Debian читайте тут. Вот как будет выглядеть ваше меню установки.

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-18

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-18

Нам потребуется установить данный список компонентов. Единственное у вас уже может быть установлен свой DHCP сервер и мы поговорим про его реализацию для данного сервера.

  • TFTP сервер
  • Samba
  • Syslinux
  • DHCP сервер
  • HTTP сервер
  • NFS сервер

Приступим первым мы рассмотрим как установить TFTP сервер в Debian. Вводим команду.

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-01

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-01

приведем конфиг /etc/default/tftpd-hpa к виду

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-02

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-02

и поместим в /etc/tftpd.remap вот такую строку. Создадим файл tftpd.remap командой

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-03

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-03

И вписываем в него вот такую строку.

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-04

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-04

Еще может быть проблема с ThinkPad X201i и в VirtualBox с tftp. Что на ThinkPad X201i, что в VirtualBox загрузка отваливалась с: PXE-E32: TFTP Open timeout

Судя по всему, PXE агенты умудрились быть не полностью совместимыми, полечилось добавлением «-r blksize»:
TFTP_OPTIONS=»—secure -l -v -r blksize»

Далее смотрим как установить Samba в Debian. Устанавливается командой:

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-05

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-05

В конец файла /etc/samba/smb.conf добавим информацию о папке, где будут лежать инсталляционные файлы Windows.

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-06

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-06

Прописываем в конфиге

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-07

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-07

Cоздаем папку для обозов, даем права и перезапускаем самбу

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-08

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-08

Далее рассмотрим как установить Syslinux в Debian. Скачиваем и заливаем в корень TFTP сервера все необходимое

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-10

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-10

# tar -xf syslinux-4.02.tar.gz
# cd syslinux-4.02/
# find ./ -name «memdisk» -type f|xargs -I <> cp ‘<>‘ /srv/tftp/
# find ./ -name «pxelinux.0″|xargs -I <> cp ‘<>‘ /srv/tftp/
# find ./ -name «*.c32″|xargs -I <> cp ‘<>‘ /srv/tftp/

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-11

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-11

Перейдем к настройке Syslinux

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-12

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-12

Далее создадим конфиг основного меню и внесем начальные настройки

LABEL bootlocal
menu label Boot from first HDD
kernel chain.c32
append hd0 0
timeout 120 # время в меню на выборе пункта загрузки, 120 это 12 секунд
TEXT HELP
The system will boot after the time is up
ENDTEXT

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-13

Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-13

Во второй части как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5 мы разберем как установить DHCP сервер или настроить существующий DHCP server на Windows или Cisco.

Источник

Установка Windows Server 2008 по сети с Linux PXE сервера. Кастомизация образа WinPE

Мы хотим не только пиарить себя и свои услуги здесь, но и поделиться опытом и знаниями, полученными в ходе администрирования огромного количества проектов, и в конечном итоге сделать достойный и полезный блог. Для этого мы попросили наших инженеров поучаствовать в этом. А на будущее хотим понять: будет это интересно хабровчанам? И если да — то в какой форме?

Под катом в этот раз пойдет речь об установке Windows Server 2008 по сети с Linux PXE сервера.

Меню загруженного WinPE.

Каждый ленивый хороший системный администратор стремится автоматизировать как можно больше неинтересной ручной работы, дабы больше времени посвещать медитации и дзен.
Пишутся скрипты, файлы ответов для различных визардов, настраиваются системы мониторинга и оповещения, системы управления конфигурациям…
Ничто не должно отвлекать на пути к просветлению.

  • Выполнение каких-либо административных действий(обновление прошивки RAID контроллера например)
  • Установка Windows Server 2008 в «ручном» режиме.
  • Полностью автоматическая установка Windows Server 2008
Этап № 1. Windows

Для подготовки образа WinPE потребуется компьютер с Windows 7 либо Windows Server 2008, а так же установленный пакет Windows AIK

Когда нужная ОС установлена и пакет инсталирован.

Монтируем образ winpe.wim для внесения изменений, а так же подготовим загрузчик.
В открывшейся консоли последовательно вводим команды:

Запуск оболочки WinPE осуществляет файл startnet.cmd
Так как меню у нас на русском языке, нужен редактор позволяющий менять кодировку текста(CP866 в нашем случае).
Я использую Notepad++
Путь к файлу: C:\winpe\mount\Windows\System32\startnet.cmd
Отредактируем его для добавления меню, как на скриншоте выше.

Сохраняем изменения в startnet.cmd .
Отмонтируем winpe.wim закомитив изменения и скопируем полученный образ к остальным файлам.

Теперь займемся настройкой Данных Конфигурации Загрузки (BCD)

Создадим новый скрипт createbcd.cmd. Он обеспечит генерацию нужной BCD.
Вновь открываем текстовый редактор и вставляем туда следующий код:

Приготовим файл ответов autounattend.xml для автоматической установки Windows Server 2008.
На первом диске сервера создается один раздел, занимающий все пространство диска. ОС ставится в этот раздел, устанавливается пароль для учетной записи Administrator, вводится ключ, но Windows не активируется.

Файл нужно скопировать в корень smb шары, которая монтируется скриптом startnet.cmd .
Подготовительный этап в Windows близится к завершению, остается скопировать папку c:\netboot\win в корень tftp сервера, а так же разместить в папке доступной для монтирования по протоколу sbm файлы с установочного диска/образа Windows Server 2008.

Кроме этого:  Достоинства капельного полива Жук
Этап № 2. Linux


PROMPT 0
UI vesamenu.c32
MENU BACKGROUND pxelinux.cfg/logo.jpg
MENU TITLE ServerClub PXE Boot Menu
MENU TIMEOUT 50
MENU COLOR TITLE 0 #ffffffff #00000000
MENU COLOR SEL 7 #ffffffff #ff000000

LABEL CentOS ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/centos

LABEL Debian ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/debian

LABEL Ubuntu ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/ubuntu

LABEL BSD ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/bsd

LABEL ArchLinux ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/arch

LABEL Windows ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/windows

LABEL VmWare ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/vmware

LABEL LiveCD`s ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/live

LABEL Utilities ->
KERNEL vesamenu.c32
APPEND pxelinux.cfg/utils

PROMPT 0
UI vesavesamenu.c32
MENU BACKGROUND pxelinux.cfg/logo.jpg
MENU TITLE Windows
MENU TIMEOUT 50
MENU COLOR TITLE 0 #ffffffff #00000000
MENU COLOR SEL 7 #ffffffff #ff000000

LABEL < — Main Menu
KERNEL vesamenu.c32
APPEND pxelinux.cfg/default

LABEL Windows2003_x64
kernel w2k3.0

LABEL Windows2008_x64_R2(menu inside)
kernel Boot/pxeboot.n12

LABEL < — Main Menu
KERNEL vesamenu.c32
APPEND pxelinux.cfg/default

Небольшая демонстрация =)

Фрагмент начала установки

На этом все.
Благодарю за внимание!

При подготовке статьи использовались следующие источники:

Автор статьи и по совместительству инженер ServerClub — FessAectan

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Источник

PXE Win Install: установка Windows 7 по сети

Напоминаем, что попытки повторить действия автора могут привести к потере гарантии на оборудование и даже к выходу его из строя. Материал приведен исключительно в ознакомительных целях. Если же вы собираетесь воспроизводить действия, описанные ниже, настоятельно советуем внимательно прочитать статью до конца хотя бы один раз. Редакция 3DNews не несет никакой ответственности за любые возможные последствия.

Ранее мы уже познакомились с процессом массированного разворачивания по сети готового образа жёсткого диска с предустановленной Windows 7 сразу на множество машин. Использовали мы для этого связку из DRBL и Clonezilla. Ключевой недостаток данного подхода заключается в отсутствии гибкости, связанном с вынужденным ограничением на использование однотипной конфигурации клиентских ПК. Развивая тему сетевой загрузки, мы рассмотрели создание универсального PXE-реаниматора. В этом случае ПК при старте подгружает с сервера в оперативную память live-образ той или иной ОС и работает с ним.

Аналогичным образом мы можем загрузить по сети среду предустановки Windows (PE), подмонтировать расшаренную папку с установочными файлами и запустить оттуда инсталлятор. Похожим образом работают и фирменные сервисы Microsoft RIS или WDS, однако они требуют наличия Windows Server. В случае не очень большого числа клиентских машин можно обойтись бесплатными решениями. Пример «классической» реализации такой схемы мы и рассмотрим. На одном из компьютеров с Windows Vista/7 будет поднят DHCP/TFTP/SMB-сервер.

О требованиях к железу уже говорилось в предыдущих материалах. Тем не менее ещё раз кратко пробежимся по ним. Во-первых, в BIOS всех компьютеров должна быть включена сетевая загрузка. Во-вторых, все машины необходимо на время объединить в изолированную локальную сеть, желательно гигабитную. Естественно, их конфигурация должна удовлетворять требованиям 32-битной Windows 7, так как установку именно этой ОС мы и будем рассматривать. Но в общих чертах описываемый метод подойдёт и для Windows Vista. Про «восьмёрку», пожалуй, говорить ещё рано.

Нам опять понадобится Windows Automated Installation Kit (WAIK). Скачиваем ISO-образ, распаковываем или монтируем его и устанавливаем этот набор утилит. В главном меню выбираем Microsoft Windows AIK → Deployment Tools Command Prompt. Перед нами откроется консоль, в которой надо ввести следующую команду:

Эта команда копирует в каталог C:\WinPE файлы, необходимые для создания образа с предустановочным окружением 32-разрядной Windows 7. Для 64-битной версии надо указать параметр amd64 вместо x86. Сразу же создайте ещё одну папку C:\TFTP\, которая будет корневой для TFTP-сервера, а в ней сделайте директорию Boot. В последней будут храниться загрузочные файлы. Чтобы получить оные, нужно смонтировать базовый wim-образ Windows PE и скопировать их оттуда.

Команда imagex всего лишь распаковывает файлы из wim-образа в подпапку mount. Их можно отредактировать или, к примеру, добавить свои, а потом снова упаковать в единый архив. Этим займёмся чуть позже, а пока закроем и снова откроем Deployment Tools Command Prompt, скопируем ещё один важный файл и отмонтируем образ.

Скопируем файл winpe.wim в каталог C:\TFTP\Boot под именем boot.wim и приступим к созданию загрузочного меню Windows (BCD).

В простейшем случае нам достаточно указать параметры для RAM-диска.

Обратите внимание на вывод последней выполненной команды. В нём содержится GUID, который надо скопировать и подставить вместо <guid> в командах ниже.

Для начала стоит попробовать загрузиться с «чистого» образа Windows PE. Однако кое-какие правки в него надо будет внести. Во-первых, могут понадобиться драйвера для сетевой карты или контроллера жёсткого диска. Во-вторых, неплохо было бы сделать автоматическое подключение к сетевой папке и запуск установщика. Снова открываем консоль WAIK и монтируем загрузочный образ.

Для добавления драйверов (в виде *.inf и сопутствующих файлов, конечно же) используется следующая команда:

Также необходимо отредактировать простой текстовый файл [C:\WinPE\]mount\windows\system32\startnet.cmd. Этот скрипт выполнится при старте PE-окружения и будет монтировать сетевую папку в качестве логического диска, с которого запустится установщик Windows 7.

192.168.0.51 — это IP-адрес сервера, с которого производится установка. На нём надо скопировать все файлы с инсталляционного образа Windows 7 в какую-либо папку (в нашем примере это Win7Install) и открыть к ней доступ по сети. Вместо password и username надо соответственно указать пароль и имя локального пользователя. Можно даже создать отдельную учётную запись под это дело. В конце не забудьте закрыть wim-файл с применением изменений и скопировать его в директорию TFTP-сервера. Консоль можно закрыть.

Ранее мы уже касались темы файла ответов для автоматизации процесса установки и первичной настройки Windows 7. В данном случае мы также имеем полное право использовать его возможности. Для подготовки файла лучше воспользоваться утилитой Windows System Image Manager из комплекта WAIK. После запуска в меню выбираем File → New answer file, затем нам предложат выбрать установочный образ системы. Он находится в каталоге sources, откуда будет производиться установка ОС (в нашем примере Win7Install/sources) — выбирайте файл с расширением clg и вашей редакцией ОС в качестве имени (например, install_Windows 7 PROFESSIONAL.clg).

В панели Windows Image имеется дерево компонентов, которые можно настраивать. Для этого надо кликнуть по любому из них правой кнопкой мыши и во всплывающем меню выбрать пункт Add Setting to Pass * — он тут же появится в панели Answer File, где можно будет отредактировать различные параметры. Например, добавить учётные записи, разбить диски, установить обновления и так далее. Мы не будем подробно останавливаться на наполнении файла ответов — всю необходимую информацию можно почерпнуть в Сети или из встроенной справки. Готовый файл надо сохранить всё в той же установочной директории sources под именем autounattend.xml.

Осталось совсем немного. Необходимо настроить DHCP и TFTP. В принципе, вы можете использовать практически любые программные реализации этих серверов. Мы же для примера воспользуемся универсальной утилитой Serva32/64. После запуска программы надо кликнуть по кнопке Settings, перейти на вкладку DHCP и отметить галочкой пункт DHCP server. Чуть ниже кликаем по Bind DHCP to this address и в выпадающем списке выбираем IP-адрес сетевого интерфейса, на котором будет работать сервер. Естественно, адрес должен быть статичным и заранее заданным.

Кроме этого:  Установка автоматического выключателя

В поле IP Pool 1 st addr указываем начальный IP-адрес диапазона выдаваемых адресов, а в Pool size — число DHCP-клиентов. Не забудьте также прописать маску подсети (Subnet mask). Наконец, в Boot File указываем относительный путь до файла PXE-загрузчика. В нашем случае это может быть pxeboot.com или pxeboot.n12. В первом случае для старта сетевой загрузки будет предложено нажать клавишу F12, иначе будет продолжен запуск с локальных носителей. Если F12 отсутствует, то надо указать второй загрузчик (возможно, придётся переименовать его в pxeboot.com).

На вкладке TFTP аналогичным образом включаются галочки TFTP Server и Bind TFTP to this address, указывается корневая папка сервера (у нас это C:\TFTP) и обязательно отмечается опция Option negotiation, а PXE Compatibility выключается. Всё, теперь нажимаем OK, сохранив тем самым настройки, и перезапускаем утилиту. Проверьте, чтобы брандмауэр не блокировал используемые порты (UDP 67-69). Можно попробовать загрузиться по сети на одной из клиентских машин. Для выявления проблем используйте логи, которые генерирует Serva. Если всё в порядке, автоматически запустится инсталлятор Windows 7, дальнейшая работа с которым ничем не отличается от той, что идёт при загрузке с установочного USB/DVD/HDD.

Источник

NIGHT Блог

Продолжая серию статей по развёртыванию Windows, сегодня мы займёмся подготовкой сервера сетевой загрузки на базе ОС Linux и организацией загрузки Windows PE с такого сервера, а так же подготовим установочный дистрибутив Windows 7 или Windows Server 2008 R2 для установки с сетевого ресурса. В этой инструкции я приведу пример для Debian Linux 8.

Подготовка загрузочных файлов Windows для PXE

  • winpe/boot/fonts/wgl4_boot.ttf — из поставки Windows
  • winpe/boot/bcd — хранилище конфигурации (необходимо сгенерировать)
  • winpe/boot/boot.sdi — из поставки Windows
  • winpe/boot/winpe.wim — образ Windows PE (инструкция по сборке)
  • winpe/pxeboot.0 — pxeboot.n12 из поставки Windows
  • winpe/bootmgr.exe — из поставки Windows

Установка PXE-сервера

Установка TFTP

Т.к. Windows будет искать свои файлы загрузки относительно корня tftp, делаем маппинг и ассоциируем эти файлы с каталогом winpe на сервере.

Создаём файл маппинга:

Последняя строка «gr \\ /» говорит tftp, если в путях указывются обратные слэши, менять их на прямые.
Внимание! Важно, чтобы регистре букв в именах файлов был точно таким же, как вы указывайтей в файлах. Если вы в на этапе создания конфигурации указали /boot/bcd, а файл назвали /Boot/BCD, загрузчик не сможет загрузить систему, т.к. не найдёт нужного файла.

Создаём наш каталог загрузки:

Создаём меню загрузки

PROMPT 0
UI vesamenu.c32
MENU TITLE PXE Server Boot Menu
MENU BACKGROUND pxelinux.cfg/menu.jpg
TIMEOUT 600

LABEL ^0) Boot from hard disk
TEXT HELP
Boot from first (hdd 0)
ENDTEXT
COM32 chain.c32
APPEND hd0 1

LABEL ^1) Load Windows PE 3.1 x86
TEXT HELP
Boot Windows PE x86 from pxeboot
ENDTEXT
kernel winpe/pxeboot.0

Альтернативный вариант загрузки с PXE

Так же можно организовать ещё один вариант загрузки системы с PXE, используя memdisk, но он потребует уже значительно большего объёма памяти и у вас могут возникнуть проблемы с компьютерами с объёмом памяти менее 1Гб.

Tftp сервер должен быть уже подготовлен, по инструкции выше.

Нам понадобится memdisk, копируем его из состава пакета syslinux:

Настройка DHCP

  • filename = «pxelinux.0»;
  • next-server <ip-адрес сервера>;

Устанавливаем DHCP сервер:

Теперь у нас должно загружаться окружение Windows PE. Через него мы можем скопировать данные из аварийной системы и установить чистую систему на машину.

Выставляем в виртуальной машине загрузку с сетевого адаптера, и пробуем загрузиться через сеть.

Сетевая установка Windows

Далее для сетевой установки можно использовать уже существующий файловый сервер на базе Windows или SAMBA. Но, посколько я решил организовать хранение установочных дистрибутивов системы на этом же сервер, то кратко покажу, как организовать такой SAMBA-сервер на нашем серере PXE.

Тут всё достаточно просто. Я приведу минимальный конфиг smb.conf, без подключения сервера к домену и задания пользовательских учётных записей. Это будет просто сервер с гостевым доступом на чтение.

Правим конфигурацию samba:

[global]
workgroup = WORKGROUP
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
server role = standalone server
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
acl allow execute always = true

[win7x86]
comment = Windows 7
path = /srv/dist/win7x86
guest ok = yes
browseable = yes
create mask = 0644
directory mask = 0755
acl allow execute always = true

Не забудьте указать «acl allow execute always = true». Этот параметр необходимо указать для того, чтобы можно было запускать на исполнение exe-файлы, иначе запустить setup.exe у вас не получится.

Возьмём установочный дистрибутив Windows 7 SP1 x86 необходимой редакции, и скопируем все файлы на наш сервер в папку с дистрибутивами:

Попробуем обратиться к нашему сетевому ресурсу по имени или ip адресу «\\pxeboot\» или «\\192.168.140.10\».

Теперь для того, чтобы у нас с нашего сервера устанавливалась наша система, то берём файл install.wim, который мы создавали при сборке собственного дистрибутива Windows, и заменяем им дистрибутивный файл.

Запуск установки системы Windows 7 x86

В такойм случае, для того, чтобы разворачивать системы Windows на большом количестве ПК, вам будет нужно лишь загрузиться с PXE, подключить сетевой ресурс, и запустить установку с указанием файла ответов.

Источник