Настройка pxe сервера windows
Порывшись в сети нашел массу инструкций по аналогичной теме. Вроде всё разжевано и инструкции чёткие, но при их выполнении происходят какие-то не очевидные вещи и пока разбираешься в том, что надо сделать приходится параллельно искать информацию о появляющихся ошибках. Получив опыт и имея готовую систему я пришел к выводу, что всё можно было сделать другими инструментами, не устанавливая массу стороннего софта и не заморачиваясь со сложным редактированием образов. Материал касающийся нашей темы косвенно я опишу лишь поверхностно, чтобы не скатываться в занудную статью о настройке серии роутеров на раздачу DHCP. То, что касается непосредственно создания аналога сервера развёртывания конфигураций я опишу подробно и с картинками. Не скриншотами командных файлов, а нормальным текстом, который можно скопировать и запустить на своём компьютере.
Если вы сталкивались с инструкциями в которых необходимо «поднимать» активдиректори и доменкотроллер, монтировать диски через определённые утилиты и долго шаманить над созданием текстовых файлов, перепечатывая текст с монитора, то представляю вам более простой вариант реализации. Тот кто пользовался этой инструкцией дали пару рекомендаций о подаче информации и думаю, что теперь она вылизана как никогда чётко и красиво.
Есть масса методов установки операционных систем по сети. Данный вариант предназначен для маленьких сетей в которых нет возможности установить сервер с операционной системой Windows Server. Например, если компания не хочет нарушать лицензионную чистоту, а администратор сети не умеет администрировать Linux-сервера. Единственная сложность с которой придётся столкнуться заключается в поиске оригинального файла winpe.wim.
Хочу обратить особое внимание на то, что для сетевой установки желательно использовать Windows Deployment Services (WDS), а не самопальные системы. Там больше инструментов и они более гибкие.
Вот последовательность которую будем проводить для настройки нашей системы.
- Настраиваем DHCP-сервер,
- настраиваем TFTP-сервер,
- копируем PXElinux,
- расшариваем папку с распакованными образами,
- скачиваем и извлекаем winpe.wim,
- дорабатываем winpe.wim для работы с сетью,
- создаём файл для выбора устанавливаемой ОС.
Думаю стоит немного уточнить, что для чего нужно.
Настройка DHCP-сервера
Исходя из того, что сеть небольшая и в ней нет ни Линуксового, ни виндового сервера, то можно предположить, что в качестве DHCP-сервера выступает роутер компании. Настройка каждого конкретного роутера уникальна и по этому администратор должен самостоятельно решить вопрос о добавлении необходимых настроек. В качестве примера могу привести настройку роутеров Cisco.
Настройка TFTP-сервера
Следующим шагом мы настраиваем TFTP-сервер. Хотя, что там настраивать? Устанавливаем программу Tftpd64 и в ней указываем каталог в котором располагаются файлы для нашего проекта. Допустим, что корень TFTP-сервера расположен по адресу D:\TFTP\. Для усиления системы безопасности я не рекомендую располагать данные публичного характера на системном диске.
Подготовка PXElinux
- /pxelinux.cfg/
- /pxelinux.cfg/default
- /pxelinux.cfg/graphics.conf
- /ldlinux.c32
- /libcom32.c32
- /libutil.c32
- /pxelinux.0
- /vesamenu.c32
Создаём главное меню с выбором действия. Меню состоит всего из двух пунктов. Первый отвечает за загрузку операционной системы с первого раздела жесткого диска. Второй же отвечает за загрузку установщика операционных систем который мы подготовим чуть позже. Загрузка с локального диска срабатывает через десять секунд бездействия. Это сделано для компьютеров у которых забыли убрать загрузку по сети и за ними работают пользователи.
Файл default:
Второй файл содержит информацию о настройке графического режима. Так сложилось исторически из-за того, что у меня на «боевом» сервере используется разветвлённое меню загрузчика и это вполне оправдано. В маленьких проектах нет необходимости во вложенных меню, но если вы следили за моими статьями, то читали статью о PXE загрузке компьютеров. Возможно для вас подобный подход станет необходимым и каждодневным инструментом.
Файл graphics.conf:
Расшариваем папку с образами операционных систем
Тут вообще всё очень просто. Создаём каталог на сервере и создаём не привилегированного пользователя с доступом к этому каталогу с правами чтения и исполнения.
Допустим мы создали каталог D:\SETUP\ и дали к нему доступ. Так же надо сделать его сетевым. Это тоже просто. Но для того, чтобы у пользователей не возник праздный интерес воспользоваться публичным ресурсом я его сделал скрытым. Конечно, есть масса программ которые позволяют увидеть скрытые каталоги на сервере, но сокрытие ресурсов не бывает лишним.
Подготовка Windows PE
Но существует обходной путь. Мы воспользуемся небольшой операционной системой WindowsPE, которая будет служить оболочкой для запуска установочной программы. WindowsPE является полнофункциональной системой. В ней доступно подключение по сети к SMB-ресурсам, есть графический интерфейс и возможность писать командные файлы, под ней можно запускать программы написанные для ОС Windows. Больше всего меня интересует возможность работать с SMB, так как это нас раскрепощает по скорости скачивания и уменьшает объём скачиваемой информации. Уменьшение объёма произойдёт из-за того, что мы будем использовать лишь несколько реально необходимых файлов из распакованного образа, а не огромный файл.
Продолжаем. Для дальнейшей работы нам необходимо найти чистый образ Winpe.wim. Лучше его не скачивать со сторонних сайтов. Мало ли, кто туда заразу подсунет. Надо идти проторённым и официальным путём. Заходим на сайт Майкрософта и скачиваем образ Windows AIK. Он распространяется в виде ISO-образа, который необходимо смонтировать в систему. У Windows 10 ISO-образы монтируются прямо средствами операционной системы. Находим внутри архив winpe.cab.
Внутри winpe.cab находится два файла: F1_WINPE.WIM и F3_WINPE.WIM.
Создадим каталог Boot в корневой папке вашего TFTP-сервера. Скопируем туда понравившийся файл и переименуем его в winpe.wim.
Теперь из winpe.wim нужно извлечь несколько файлов и положить их в определённые каталоги. Для доступа к внутренностям этого файла можно использовать архиватор 7-zip или Far manager. Лично я пользуюсь Far и не замечаю разницы между файловой системой и внутренностями архива. Чтобы открыть wim-архив необходимо выделить его курсором и нажать Crtl+PageDown.
Приведу таблицу размещения файлов для правильного копирования. В левой табличке каталог вашего TFTP-сервера и название файла, а в правой файл из архива winpe.wim. Обратите внимание на то, что файл pxeboot.n12 придётся переименовать, так как это одна из особенностей загрузки файлов с использованием PXElinux.
TFTP файл | WIM файлы |
---|---|
\pxeboot.0 | Windows\Boot\PXE\pxeboot.n12 |
\bootmgr.exe | Windows\Boot\PXE\bootmgr.exe |
\Boot\Fonts\wgl4_boot.ttf | Windows\Boot\Fonts\wgl4_boot.ttf |
\boot.ini | Создать пустой файл. |
\Boot\winpe.wim | Скопировать сам архив winpe.wim. |
Но этого не достаточно для работы. Нужно еще сформировать BCD-файл, который является заменой boot.ini в операционных системах Windows Vista и выше. Для его формирования необходимо выполнить несколько команд с правами администратора.
Чтобы долго не печатать, создайте командный файл createbcd.cmd и скопируйте в него следующий текст.
Так как при создании BCD будет несколько файлов, то создайте каталог, например, C:\pxe\. Скопируйте туда createbcd.cmd. Запустите командную строку от имени администратора и дайте команду.
Из сгенерированных файлов нам понадобится только два: BCD и boot.sdi. Оба файла необходимо скопировать на наш TFTP-сервер в каталог \Boot\.
На этом моменте всё готово для запуска нашей сетевой операционной системы. Но это лишь запуск Windows PE. А как на счёт запуска установки операционных систем? Для этого придётся откорректировать образ winpe.wim.
Доработка Windows PE
В образе winpe.wim есть файл отвечающий за первоначальное иницирование. Используя Far Manager можно открыть и отредактировать этот файл состоящий всего из одной команды. Адрес файла:
Чаще всего встречается инструция в которой этот файл содержит подключение сетевого диска с распакованными образами и меню для установки. Но во время использования меня это не устроило. Да, в этом случае у нас получается удобное загрузочное меню, а все настройки лежат в одном файле. Но лично меня это не устраивает из-за того, что я люблю экспериментировать и мне нужна универсальная система. По этой причине я разделил задачу на две подзадачи. В startnet.cmd будет простенький скрипт подключающий сетевой диск и запускающий с этого сетевого диска командный файл autostart.cmd.
Почему именно такой подход? Дело в том, что получить доступ к командному файлу на SMB-шаре на порядок проще чем вспоминать адрес и имя файла в wim-образе операционной системы. Тем более, манипулируя файлами и каталогами с программами установки операционных систем, вы всё равно будете рядом с этим файлом и сможете оперативно вносить изменения.
Но никто не мешает вам объединить оба файла в один.
Содержимое startnet.cmd:
Не забудьте указать пароль и имя пользователя для подключения к SMB-ресурсу. Так же не забудьте ограничить права этого пользователя лишь чтением и исполнением. Дело в том, что злоумышленник (даже внутри своей конторы могут быть нежелательные личности и шутники) может воспользоваться возможностью записи и редактирования файлов в своих целях. Не забывайте о безопасности никогда.
И так, что ж мы тут имеем? В файле запускается команда wpeinit которая отвечает за запуск сетевых сервисов и прочих настроечных приблуд. Далее идёт наш код. Я поместил строку подключения к сетевом ресурсу в невидимую для ползователя область так, что он увидит факт подключения сетевого ресурса, но не увидит логин и пароль пользователя для подключения. В какой-то степени защита от дурака, но у простого пользователя не возникнет праздный интерес воспользоваться полученной информацией. Далее будет произведен запуск командного файла с сетевого ресурса.
Как мы знаем, с SMB работа происходит значительно быстрее и не будет лишних проблем с попыткой скачать весь образ установочного диска. Установщих Windows воспользуется только реально необходимыми ему файлами.
Содержимое z:\autostart.cmd, расположенного в корневой директории нашего ресурса:
Осталось распаковать имеющиеся у вас образы операционных систем и откорректировать файл для запуска установки. Помимо запуска установки операционных систем можно запускать практически любое программное обеспечение. На основе этого меню вы можете сделать запуск антивирусов, диагностических программ и собственных сетевых приложений.
Надеюсь, что эта статья поможет в реализации ваших проектов, автоматизирует установку операционных систем и создаст базу для дальнейшей автоматизации сетевых услуг.
27 комментариев
Судя по ошибкам на сервере на котором у вас крутится TFTP закрыты входящие соединения по портам 65***. В настройках TFTP можно жестко задать диапазон используемых портов для подключения клиентов (для функциональности лучше задать диапазон не менее 50 портов, на каждое новое подключение используется новый порт).
По февральскому надо внимательно смотреть имена образов, регистр и прочее. Почему-то повторяемость статьи оказалась не очень хорошей. Но проверить на большем количестве сетей не представляется возможным, я везде использую развёртывание через WDS. А то решение используется как временная заплатка.
скорость копирования по tftpd32 до 6Mbs
Windows установилась! Finish!
Спасибо за идею!
Никакой там WDS и близко не стоял.
Плюсы WDS в том, что всё происходит централизовано, ненужно заморачиваться с кучей граблей.
Но я рад, что вы смогли повторить данную инструкцию. Не у всех получается.
а в данном варинанте можно разворачиваться мобильно в любом месте со своего ноута, причем интеграция заключатся только в распаковке iso образа, и все, Вы готовы к сетевой установке.
поправте у себя в мануале, что BCD нужно создать без передачи параметров в cmd
т.к. текущий путь сохраняется в BCD, а затем ошибка при загрузке.
Конечно сразу заметил, что в BCD путь, заданный параметром прописался, но никаких намеков, что именно это влияло.
кроме того сделал cmd для автоматической интеграции в winpe.wim любого количества драйверов.
AIK должен быть установлен.
@echo 1. AIK must be installed to: C:Program FilesWindows AIKToolsPETools
@echo 2. Put drivers to folder inf
@echo 3. Copy winpe.wim to the current folder
@echo.
@pause
@echo.
@set winpepath=%CD%
@C:
@cd "C:Program FilesWindows AIKToolsPETools"
@echo off
echo Updating path to include dism, oscdimg, imagex
echo.
if /i %PROCESSOR_ARCHITECTURE% EQU X86 set PATH=%
dp0..\%PROCESSOR_ARCHITECTURE%Servicing;%PATH%;
if /i %PROCESSOR_ARCHITECTURE% NEQ X86 set PATH=%
@dism /Mount-Wim /WimFile:%winpepath%winpe.wim /index:1 /MountDir:%winpepath%mount
@dism /image:%winpepath%mount /add-driver /driver:"%winpepath%inf" /recurse /forceunsigned
@dism /unmount-wim /mountdir:%winpepath%mount /commit
@echo.
@echo.
@echo.
@echo Drivers from inf folder integrated to winpe.wim
@echo.
@echo Now you can copy winpe.wim to TFPTD root folder: ’Boot’
@echo.
@echo.
@pause
:end
p.s. почистите мои посты, оставьте только необходимое.
Спасибо.
Что представляет наибольшую ценность на сегодня?
- простота
- быстрота
- минимализм
и т.д. в таком же духе
Windows считаю, что это дружественный инструмент пользователя, но никак для сервисных нужд.
p.s. Вообще, нужно будет как нибудь попробовать перенести это все на Linux, если создавать PXE как стационарный вариант.
Уточните, у Вас в офисе около 800 компьютеров?
Вам при жизни нужно ставить мемориал, если у Вас всё крутиться на Windows.
:)
Про драйвера надо бы написать еще один мануал, пошаговый. Тут я хотел показать то, что без AIK в принципе реально создать образ.
Огромное спасибо за обратный отзыв.
2)Путь, как писали выше, который прописывается в BCD из-за переменной в батнике действительно может поставить раком TFTP Server. На Микротике прошло только без пути и забирать пришлось сгенерированный файл и корня системы.
3) У Андрея классный скрипт по интеграции драйверов .inf файла. Но начиная с Win7 необходимости ставить AIK нет так как DISM.exe идет в комплекте по умолчанию. Остальные утилиты в скрипте не используются. Ну и команды "mkdir %winpepath%mount" явно не хватает такак из-за её отсутствия dism некуда монтировать образ winpe.wim.
Сами драйвары, можно позаимствовать из DriverPack. Там хорошая свалка из Lan дравйверов.
Вот такой у меня получился скрипт:
@echo 1. Put drivers to folder inf
@echo 2. Copy winpe.wim to the current folder
@set winpepath=%CD%
mkdir %winpepath%mount
@dism /Mount-Wim /WimFile:%winpepath%winpe.wim /index:1 /MountDir:%winpepath%mount
@dism /image:%winpepath%mount /add-driver /driver:"%winpepath%inf" /recurse /forceunsigned
@dism /unmount-wim /mountdir:%winpepath%mount /commit
@echo.
@echo Drivers from inf folder integrated to winpe.wim
@echo.
@echo Now you can copy winpe.wim to TFPTD root folder: ’Boot’
Да, интеграция драйверов может быть серьёзным вопросом для новых материнок.
Спасибо за замечание. Косяк переезда сайта с ASP на PHP. В течение недели восстановлю правильные символы.
Ответ:
Косяк переезда сайта с ASP на PHP. В течение недели восстановлю правильные символы.
Загрузочная флешка с набором нужного софта — замечательный инструмент системного администратора. Казалось бы, что может быть лучше? А лучше может быть загрузочный сервер!
Представьте, вы выбрали в BIOS загрузку по сети и можете установить ОС/вылечить компьютер от вирусов/реанимировать диски/протестировать ОЗУ/etc с PXE Boot сервера, ведь это куда удобнее, нежели бегать с флешкой от машины к машине.
А в случае большого компьютерного парка, такой инструмент и вовсе незаменим.
Вот такое меню встречает нашу команду инженеров при загрузке с PXE
Под катом вас ждет описание всех настроек, а так же небольшой сюрприз.
Начало
Возьмем за основу, что свежеустановленный Debian Wheezy уже весело подмигивает нам консолью.
Подготовим базу для дальнейших манипуляций. Установить и настроить нам потребуется:
приведем конфиг /etc/default/tftpd-hpa к виду
и поместим в /etc/tftpd.remap вот такую строку
UPD, дополнение от читателя Aleksey Shipilev
Повыдирал себе волос, пока отдебажил tftp.
Что на ThinkPad X201i, что в VirtualBox загрузка отваливалась с:
PXE-E32: TFTP Open timeout
Судя по всему, PXE агенты умудрились быть не полностью совместимыми, полечилось добавлением "-r blksize":
TFTP_OPTIONS="--secure -l -v -r blksize"
В конец файла /etc/samba/smb.conf добавим информацию о папке, где будут лежать инсталляционные файлы Windows.
Cоздаем папку, даем права и рестартим самбу
3. Syslinux
Скачиваем и заливаем в корень TFTP сервера все необходимое
Перейдем к настройке
Создадим конфиг основного меню и внесем начальные настройки
дефолтный конфиг переместим, создадим вместо него свой и перезапустим DHCP демон
Спойлер для тех, у кого в роли DHCP сервера выступает MikroTik address=10.0.10.0/24 gateway=10.0.10.1 dns-server=8.8.8.8, 8.8.4.4 wins-server="" ntp-server=212.20.50.208 caps-manager="" domain="domain.local" next-server=10.0.10.1 boot-file-name="pxelinux.0" dhcp-option=""Так же стоит заметить, что в данной инсталляции у севера две сетевые карты и он является еще и шлюзом в интернет.
Поэтому необходим еще ряд нехитрых манипуляций
6. NFS
Ровно так же как и предыдущий пункт.
Если все сделано правильно, то при загрузке какой-либо машины с этого DHCP/PXE/TFTP сервера мы увидим следующее:
Научим сервер устанавливать различные ОС
Для установки нам будут доступны:
- Windows 2008R2/20012R2
- Debian 6/7
- Centos 6/7
- Ubuntu 12.04/12.10/14.04/14.10
- FreeBSD 9.2/10.1
- VMware ESXi 5.0/5.5
Структура меню, а следовательно и файл /srv/tftp/pxelinux.cfg/default притерпели изменения.
Листинг директории /srv/tftp/pxelinux.cfg/
Под спойлером содержимое конфига каждого из подпунктов меню представленных вышеПути к папкам, где лежат установочные файлы для каждой из ОС, описаны относительно корня TFTP сервера, т.е. /srv/tftp .
Например для FreeBSD указано
следовательно в корне TFTP нужно создать папки freebsd/10/ , при этом обратите внимание на права
У всех должно быть право на чтение — это правило справедливо для всех файлов отдаваемых по TFTP.
И еще пара слов о установке FreeBSD.
Логин / пароль для входа в загружаемый iso: root / mfsroot(либо root без пароля).
Плюс пара примеров скриптов инсталяции FreeBSD на ZFS:
1. RAID6 из 4-х дисков.
2. RAID1 из 2-х дисков.
О том как подготовить Windows к установке с PXE мы писали ранее.
Различие с данной инсталляцией составляет лишь то, что здесь мы можем установить и Windows 2008R2 и Windows 2012R2(впрочем и Windows 7/8 тоже, нужно только подготовить файлы дистрибутива и winpe соответствующим образом). После загрузки winpe мы монтируем папку /srv/tftp/images/ , где содержаться файлы для установки ОС от Microsoft:
и запускаем нужный инсталятор.
Для автоматизации, через startnet.cmd, я набросал вот такое меню:
О том как подготовить, например, Debian к установке с PXE написано здесь, но я на этом останавливаться не стану.
Добавим способность загружать различные дисковые утилиты и тест памяти
- Memtest86+
- Clonezilla-live
- SystemRescueCD
- MHDD
А я расскажу зачем мы ставили еще и NFS сервер.
Как видно из конфига загрузки SystemRescueCD, необходимые этому LiveCD файлы он подтягивает монтируя каталог по протоколу NFS. Сервер уже установлен, остается только отредактировать /etc/exports и перезапустить серверный демон.
Предполагаю у вас возник резонный вопрос — «Что тут делает LiveCD, если для них есть отдельный пункт?»
SystemRescueCD содержит массу полезных программ для работы с диском(например таких как GParted и testdisk) и поэтому он доступен и здесь и в LiveCD.
LiveCD
- Debian 7 LiveCD
- HirensBootCD
- Trinity Rescue Kit CD
- SystemRescueCD
- Plop Live
в конец default добавилось
Для загрузки Trinity Rescue Kit CD и Plop Live в /etc/exports нужно добавить строки:
Несколько слов о выбраных LiveCD.
Debian 7 LiveCD
Этот CD — сборка одного из наших инженеров, включающая в себя следующее:
Логин / пароль: root / ServerClub
HirensBootCD
Едва ли нуждается в представлении, содержит множество полезных утилит.
Подробнее можно ознакомиться здесь.
Грузится достаточно долго, не работает MiniXP и Linux. Остальные утилиты доступны для использования.
Trinity Rescue Kit CD
Со слов разработчиков, создан для восстановления ОС Windows.
Содержит утилиты для сброса паролей, антивирусы, программу для клонирования «компьютера» по сети(при чем на несколько компьютеров одновременно), а так же многое другое.
Подробнее здесь.
SystemRescueCD
Основан на Gentoo, предназначен для восстановления Linux систем.
Включает в себя большое количество всевозможных программ для администрирования, со списком можно ознакомится по ссылке.
Plop Live
LiveCD с тремя полноценными DE на выбор, а так же необходимым админским софтом.
Антивирусы
Итоговый конфигурационный файл основного меню, а так же файл меню антивирусовЗаключение, оно же и сюрприз
На протяжении статьи я сознательно не давал объяснений где взять и как подготовить контент, потому как действия эти весьма тривиальны и только перегрузили бы текст.
- Архив со всем контентом /srv/tftp (ссылка на торрент файл, прямая ссылка)
- Архив всей ОС (ссылка на торрент файл, прямая ссылка)
Второй случай подразумевает установку на голое железо или виртуальную машину.
Вкратце шаги по развертыванию сборки из полного архива ОС будут такими:
1. Загрузиться с Linux LiveCD.
2. Разметить диск и отформатировать разделы.
3. Примонтировать "/" раздел.
4. Распаковать архив.
5. Установить загрузчик.
6. Перезагрузиться.
7. Настроить ОС в соответствии вашей сети и начать пользоваться.
Логин / пароль: root / ServerClub.
ВАЖНО: Если в вашей сети есть работающий dhcp сервер, то перед запуском нашей сборки отключите в ней автостарт dhcp.
В этом пошаговом руководстве описано, как настроить PXE-сервер для загрузки Windows PE при запуске клиентского компьютера по сети. С помощью средств Windows PE и файла образа Windows 10 можно установить Windows 10 по сети.
Необходимые условия
Все четыре перечисленных выше роли могут размещаться на одном компьютере, также можно выделить отдельный компьютер для каждой роли.
Шаг 1: скопируйте исходные файлы Windows PE
На компьютере развертывания: нажмите Пуск и введите развертывание.
Щелкните правой кнопкой мыши элемент Среда средств развертывания и работы с образами и затем нажмите Запуск от имени администратора. Будет запущен ярлык среды средств развертывания и создания образов, который открывает окно командной строки и автоматически задает переменные среды таким образом, чтобы они указывали на все необходимые средства.
Чтобы скопировать базовые файлы Windows PE в новую папку, выполните следующую команду. Сценарий требует два аргумента: архитектуру оборудования и целевое расположение. Значение <архитектуры> может быть x86, amd64 или arm, а <назначение> может соответствовать пути к локальному каталогу. Если каталог еще не существует, он будет создан.
Например, следующая команда копирует файлы архитектуры amd64 в каталог C:\winpe_amd64:
Сценарий создает структуру каталогов назначения и копирует все необходимые файлы для этой архитектуры. В предыдущем примере создаются следующие каталоги:
Подключите базовый образ Windows PE (winpe.wim) в каталог \mount с помощью средства DISM. При подключении файла образа его содержимое распаковывается в папку, что позволяет вносить изменения напрямую или с помощью таких программ, как DISM. См. приведенный ниже пример.
Выполните сопоставление общего сетевого ресурса корневому каталогу TFTP на сервере PXE/TFTP и создайте папку \Boot. Обратитесь к документации сервера TFTP, чтобы определить корневой каталог сервера TFTP, а затем включите общий доступ к этой папке и убедитесь, что она доступна в сети. В следующем примере имя сервера PXE имеет значение PXE-1, а общий доступ к корневому каталогу TFTP предоставляется с помощью сетевого пути \\PXE-1\TFTPRoot:
Скопируйте файлы загрузки PXE из подключенного каталога в папку \boot. Пример.
Скопируйте файл boot.sdi на сервер PXE/TFTP.
Скопируйте загрузочный образ Windows PE (boot.wim) в папку \boot.
(Необязательно) Скопируйте в папку \boot шрифты true type
Шаг 2: настройка параметров загрузки и копирование файла BCD
Создайте хранилище BCD с помощью bcdedit.exe:
Настройте параметры RAMDISK:
Последняя команда возвращает идентификатор GUID, например:
Скопируйте этот идентификатор GUID для использования в следующих командах. В каждой приведенной команде замените "GUID1" своим идентификатором GUID.
Создайте новую загрузочную запись приложения для образа Windows PE:
Настройте параметры BOOTMGR (не забудьте заменить GUID1 в третьей команде своим идентификатором GUID):
Скопируйте файл BCD на свой TFTP-сервер:
Теперь ваш сервер PXE/TFTP настроен. Можно просмотреть установленные параметры BCD с помощью команды bcdedit /store <расположение файла BCD> /enum all. См. следующий пример. Примечание. Ваш идентификатор GUID будет отличаться от приведенного ниже.
Сводка по процессу загрузки PXE
В следующей таблице приведены основные сведения о процессе загрузки PXE-клиента.
Развертывание ОС в Диспетчере конфигурации, инициированное средой выполнения предзагруза (PXE), позволит клиентам запрашивать и развертывать операционные системы по сети. Для этого метода развертывания вы отправляете изображение ОС и изображения загрузки в точку распространения с поддержкой PXE.
При создании развертывания ОС, которое ориентировано только на компьютеры BIOS x64, в точке распространения должно быть доступно как изображение загрузки x64, так и изображение загрузки x86.
Развертывание ОС, инициированное PXE, можно использовать в следующих сценариях:
Выполните действия в одном из сценариев развертывания ОС, а затем используйте разделы в этой статье для подготовки к развертываниям, инициированным PXE.
Если вы используете развертывания PXE и настраивает оборудование устройства с сетевым адаптером в качестве первого загрузочного устройства, эти устройства могут автоматически запускать последовательность задач развертывания ОС без взаимодействия с пользователем. Проверка развертывания не управляет этой конфигурацией. Хотя эта конфигурация может упростить процесс и уменьшить взаимодействие с пользователем, она подвергает устройство большему риску случайного повторного восстановления.
Начиная с версии 2006 г. последовательности задач на основе PXE могут загружать облачное содержимое. Точке распространения с поддержкой PXE по-прежнему требуется изображение загрузки, а устройству необходимо подключение интрасети к точке управления. Затем он может получать дополнительный контент из шлюза облачного управления с поддержкой контента (CMG). Дополнительные сведения см. в материалах службы поддержки мультимедиа bootable для облачного контента.
Настройка точек рассылки для PXE
Чтобы развернуть операционные системы для клиентов Configuration Manager, которые делают запросы на загрузку PXE, настройте одну или несколько точек распространения, чтобы принимать запросы PXE. Затем точка рассылки отвечает на запросы загрузки PXE и определяет соответствующее действие развертывания. Дополнительные сведения см. в пункте Установка или изменение точки распространения.
При настройке одной точки распространения с поддержкой PXE для поддержки нескольких подсетей использование параметров DHCP не поддерживается. Чтобы разрешить сети перенаадверять клиентские запросы PXE в пункты распространения с поддержкой PXE, настройте помощников IP в маршрутизаторах.
Если включить ответную службу PXE в точке распространения без Windows службы развертывания, он может быть на том же сервере, что и служба DHCP. Добавьте следующие параметры для поддержки этой конфигурации:
- Установите значение DWord DoNotListenOnDhcpPort в 1 следующем ключе реестра: HKLM\Software\Microsoft\SMS\DP .
- Установите параметр DHCP 60 для PXEClient .
- Перезапустите службы SCCMPXE и DHCP на сервере.
Подготовка изображения загрузки с поддержкой PXE
Чтобы использовать PXE для развертывания ОС, раздать изображения загрузки с поддержкой X86 и x64 С поддержкой PXE в одну или несколько точек распространения с поддержкой PXE.
Чтобы включить PXE на изображении загрузки, выберите Развертывание этого изображения загрузки из точки распространения с поддержкой PXE на вкладке Источник данных в свойствах изображений загрузки.
При изменении свойств изображения загрузки обнови и перераспределяй изображение загрузки в точки распространения. Дополнительные сведения см. в материалах "Распространение контента".
Управление дублирующими идентификаторами оборудования
Диспетчер конфигурации может распознавать несколько компьютеров как одно и то же устройство, если у них есть дублирующиеся атрибуты SMBIOS или вы используете общий сетевой адаптер. Устраняет эти проблемы, управляя дублирующими идентификаторами оборудования в параметрах иерархии. Дополнительные сведения см. в документе Управление дублирующими идентификаторами оборудования.
Создание списка исключений для развертывания PXE
В некоторых случаях процесс управления дублирующими идентификаторами оборудования может быть проще.
Поведение каждого из них может привести к различным результатам в некоторых сценариях. Список исключений никогда не загружает клиента с указанным mac-адресом, независимо от того, что.
В списке дублирующихся ID не используется mac-адрес для поиска политики последовательности задач для клиента. Если он соответствует SMBIOS ID или если для неизвестных машин существует политика последовательности задач, клиент по-прежнему сапог.
При развертывании операционных систем с помощью PXE можно создать список исключений на каждой точке распространения. Добавьте mac-адреса в список исключений компьютеров, которые необходимо игнорировать точке распространения. Перечисленные компьютеры не получают последовательностей задач развертывания, которые диспетчер конфигурации использует для развертывания PXE.
Создайте текстовый файл в точке распространения с поддержкой PXE. Например, назови файл pxeExceptions.txt.
Для редактирования файла используйте обычный текстовый редактор, например Блокнот. Добавьте mac-адреса компьютеров, которые должна игнорировать точка распространения с поддержкой PXE. Разделять значения адресов MAC по двоеточиям и введите каждый адрес по отдельной строке. Пример: 01:23:45:67:89:ab
Сохраните текстовый файл в точке распространения с поддержкой PXE. Вы можете сохранить его в любом расположении на сервере.
Изменение реестра в точке распространения с поддержкой PXE. Просмотрите следующий путь реестра: HKLM\Software\Microsoft\SMS\DP . Создайте значение строки MACIgnoreListFile. Добавьте полный путь к текстовом файлу в точке распространения с поддержкой PXE.
Неправильное использование редактора реестра может привести к серьезным проблемам, которые могут потребовать переустановки Windows. Корпорация Майкрософт не может гарантировать, что вы можете решить проблемы, связанные с неправильным использованием редактора реестра. Используйте редактор реестра на свой собственный риск.
После изменения реестра перезапустите службу WDS или службу реагирования PXE. Перезапуск сервера не требуется.
Размер блока RamDisk TFTP и размер окна
Вы можете настроить блок RamDisk TFTP и размеры окон для точек распространения с поддержкой PXE. Если вы настраиваете сеть, большой размер блока или окна может привести к сбой загрузки изображения загрузки с ошибкой времени. Настройки блока и размера окна RamDisk TFTP позволяют оптимизировать трафик TFTP при использовании PXE для удовлетворения определенных сетевых требований. Чтобы определить, какая конфигурация наиболее эффективна, проверьте настраиваемые параметры в вашей среде. Дополнительные сведения см. в таблице Настройка размера блока RamDisk TFTPи размера окна в точках распространения с поддержкой PXE.
Настройка параметров развертывания
Чтобы использовать развертывание ОС, инициированное PXE, настройте развертывание, чтобы сделать ее доступной для запросов загрузки PXE. Настройка доступных операционных систем на вкладке Параметры развертывания в свойствах развертывания. Чтобы сделать доступным для следующего параметра, выберите один из следующих параметров:
Клиенты configuration Manager, мультимедиа и PXE
Только носители и PXE
Только носители и PXE (скрытые)
Вариант 82 во время рукопожатия PXE DHCP
Диспетчер конфигурации поддерживает параметр 82 во время рукопожатия PXE DHCP с ответчиком PXE без WDS. Если требуется вариант 82, не забудьте использовать ответник PXE без WDS. Диспетчер конфигурации не поддерживает вариант 82 с WDS.
Развертывание последовательности задач
Развертывание ОС в целевой коллекции. Дополнительные сведения см. в дополнительных сведениях о развертывании последовательности задач. При развертывании операционных систем с помощью PXE можно настроить, требуется ли развертывание или доступно.
Обязательное развертывание. Необходимые развертывания используют PXE без вмешательства пользователя. Пользователь не может обойти загрузку PXE. Однако если пользователь отменяет загрузку PXE до ответа точки рассылки, осмий не развертывается.
Доступное развертывание. Доступные развертывания требуют, чтобы пользователь присутствовал на компьютере назначения. Чтобы продолжить процесс загрузки PXE, пользователь должен нажать клавишу F12. Если пользователь не присутствует, чтобы нажать F12, сапоги компьютера в текущую ОС или с следующего доступного загрузочного устройства.
Вы можете перенаправление необходимого развертывания PXE путем очистки состояния последнего развертывания PXE, назначенного коллекции Configuration Manager или компьютеру. Дополнительные сведения о действии Clear Required PXE Deployments см. в ссылке Управление клиентами или управление коллекциями. Это действие сбрасывает состояние этого развертывания и переустановит последние необходимые развертывания.
Протокол PXE не является безопасным. Убедитесь, что сервер PXE и клиент PXE находятся в физически безопасной сети, например в центре обработки данных, чтобы предотвратить несанкционированный доступ к сайту.
Выбор изображения загрузки для PXE
Когда клиент сапоги с PXE, Configuration Manager предоставляет клиенту изображение загрузки для использования. Диспетчер конфигурации использует изображение загрузки с точным совпадением архитектуры. Если изображение загрузки с точной архитектурой не доступно, диспетчер конфигурации использует изображение загрузки с совместимой архитектурой.
В следующем списке приводится подробная информация о выборе изображения загрузки для клиентов, загружающихся с помощью PXE:
Диспетчер конфигурации ищет в базе данных сайта запись системы, которая соответствует mac-адресу или SMBIOS клиента, который пытается загрузиться.
Если компьютер, который назначен сайту сапоги для PXE для другого сайта, политики не видны для компьютера. Например, если клиенту уже назначен сайт A, точка управления и точка распространения для сайта B не могут получить доступ к политикам с сайта A. Клиент не успешно загружает PXE.
Диспетчер конфигурации ищет последовательности задач, развернутые к системной записи, найденной на шаге 1.
В списке последовательностей задач, найденных на шаге 2, Configuration Manager ищет изображение загрузки, которое соответствует архитектуре клиента, который пытается загрузиться. Если изображение загрузки найдено с той же архитектурой, используется это изображение загрузки.
Если он находит несколько изображений загрузки, он использует самый высокий или самый последний ID развертывания последовательности задач. В случае многосайтной иерархии более высокий сайт буквы будет иметь приоритет в сопоставлении строк. Например, если они совпадают в противном случае, год назад развертывание с сайта ZZZ выбирается по вчерашнему развертыванию с сайта AAA.
Если изображение загрузки не найдено с той же архитектурой, configuration Manager ищет изображение загрузки, совместимое с архитектурой клиента. Он выглядит в списке последовательностей задач, найденных на шаге 2. Например, 64-битный клиент BIOS/MBR совместим с 32-битными и 64-битными изображениями загрузки. 32-битный клиент BIOS/MBR совместим только с 32-битными изображениями загрузки. Клиенты UEFI совместимы только с соответствующей архитектурой. 64-битный клиент UEFI совместим только с 64-битными изображениями загрузки, а 32-битный клиент UEFI совместим только с 32-битными изображениями загрузки.
В предыдущих статьях, по теме загрузки по сети, все используемые загрузчики, и загрузка с использованием технологии PXE происходила в Legacy-режиме, то есть в режиме старого BIOS. Я решил дополнить данную тему, рассмотрев загрузку по сети в современном стандарте UEFI.
Содержание
В Чем Отличия
Кардинальных отличий в реализации загрузки с использованием технологии PXE для UEFI BIOS нет. Я даже скажу больше, все необходимые настройки полностью идентичны. Но, обо всем по порядку.
Технология PXE базируется на трех составляющих:
1. TFTP-сервер. Предназначен для загрузки файлов по сети. На данном сервере хранятся все загрузочные файлы, с последующим предоставлением их по требованию, без какой-либо авторизации.
2. DHCP-сервер. Предназначен для автоматической выдачи сетевых настроек в сети без необходимости их прописывания вручную на сетевых машинах обладающих соответствующим DHCP-клиентом. То есть, вы подключаете машину с включенным DHCP-клиентом в сеть в которой присутствует DHCP-сервер, и можно использоваться сетью. Хочу так же заметить, что кроме стандартных настроек сети (IP-адресс, маску подсети, Шлюз, и IP-адрес DNS-сервера), DHCP-сервер участвующий в PXE составляющей, должен передавать информацию о TFTP-сервере, и об имени главного исполняемого загрузочного файла.
3. Загрузочный клиент. Программный код вшитый в прошивку сетевой карты или UEFI BIOS материнской платы. Его задача получить необходимые настройки сети, выполнить соединение с TFTP-сервером, и загрузить с него загрузочный файл и выполнить его
Сервера TFTP и DHCP при этом могут быть запущенны на совершенно разных машинах, единственное требование, чтобы они располагались в одной сети.
Все вышесказанное характерно как для Legacy BIOS, так и для UEFI BIOS. Единственное отличие для UEFI PXE, это указание исполняемого файла в настройках DHCP-сервера предназначенного именно для UEFI BIOS.
Учитывая все вышесказанное, настоятельно рекомендую прочитать про установку и настройку DHCP и TFTP сервера, а так же про установку и настройку загрузчика Windows Boot Manager на TFTP-сервер. Данные статьи полностью актуальны на данный момент времени, и информация из них будет использоваться далее по тексту.
Необходимые Программы
Для осуществления загрузки в UEFI PXE потребуется следующие программы и файлы:
1. Программа Tftp32(64). Компактный инструмент сочетающий в себе TFTP, DHCP, DNS, и Syslog службы.
2. Программа BOOTICE. Невероятно мощный инструмент для создания и работы с загрузочными дисками.
4. Один из загрузочных WinPE, мультизагрузочной сборки 2k10.
Настройка TFTP-сервера
Как было сказано ранее, установка и конфигурация программы Tftp32(64) уже была подробно рассмотрена в данной статье, поэтому я ограничусь лишь небольшим демонстрационным скринкастом.
В данном скринкасте отображена настройка TFTP-сервера, с корневой директорией D:\TFTP, и настройка DHCP-сервера, но без указания имени исполняемого загрузочного файла.
Имя загрузочного файла будет добавлено в следующем разделе.
Директория D:\TFTP на данный момент пуста.
Данная директория является корневой для TFTP-сервера, и будет содержать все необходимые загрузочные файлы.
Установка UEFI-загрузчика
В качестве загрузчика будет выступать Windows Boot Manager (BOOTMGR). Установка данного загрузчика на TFTP-сервер так же рассматривалась ранее. Принцип полностью схож, различаются лишь копируемые файлы.
Первым делом, копируем из установочного *.ISO образа операционной системы Windows, папку \efi\microsoft\boot в корневую директорию TFTP-сервера D:\TFTP.
Следующим, копируем файл \efi\boot\bootx64.efi, так же в корневую директорию TFTP-сервера.
И последним, копируем файл \boot\boot.sdi в директорию boot (D:\TFTP\boot) корневой директории TFTP-сервера.
Установочным ISO-образом ОС Windows на этом покончено. Переходим к мультизагрзочному диску 2k10.
Создадим в корневой папке TFTP-сервера директорию sources (D:\TFTP\sources).
Скопируем в созданную директорию файл \2k10\WinPE\W1064PE.wim, из загрузочного ISO-образа мультизагрузочной сборки 2k10.
Переименуем скопированный файл в boot.wim.
Перейдем к настройке загрузчика. Вместо подробного рассмотрения я приведу лишь скринкаст, так как все действия полностью аналогичны проделанным в этой статье.
Запускаем BOOTICE. Открываем в нем конфигурационный файл скопированного загрузчика D:\TFTP\boot\bcd. И выполняем действия приведенные в скринкасте.
Конфигурация касалась двух параметров, первый отвечал за отображения старомодной полоски загрузки, вместо крутящихся шариков, а второй отключал встроенную проверку загружаемых архивов *.wim.
Осталось только вписать имя исполняемого загрузочного файла в конфигурацию DHCP-сервера. Данным файлом в нашем случае является D:\TFTP\bootx64.efi.
Загрузчик, и тестовое содержимое на этом установлены.
Загрузка Тестового BOOT.WIM
Тестировать загрузку по сети будем в виртуальной машине VMware Workstation Player.
Тестовая виртуальная машина обязательно должна смотреть в вашу реальную сеть.
Запускаем программу Tftp32(64), если она была закрыта. Далее стартуем виртуальную машину и выбираем загрузку по сети в UEFI-режиме.
Начнет выполняться UEFI PXE клиент.
После получения всех необходимых сетевых настроек, запустится скачивание загрузчика и всех необходимых ему файлов с нашего TFTP-сервера.
После скачивания всех необходимых файлов в оперативную память виртуальной машины, последует их запуск. В моем случае, будет запущена WinPE взятая с мультизагрузочного диска 2k10.
Загрузка в UEFI PXE режиме прошла успешно.
В статье было рассмотрено: Как осуществить загрузку в UEFI PXE режиме? Как настроить программу TFTP32(64) для загрузки в UEFI-режиме? Как установить UEFI-загрзчик на TFTP-сервер?
Как можно заметить, отличий в реализации загрузки по сети между UEFI и Legacy режимом нет. Вся разница лишь в прописываемом исполняемом загрузочном файле, и файлах загрузчика. Что касаемо других загрузчиков, то с ними дела обстоят ровно так же. Все что необходимо, это лишь использовать их UEFI версии.
Читайте также: