- Dhcp сервер pxe windows
- При Установке встроенного DHCP
- При существующем Windows DHCP.
- При существующем Cisco DHCP.
- При существующем MikroTik DHCP.
- Настройка PXE-сервера для загрузки Windows PE Configure a PXE server to load Windows PE
- Необходимые условия Prerequisites
- Шаг 1: скопируйте исходные файлы Windows PE Step 1: Copy Windows PE source files
- Шаг 2: настройка параметров загрузки и копирование файла BCD Step 2: Configure boot settings and copy the BCD file
- Сводка по процессу загрузки PXE PXE boot process summary
- Заметки дядюшки Раджи
- Об авторе
- Архив блога
- Мой блог смотрят
- 26 октября 2019
- Как я DHCP-сервер для PXE настраивал и тестировал.
Dhcp сервер pxe windows
Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-00
Всем привет, сегодня расскажу про вторую часть статьи, как установить загрузочный PXE сервер для установки операционных систем семейства Windows, Linux, или ESXI 5.5. Первая часть находится тут. В данной части мы рассмотрим реализацию DHCP сервера на разных платформах, чтобы ваш пустой сервер, мог находить в вашей локальной сети сервер, со всеми нужными вам дистрибутивами.
При Установке встроенного DHCP
Сначала рассмотрим ситуацию что DHCP server будет на этом же загрузочном сервере PXE. Устанавливаем DHCP server такой командой.
стандартный конфиг переместим, создадим вместо него свой и перезапустим DHCP демон
Если ваш сервер еще и шлюз в интернет то пропишем это
При существующем Windows DHCP.
Если вы попытаетесь загрузиться через PXE протокол с голого сервера, то вы увидите вот такую ошибку
PXE-E53: No boot filename received
PXE_M0F: Exiting Intel PXE ROM
Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-14
Открываем ваш сервер DHCP. Пуск-Администрирование-DHCP.
Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-14
Переходим в параметры сервера и щелкаем правым кликом, выбираем Настроить параметры
Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-13
Нам нужно отметить параметр 66 Имя узла сервера загрузки — по сути это аналог адреса TFTP сервера, и в Строке значения прописываем Ip адрес вашего сервера PXE.
Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-12
В параметре 67 Имя файла загрузки, прописываем pxelinux.0
Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-11
У вас должно получиться так как на скриншоте.
Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-10
При существующем Cisco DHCP.
Если у вас как и у меня DHCP server на Cisco то прописываем вот так
При существующем MikroTik DHCP.
При таком раскладе прописываем
Далее нужно поставить apache и NFS службы. Делаем командами
aptitude install nfs-kernel-server
Если все сделано правильно, то вы увидите вот такое меню. Пока только в меню у вас есть загрузка с диска.
Как установить загрузочный PXE сервер для установки Windows, Linux, ESXI 5.5-16
После того как весь каркас установлен можно продолжать настройку дальше, в третьей части мы рассмотрим как создать собственное меню со своей структурой.
Настройка PXE-сервера для загрузки Windows PE Configure a PXE server to load Windows PE
Относится к Applies to
В этом пошаговом руководстве описано, как настроить PXE-сервер для загрузки Windows PE при запуске клиентского компьютера по сети. This walkthrough describes how to configure a PXE server to load Windows PE by booting a client computer from the network. С помощью средств Windows PE и файла образа Windows 10 можно установить Windows 10 по сети. Using the Windows PE tools and a Windows 10 image file, you can install Windows 10 from the network.
Необходимые условия Prerequisites
- Компьютер развертывания: компьютер с набором оценки и развертывания Windows (Windows ADK) и надстройкой Windows PE с установленным ADK. A deployment computer: A computer with the Windows Assessment and Deployment Kit (Windows ADK) and the Windows PE add-on with ADK installed.
- DHCP-сервер: DHCP-сервер или прокси-сервер DHCP, настроенный для отправки ответов на запросы PXE-клиентов. A DHCP server: A DHCP server or DHCP proxy configured to respond to PXE client requests is required.
- PXE-сервер: сервер под управлением службы TFTP, на котором могут размещаться файлы загрузки Windows PE для скачивания клиентом. A PXE server: A server running the TFTP service that can host Windows PE boot files that the client will download.
- Файловый сервер: сервер с общей сетевой папкой. A file server: A server hosting a network file share.
Все четыре перечисленных выше роли могут размещаться на одном компьютере, также можно выделить отдельный компьютер для каждой роли. All four of the roles specified above can be hosted on the same computer or each can be on a separate computer.
Шаг 1: скопируйте исходные файлы Windows PE Step 1: Copy Windows PE source files
На компьютере развертывания: нажмите Пуск и введите развертывание. On the deployment computer, click Start, and type deployment.
Щелкните правой кнопкой мыши элемент Среда средств развертывания и работы с образами и затем нажмите Запуск от имени администратора. Right-click Deployment and Imaging Tools Environment and then click Run as administrator. Будет запущен ярлык среды средств развертывания и создания образов, который открывает окно командной строки и автоматически задает переменные среды таким образом, чтобы они указывали на все необходимые средства. The Deployment and Imaging Tools Environment shortcut opens a Command Prompt window and automatically sets environment variables to point to all the necessary tools.
Чтобы скопировать базовые файлы Windows PE в новую папку, выполните следующую команду. Run the following command to copy the base Windows PE files into a new folder. Сценарий требует два аргумента: архитектуру оборудования и целевое расположение. The script requires two arguments: hardware architecture and destination location. Значение может быть x86, amd64 или arm, а может соответствовать пути к локальному каталогу. The value of can be x86, amd64, or arm and is a path to a local directory. Если каталог еще не существует, он будет создан. If the directory does not already exist, it will be created.
Например, следующая команда копирует файлы архитектуры amd64 в каталог C:\winpe_amd64: For example, the following command copies amd64 architecture files to the C:\winpe_amd64 directory:
Сценарий создает структуру каталогов назначения и копирует все необходимые файлы для этой архитектуры. The script creates the destination directory structure and copies all the necessary files for that architecture. В предыдущем примере создаются следующие каталоги: In the previous example, the following directories are created:
Подключите базовый образ Windows PE (winpe.wim) в каталог \mount с помощью средства DISM. Mount the base Windows PE image (winpe.wim) to the \mount directory using the DISM tool. При подключении файла образа его содержимое распаковывается в папку, что позволяет вносить изменения напрямую или с помощью таких программ, как DISM. Mounting an image file unpacks the file contents into a folder so that you can make changes directly or by using tools such as DISM. См. приведенный ниже пример. See the following example.
Убедитесь, что отображается сообщение «Операция завершена успешно». Verify that «The operation completed successfully» is displayed. Примечание. Чтобы просмотреть подключенные в настоящее время образы, введите dism /get-MountedWiminfo. Note: To view currently mounted images, type dism /get-MountedWiminfo.
Выполните сопоставление общего сетевого ресурса корневому каталогу TFTP на сервере PXE/TFTP и создайте папку \Boot. Map a network share to the root TFTP directory on the PXE/TFTP server and create a \Boot folder. Обратитесь к документации сервера TFTP, чтобы определить корневой каталог сервера TFTP, а затем включите общий доступ к этой папке и убедитесь, что она доступна в сети. Consult your TFTP server documentation to determine the root TFTP server directory, then enable sharing for this directory, and verify it can be accessed on the network. В следующем примере имя сервера PXE имеет значение PXE-1, а общий доступ к корневому каталогу TFTP предоставляется с помощью сетевого пути \\PXE-1\TFTPRoot: In the following example, the PXE server name is PXE-1 and the TFTP root directory is shared using a network path of \\PXE-1\TFTPRoot:
Скопируйте файлы загрузки PXE из подключенного каталога в папку \boot. Copy the PXE boot files from the mounted directory to the \boot folder. Пример. For example:
Скопируйте файл boot.sdi на сервер PXE/TFTP. Copy the boot.sdi file to the PXE/TFTP server.
Скопируйте загрузочный образ Windows PE (boot.wim) в папку \boot. Copy the bootable Windows PE image (boot.wim) to the \boot folder.
(Необязательно) Скопируйте в папку \boot шрифты true type (Optional) Copy true type fonts to the \boot folder
Шаг 2: настройка параметров загрузки и копирование файла BCD Step 2: Configure boot settings and copy the BCD file
Создайте хранилище BCD с помощью bcdedit.exe: Create a BCD store using bcdedit.exe:
Настройте параметры RAMDISK: Configure RAMDISK settings:
Последняя команда возвращает идентификатор GUID, например: The last command will return a GUID, for example:
Скопируйте этот идентификатор GUID для использования в следующих командах. Copy this GUID for use in the next set of commands. В каждой приведенной команде замените «GUID1» своим идентификатором GUID. In each command shown, replace «GUID1» with your GUID.
Создайте новую загрузочную запись приложения для образа Windows PE: Create a new boot application entry for the Windows PE image:
Настройте параметры BOOTMGR (не забудьте заменить GUID1 в третьей команде своим идентификатором GUID): Configure BOOTMGR settings (remember to replace GUID1 in the third command with your GUID):
Скопируйте файл BCD на свой TFTP-сервер: Copy the BCD file to your TFTP server:
Теперь ваш сервер PXE/TFTP настроен. Your PXE/TFTP server is now configured. Можно просмотреть установленные параметры BCD с помощью команды bcdedit /store /enum all. You can view the BCD settings that have been configured using the command bcdedit /store /enum all. См. следующий пример. See the following example. Примечание. Ваш идентификатор GUID будет отличаться от приведенного ниже. Note: Your GUID will be different than the one shown below.
Если вы запустите процесс загрузки PXE, но получите сообщение об ошибке «Данные конфигурации загрузки для компьютера отсутствуют или содержат ошибки», убедитесь, что каталог \boot установлен в правильном корневом каталоге сервера TFTP. If you start the PXE boot process, but receive the error that «The boot configuration data for your PC is missing or contains errors» then verify that \boot directory is installed under the correct TFTP server root directory. В используемом здесь примере имя этого каталога — TFTPRoot, но сервер TFTP может быть другим. In the example used here the name of this directory is TFTPRoot, but your TFTP server might be different.
Сводка по процессу загрузки PXE PXE boot process summary
В следующей таблице приведены основные сведения о процессе загрузки PXE-клиента. The following summarizes the PXE client boot process.
Заметки дядюшки Раджи
Всякая всячина, которую дядюшка Раджа находит в интернете и хочет поделиться с читателями.
Об авторе
Архив блога
- ►2021 (3)
- ►апреля (1)
- ►марта (2)
- ►2020 (13)
- ►декабря (2)
- ►октября (1)
- ►сентября (2)
- ►августа (1)
- ►июля (1)
- ►мая (3)
- ►февраля (2)
- ►января (1)
- ▼2019 (12)
- ►декабря (2)
- ▼октября (2)
- Как я всякую дичь через PXE грузил.
- Как я DHCP-сервер для PXE настраивал и тестировал.
- ►сентября (2)
- ►августа (1)
- ►июня (2)
- ►мая (1)
- ►марта (1)
- ►января (1)
- ►2018 (15)
- ►декабря (2)
- ►ноября (1)
- ►октября (2)
- ►сентября (1)
- ►июля (1)
- ►июня (1)
- ►мая (2)
- ►апреля (3)
- ►февраля (1)
- ►января (1)
- ►2017 (20)
- ►декабря (1)
- ►ноября (2)
- ►октября (1)
- ►сентября (3)
- ►августа (3)
- ►июня (1)
- ►мая (1)
- ►апреля (1)
- ►марта (1)
- ►февраля (4)
- ►января (2)
- ►2016 (15)
- ►декабря (4)
- ►октября (1)
- ►августа (1)
- ►июля (2)
- ►июня (1)
- ►апреля (3)
- ►февраля (1)
- ►января (2)
- ►2015 (10)
- ►декабря (1)
- ►ноября (2)
- ►сентября (1)
- ►августа (2)
- ►июля (1)
- ►июня (2)
- ►апреля (1)
- ►2014 (16)
- ►декабря (1)
- ►ноября (3)
- ►октября (1)
- ►сентября (1)
- ►августа (2)
- ►июля (2)
- ►мая (1)
- ►апреля (1)
- ►февраля (4)
- ►2013 (11)
- ►декабря (2)
- ►октября (2)
- ►августа (1)
- ►июля (1)
- ►июня (1)
- ►апреля (1)
- ►марта (1)
- ►января (2)
- ►2012 (24)
- ►декабря (1)
- ►ноября (2)
- ►октября (1)
- ►сентября (1)
- ►июля (1)
- ►июня (4)
- ►мая (2)
- ►апреля (2)
- ►марта (6)
- ►февраля (2)
- ►января (2)
- ►2011 (14)
- ►декабря (2)
- ►октября (2)
- ►сентября (2)
- ►августа (5)
- ►июля (2)
- ►февраля (1)
- ►2010 (29)
- ►декабря (1)
- ►июня (1)
- ►мая (3)
- ►апреля (10)
- ►марта (7)
- ►февраля (4)
- ►января (3)
- ►2009 (38)
- ►декабря (6)
- ►ноября (4)
- ►октября (4)
- ►сентября (8)
- ►августа (2)
- ►июля (2)
- ►мая (2)
- ►апреля (1)
- ►марта (5)
- ►февраля (2)
- ►января (2)
- ►2008 (50)
- ►декабря (4)
- ►ноября (6)
- ►октября (7)
- ►сентября (15)
- ►августа (14)
- ►июля (1)
- ►июня (2)
- ►мая (1)
Мой блог смотрят
26 октября 2019
Как я DHCP-сервер для PXE настраивал и тестировал.
На домашних роутерах в качестве сервера DNS и DHCP обычно используется dnsmasq. В прошивках типа TomatoUSB есть возможность задать для него дополнительные опции, в том числе и для загрузки по сети с помощью PXE. Вот с этим у меня и возникли заморочки, потому что для машин с UEFI надо отдавать не обычный pxe-загрузчик, а efi-приложение.
Для начала немного теории.
При загрузке по сети часть прошивки материнской платы поднимает сетевой интерфейс и пытается его настроить с помощью DHCP, отправляя соответствующий широковещательный запрос в сеть. В этом запросе содержится куча служебной информации о хосте, чтобы правильно настроенный DHCP-сервер мог отдать правильные настройки.
Все передаваемые и принимаемые параметры называются опциями, и их очень много, да ещё и производители железа могут свои добавлять для удобства. Протокол это вроде бы как позволяет.
Когда-то давно я даже нашёл документ с их списком. Вот он.
Теперь практика.
Из всех опций для идентификации архитектуры клиента нужна опция №93. Значения её полей можно найти в RFC4578.
dnsmasq надо настроить так, чтобы для клиентов с 64-битным UEFI отдавался загрузчик в виде EFI-приложения, а для клиентов с BIOS отдавался обычный PXE-загрузчик. Если для isc-dhcp-server подобное делается с помощью расписывания условий, то для dnsmasq это делается с помощью установки значений тегов. Вот такой кусок конфига я задал в настройках роутера:
В строках 1-3 проверяется значение полученной от клиента опции «client-arch» (№93). Если оно равно 7 или 9, то устанавливается тег «efi-x86_64«, если значение равно 0, то устанавливается тег «bios«.
В 4 и 5 строке по соответствующим тегам отдаётся нужное имя файла и адрес tftp-сервера. В данном случае сервер один, но для UEFI-клиентов отдаётся имя файла «syslinux.efi«, а для BIOS-клиентов — «pxelinux.0«.
Второй проблемой стало тестирование настроек DHCP-сервера без привлечения реальных и виртуальных машин. Т.е. нужна была программа, которая может сформировать нужный запрос для DHCP-сервера и расшифровать полученный ответ. И такую программу я нашёл. Она так и называется dhcptest. Она написана на языке D, установка компилятора которого — тот ещё квест, но есть готовые бинарники для Windows. Для правильной работы в Linux программе нужны права root.
Если программу запустить с параметром » —query » или набрать команду » d » в интерактивном режиме, то она сформирует запрос к DHCP-серверу и расшифрует полученный ответ, но в нём не будет ничего про файл-загрузчик и tftp-сервер:
Чтобы сделать правильный запрос, надо к списку добавить опцию №93 (client-arch) типа u16 со значением 0, 7 или 9. Делается это добавлением ключа » —option «93[u16]=7» «. В данном случае опция имеет значение 7 (EFI BC). Теперь в ответе есть нужные поля:
Ещё одной полезной программой при настройке является dhcpdump. Она тоже требует права root для работы. Для запуска требуется указать сетевой интерфейс для прослушивания. Из-за того, что по протоколу DHCP запросы и ответы посылаются широковещательными пакетами, то их можно подслушать на других узлах той же подсети.
С помощью этой программы я подсматривал за процессом получения настроек при загрузке по сети виртуальной машины.