Сетевая загрузка PXE на основе TFTPD32
Описание настройки собственного PXE сервера на основе TFTPD32 для загрузки WinPE или BartPE.
PXE и процесс загрузки по сети
Стандарт PXE (Preboot Execution Environment) позволяет превратить сетевую карту в одно из устройств, с которого может загрузиться компьютер. Разработку данного стандарта начала компания Intel, еще 1999 году, а потом к разработке присоединились такие гиганты компьютерной индустрии, как 3Com, HP, Dell, Compaq. Стандарт прижился. И сейчас, пожалуй, не возможно, найти современной сетевой платы без поддержки PXE.
Конечно для того, чтобы компьютер смог загрузиться по сети одного PXE не достаточно. Нужно еще наличие в сети серверов TFTP и DHCP.
Процесс загрузки по сети можно упрощенно описать примерно так.
При включении компьютера, начинает работать PXE загрузчик, который находится в памяти (boot ROM) сетевого адаптера. Сетевая карта отправляет запрос к серверу DHCP для получения IP адреса. Получив запрос, DHCP сообщает сетевой плате IP адрес, маску сети, адрес TFTP сервера и имя загрузочного файла. После обработке полученных данных PXE обращается к серверу TFTP и загружает файл. Получив файл, PXE прекращает свою работу и передает управление загруженной программе.
Подготовка файлов
Создадим каталог для сетевой установки C:\PXE. Внутри создадим каталог, например WinPE.
Сетевая загрузка WinPE делится на два этапа. На первом этапе происходит загрузка файлов по протоколу TFTP. А на втором этапе файлы загружаются по протоколу CIFS (старое название SMB). Протокол CIFS более известен, как общий доступ к файлам и принтерам сети.
Поэтому для второго этапа загрузки нужно:
- Сделать каталог C:\PXE доступным по сети (расшарить) для группы "Everyone (Все)" с правами только чтения.
- Также необходимо убедиться, что учетная запись "Guest (Гость)" активирована.
Для этого нажимаем, правую клавишу мыши на "My Computer (Мой компьютер)" и выбираем "Manage (Управление)". Раскрываем "System Tools (Служебные программы)", "Local Users and Groups (Локальные пользователи и группы)". Выбираем "Users (Пользователи)". В правой части экрана нажимаем правую клавишу мыши на "Guest (Гость)" и выбираем "Properties (Свойства)". В появившемся окне убираем флажок с "Account is disabled (Отключить учетную запись)" и нажимаем кнопку OK
- Если директория C:\PXE\WinPE находится на разделе с файловой системой NTFS, то необходимо в свойствах этого каталога в "Security (Безопасность)" также добавить группу "Everyone (Все)". Этой группе необходимо разрешить чтение.
- Также следует убедиться, что не запрещен доступ пользователя "Guest (Гость)" по сети в групповой политике.
Для этого нажимаем "Start (Пуск)", выбираем "Control Panel (Панель управление)", "Administrative Tools (Администрирование)". В появившемся окне выбираем "Local Security Policy (Локальная политика безопасности)". После загрузки оснастки "Local Security Settings (Локальные параметры безопасности)", разворачиваем "Local Policies (Локальные политики)" и выбираем "User Rights Assignments (Назначение прав пользователя)". В правой части нажимаем дважды левую клавишу мыши на "Deny access to this computer from the network (Отказ в доступе к компьютеру по сети)". В появившемся списке отмечаем "Guest (Гость)" и нажимаем кнопку "Remove (Удалить)". Для подтверждения изменений нажимаем кнопку удалить.
Подготовка сборки WinPE для загрузки по сети
Копируем содержимое сборки(каталоги I386 и Programs) в каталог C:\PXE\WinPE
Копируем из каталога C:\PXE\WinPE\I386 файл ntdetect.com в каталог C:\PXE
Разархивируем файлы (из дистрибутива Windows XP/Windows 2003) setupldr.ex_ и startrom.n1_ в каталог C:\PXE. Сделать это можно с помощью архиватора 7-zip или команд:
expand D:\WINXP\I386\setupldr.ex_ С:\PXE\WinPE\ntldr
expand D:\WINXP\I386\startrom.n1_ С:\PXE\WinPE\startrom.n12
Следует переименовать startrom.n12 в startrom.0
При работе с локализированной сборкой рекомендуется копировать файл bootfont.bin из каталога C:\PXE\WinPE в C:\PXE.
Распаковываем каталоги tftpd32, infparser и файл binlsrv.exe в C:\PXE
Настройка TFTP сервера (TFTPD32)
Сначала для удобства следует отключить не нужные сервисы, оставив только "TFTP Server" и "DHCP Server". Затем следует указать каталог, в котором TFTP сервер будет искать файлы. За это отвечает параметр "Base Directory". В нашем случае это C:\PXE. Также следует включить "Option negotiation", "Allow '\' As virtual root" и "Translate Unix file names". Остальные опции выключены.
Настройке DHCP сервера (TFTPD32)
Для загрузки по сети DHCP должен присвоить IP адрес и указать имя загружаемого файла.
Предположим на компьютере, который выступает в роли PXE сервера, присвоен IP адрес 192.168.0.1 с маской сети 255.255.255.0. Параметр "IP Pool starting address" указывает начальный IP адрес, с которого DHCP будет начинаться выдавать адреса. Установим значение в 192.168.0.10. Параметр "Size of pool" указывает, сколько компьютеров могут получить IP адреса от TFTPD32. Установим значение в 10. Параметр "Boot File" указывает, какой файл необходимо загрузить. В нашем случае это startrom.0. Если на компьютере несколько сетевых подключений, тогда рекомендуется включить опцию "Bind DHCP to this address" и указать наш IP 192.168.0.1.
Настройка программы RIS-LINUX от Sherpya
Во время загрузки WinPE должна получить информацию, какой драйвер для сетевой платы она должна использовать. Эту информация предоставляет служба BINL. В качестве службы BINL будет использоватся программа ris-linux. Эта программа написана на языке Python, но мы будем использовать портированную под Windows версию.
Для работы BINL требуется создать базу данных сетевых драйверов следующей командой:
C:\PXE\infparser\infparser.exe C:\PXE\WinPE\I386\inf
Подготовка файла winnt.sif
Для загрузки WinPE также потребуется файл C:\PXE\winnt.sif такого содержимого:
[SetupData]
OsLoadOptions = "/noguiboot /fastdetect /minint"
SetupSourceDevice = "\Device\LanmanRedirector\192.168.0.1\PXE\WinPE"
[UserData]
ComputerName = *
Завершение
Чтобы наконец заработал наш PXE сервер, достаточно запустить binlsrv.exe и перезапустить tftpd32.
В ходе написание статьи были использованы материалы с сайта http://unattendedxp.com/ , а также собственные наработки. Вроде ничего не забыл. Сильно не пинайте.
- Версия для печати
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Похожие материалы по этой теме на сайте
Содержимое | |
---|---|
Norton Ghost - для "Сервера загрузки и установки" |
Norton Ghost - это простая, но мощная утилита для создания образов как целых дисков, так и отдельных разделов диска. |
Сетевая загрузка PXE на основе TFTPD32 (WIM) |
Описание настройки собственного PXE сервера на основе TFTPD32 для загрузки WinPE или BartPE.(WIM Загрузка) |
Ieshua's Live DVD/USB 2.13 |
- В качестве оболочки(shell) используется стандартный Explorer(XPE) и BsExplorer для ERD Commander |
Универсальный сервер сетевой загрузки и установки. Файлы. |
В связи с тем, что было много вопросов и обращений по поводу ... |
Создание загрузочного USB-драйва на базе Windows Vista (WinPE 2.0) |
Windows Preinstallation Environment (PE) 2.0 - это, так сказать, урезанная версия Windows. |
Система для обслуживания компьютеров и серверов в локальной сети предприятия |
Причины создания, краткое описание, общий принцип работы |
Kaspersky Virus Removal Tool 9 |
Плагин Kaspersky Virus Removal Tool с возможностью обновления баз при сборке через интернет. |
Symantec Ghost 11.0 WIM |
WIM-плагин для Symantec Ghost 11.0 - содержит файлы программы. |
Сейчас на сайте
Пользователей онлайн: 0.
Популярное сегодня
Страницы
Пользователи
- aneqake
- RhodaTaiff
- Invaliddd
- hunter178
- VShutkov
- davidscump
- gerrockz
- PaulineFag
- ale_x
- Arti100
Комментарии
Ну статья "заточенная" на wim
Ну статья "заточенная" на wim не моя а "]]>Ieshua]]>". Я исходил только из своей конфигурации: linux-syslinux-binlsrv. Но про патч pxeldr в статье упомянуть тоже забыл. Обязательно поравлю.
P/S "Прикрепите его пожалуйста к статье, упомяните в ней о этой тонкости и разойдемся с миром". Жаль , что не планируете участвовать дальше в обсуждениях. В планах планируется создание сервиса сборки WIM и ISO непосредственно на сайте. Технически все подготовлено не хватает времени.
Жизнь бьёт ключом! И все больше по голове!>
Статья изначально не
Статья изначально не расчитана на wim загрузку, так как я не использую wim загрузку по сети. Статья описывает общие принципы работы сетевой загрузки. Естественно, для работы конкретной ПЕ-хи требуются правки, например, как было описано замена i386 на y386 (для сборки Yurkeshi), pxeldr для wim и т.п.
Ну вобщем то и при загрузке
Ну вобщем то и при загрузке "россыпью", на которую ориентирована эта статья, загрузка дальше подгрузки mup.sys не идет. Если задать опцию noguiboot, видим вечный черный экран и мигающий курсор. Если нет, то просто вечную картинку загрузки Windows. Я и не стал дальше копатся, а налег именно на wim.
Ну во-первых WIM-загрузка по
Ну во-первых WIM-загрузка по способу организации это частный случай загрузки "россыпью".
Во-вторых даже в чистой CD-загрузке у меня используется(как и в большинстве современных PE-сборках на базе NT 5.1) загрузка с поддержкой мультиядерности, что автоматически налагает требование на использование нестандартного pxeldr(тот что я выкладывал подойдет и для CD-сборки).
Кстати при WIM-загрузке мы имеем всего лишь один недостаток - повышенные требования по памяти и целый ряд достоинств:
- нечуствительна к ошибкам NTFS на системном разделе
- не требует наличия поддержки сети и сетевых драйверов в любом виде
- все что есть в сборке автоматом прогружается в память(скорость работы)
---
упс..
nek, а тут нужно было
nek, а тут нужно было разбираться и показывать лог tftpd32. Например, уважаемый DH_Bender лог прислал, но отвечать перестал еще в августе, видимо ему просто стало не интересно, хотя можно было и отписаться. Вы пробовали только одну ПЕ-ху россыпью или несколько? После mup.sys должен грузится mrxsmb.sys, если зависание наблюдается после mrxsmb.sys значит загрузка не видит шару прописанную в winnt.sif (тут есть странный ньюанс, SetupSourceDevice должен содержать "\Device\LanmanRedirector\192.168.0.1\PXE\WinPE" и шару и папку, иначе загрузка дальше не пойдет), также нужно разбираться с правами на шару и папки, и т.п. В общем если выполнить точно все что описано в статье проблем быть не должно. Единственные проблемы может вызвать парсер inf файлов. Я в питоне не силен, поэтому мне тяжело его переписать.
yurkesha, позволю не согласится, у меня по умолчанию грузится мультиядерная ПЕ-ха и никаких хитрых модификаций при загрузке россыпи по сети не требуется. Хотя я собираю из Nt5.2, но я не думаю что это имеет большое значение. pxeldr нужен только для wim и без него у меня не работало. wim по сети я не использую по причине модульности моей ПЕ-хи.
Для подтверждение моих слов, можно скачать файл ]]>Patch_SETUPLDR_5.7z]]> в котором присутствуют все используемые загрузчики на текущий момент для разных типов загрузки.
P.S. В моих последних ПЕ-шках встроена возможность загрузки по сети именно по этой статье и по этому принципу. Кому интересно, могут найти последнюю версию (2.05) и поковырять. А на работе настроил загрузку по сети на древнем Mandrake, здесь одна проблема, чувствительность к регистру.
Ieshua - ты хочешь сказать
Ieshua - ты хочешь сказать что можно использовать стартовый pxeldr?
Тогда мне непонятно - как именно происходит выбор hal?
Стартовый загрузчик умеет грузить только hal.dll.
Какой у тебя размер в байтах размер загрузчика?
---
упс..
Использовал патченый pxeldr.
Выкладывать файлы на народ - не круто.
Использовал патченый pxeldr.
Попытка загрузки россыпью. Загрузилось. Упало в синьку. Загрузил еще раз. Стоит на "Установка поддержки сети". после пятиминутной задумчивости, провозгласило "Не удается найти INF-файл X:\i386\inf\nlite.inf", после чего "Работа оболочки была завершена с кодом 0x1".
P.S.: Крайне нехватает спойлера и нормальной подсветки кода в редакторе постов и отображении их на сайте.
Для начала дистриб
Для начала дистриб обработанный nlite выбрасываешь и вместо него используешь нормальный оригинальный дистриб (желательно WinXP SP2).
Россыпь однозначно не моя - у меня файла nlite.inf в принципе быть не может.
Сей продукт вполне подходит для обработки обычного дистриба, но заведомо не учитывает специфику работы BartPE builder...
А насчет выкладывания файлов:
- при создании публикации выбрать стиль FullHTML или Filtered HTML (и то и другое это визуальные стили - то есть не пишем коды и не видим их!)
- далее нажимаем на пиктограмму Вставить/Редактировать ссылку
- далее кнопка Выбор на сервере
- ну и наконец в открывшемся окне менеджера файлов можно залить или выбрать залитый файл...
---
упс..
Yurkesha, не совсем понял,
Yurkesha, не совсем понял, что значит "стартовый pxeldr", размер моего загрузчика 279040 байт(setupldr.exe из 2003 sp1). На счет hal.dll не уверен, но в server 2003 какой-то из файлов "комплекта поддержка мультиядерности" изначально многоядерный.(или hal.dll или ntoskrnl.exe)
nek, а я никуда и не выкладывал, гугл рулит. Выполните совет yurkeshi, а потом сюда по ]]>ссылке]]>. Здесь можно почитать, что синий экран 6B может быть вызван следующим:
Причина
Вероятно, инсталляция Windows XP находится на разделе с файловой системой NTFS. В свойствах Security (Безопасность) каталога отсутствуют разрешение на чтение для группы Everyone (Все).
Решение
В свойствах каталога в Security (Безопасность) разрешить чтение группе Everyone (Все).
А это значит, что Вы не выполнили все пункты статьи. За редким исключением может быть баг сетевого драйвера. Допустим Вы делали точно по статье тогда у Вас должны быть в корне диска папка pxe, а в ней winpe. Права нужно поправить для папки winpe. Что у вас выполняется в "Установка поддержки сети"? Сеть ведь уже поднята.
Ieshua ну вот примерно это я
Ieshua ну вот примерно это я и имел в виду - setupldr из 2003, а не от XP. И при этом реально не важно как сделана сборка.
А если взять в качестве pxeldr setupldr из XP - то мультиядерные сборки однозначно не будут работать, независимо от того на базе чего они собраны...
---
упс..
Yurkesha, очень может быть, я
Yurkesha, очень может быть, я проверю по свободе, если подтвердится подправлю статью. Заодно допишу часть интересующую по wim загрузке через pxe.
Проверил. Резюме такое, выкачал последний y(pe) напарился с регистрами файлов dl_ и sy_. Использовал setupldr.exe от xp sp2. Все загрузилось с пол пинка без вопросов. Поймал себя на мысли что многоядерность не проверю, т.к. на работе в моем расположении нет такого железа((( Может дома гляну. Во всяком случае загрузка работает. Размер лоадера 241664 байт. Тест проводил на VirtualBox из репозитария Debian Squeeze с включенным IO APIC. Справедливости ради, можно отметить, что сетевые драйвера подтягивались binl сервером из моей ПЕ-шки, но я думаю особой разницы нет, т.к. я пользуюсь Вашим и сильно его не правил.
Так на одноядерном проблем и
Так на одноядерном проблем и не дожно быть - ядро uniprocessor и hal соответствуют друг другу.
А вот если мультиядерность в наличии то ядро будет уже другое а hal все тот же...
---
упс..
> Для начала дистриб
> Для начала дистриб обработанный nlite выбрасываешь и вместо него используешь нормальный оригинальный дистриб (желательно WinXP SP2).
Скан с лицензионного диска, с которго я беру образ для работы приложить, дабы вы убедились? Либо лицензия не совсем лицензия, либо магия. Поищу другой диск.
Скан естественно ничего не
Скан естественно ничего не показывает :)
Относительно могут убедить контрольные суммы, но поскольку неизвестно в данный момент о каком конкретно выпуске идет речь то непонятно с чем их сверять.
Поэтому остается единственный вариант - листинг файлов дистрибутива и содержимое txtsetup.sif.
---
упс..
nek, просто объясните откуда
nek, просто объясните откуда у вас в txtsetup.sif появляется nlite.inf?
Yurkesha, продолжаю тест загрузки россыпью по сети (информация бралась из aida64):
Во всяком случае загрузчик не повлиял на работоспособность загрузки по сети сборки.
Продолжение на реальном железе с двумя ядрами.
Первая десктоповая конфигурация не взлетела ни с одним из загрузчиков и выдавала bsod bb.
Вторая конфигурация ноутбук ASUS X54C с двумя ядрами:
Следует отметить очень нестабильные результаты, во всех случаях успешная загрузка удавалась в одной из трех попыток. Ошибки разнообразные от синих экранов c00021a до зависаний при том на любом из загрузчиков.
Я не могу пояснить, откуда
Я не могу пояснить, откуда оно там взялось.
В любом случае попробую сделать образы из другого диска как только найду.
Имеющийся на руках диск еще никогда не подводил, но видимо и он не идеален.
Попробуйте эту или эту.
Попробуйте эту или эту версии.
Yurkesha, у меня стойкое
Yurkesha, у меня стойкое чувство, что проблема в сборках, например последний alkid на всех загрузчиках выдал: оболочка завершена с кодом 0x1. Y(PE) CD грузится у меня практически всегда на двухядерном asus x54c (иногда сильно торомозит и я не дожидаюсь) с загрузчиком от xp sp2. Так что я не подтвержаю наличие ошибок в статье. По поводу wim я допишу статью и добавлю pxeldr-wim.
Ну вообще что касается 0x21a
Ну вообще что касается 0x21a на моей сборке - я заведомо использую пяток файлов из других версий винды. Но почему-то возникает ошибка только на PXE и при этом не всегда...
Абсолютно уверен что если вернуться к использованию юнипроцессорного ядра и hal то проблем не будет.
А насчет alkid - не создался вовремя RAM-диск или не сработал FBWF(он имеет особенности запуска на CD/HDD/NET да и вообще не предназначен для XP - в особенности русскоязычной).
---
упс..
Yurkesha, на alkide ошибка
Yurkesha, на alkide ошибка вываливается в самом конце загрузки, когда должен отобразится рабочий стол, на счет ошибки 0x21a ее может вызывать minlogon, я у себя его не использую т.к. у меня даже при обычной загрузке отображается эта ошибка.
ReatogoPE грузится без
ReatogoPE грузится без вопросов по сети с первым загрузчиком, поддержка мультиядерности есть.
Yurkesha, serg kaac, а можно
Yurkesha, serg kaac, а можно ли мне получить права на редактирование этой статьи?)))
Так твоя же статья - вверху
Так твоя же статья - вверху статьи кнопка "Изменить"...
Или так не получается?
---
упс..
В этом то и прикол.
В этом то и прикол.
Ну я временно порешал вопрос
Ну я временно порешал вопрос - пробуй - все должно получиться.
Но вообще требуется вмешательство Сергея...
---
упс..
Спасибо, попробую.
Спасибо, попробую.
Не помогло, без изменений.
Ну пробуй еще - если и это не
Ну пробуй еще - если и это не помогло то ждем Сергея...
---
упс..
Неа, не помогло.
Неа, не помогло.
Кстати запустил только, что у себя y(pe) россыпью по сетке, все работает.(загрузчик setupldr.exe от XP SP2)
Я проверил права и на всякий
Я проверил права и на всякий случай переобпределил еще раз, должно по идее работать. Если нет то надобно через создание новой редакции делать.
Жизнь бьёт ключом! И все больше по голове!>
Не помогло, но я перезалил
Не помогло, но я перезалил вложение и написал статью продолжение.
Страницы