PXE (Preboot Execution Environment)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 23:13, 4 июня 2019.
PXE (Preboot Execution Environment).
NEWLogo.png
PXE (Preboot Execution Environment)
Разработчики: Intel
Состояние разработки: Раз
Операционная система: Linux, Windows
Размер дистрибутива: 32 Кб
Локализация: Английский
Веб-сайт Нет сайта

PXE(Preboot eXecution Environment) - среда для загрузки компьютера с помощью сетевой карты без использования локальных носителей данных (жёсткого диска, USB-накопителя и т.п.)

Описание

Технология PXE (Preboot Execution Environment — Среда предварительного исполнения), которая произносится как «Пикси» (Pixie - волшебная пыль), является подходом, который позволяет компьютеру (клиентскому компьютеру) загружаться, используя только свою сетевую карту. Этот метод загрузки был создан еще в 1999 году и если компьютер подключен к сети (и поддерживает этот стандарт), то можно обойти обычную процедуру загрузки (т. е. включение питания -> BIOS -> HD / CD) и эта среда позволяет сделать некоторые вещи, начиная с поиска и устранения неисправностей, для чего обычно используется liveOS, или снять образ машины. На рисунке показан процесс загрузки PXE с NFS Root Mount:

  1. Клиент передает DHCP DISCOVER сообщение.
  2. DHCP - сервер отвечает с IP - адресом, next-server, имя файла и root-path значением.
  3. Клиент отправляет TFTP - запрос next-server, запрашивая получение имени файла.
  4. Сервер TFTP отвечает и отправляет имя файла клиенту.
  5. Клиент вводит имя файла, то есть PXE Boot, который затем загружает ядро. Когда ядро ​​выполняется, указанная корневая файловая система root-path монтируется поверх NFS (см. Рисунок 1).
    Рисунок 1 – Процесс загрузки PXE

Системные требования

  1. Клиентская машина, которая поддерживает загрузку PXE.
  2. DHCP-сервер: DHCP-сервер или прокси-сервер DHCP, настроенный для отправки ответов на запросы PXE-клиентов.
  3. PXE-сервер: сервер под управлением службы TFTP, на котором могут размещаться файлы загрузки #Windows PE для скачивания клиентом.
  4. Файловый сервер: сервер с общей сетевой папкой.
  5. Системы на основе Debian (например Debian Squeeze), Ubuntu Server 9.10, Linux Mint10) или Windows.

Процесс загрузки

PXE обычно включает в себя загрузку компьютера из встроенного программного обеспечения - данные, содержащиеся в постоянном запоминающем устройстве ( ПЗУ ) или программируемом постоянном запоминающем устройстве ( PROM ), - а не из данных, содержащихся на магнитном носителе. Это приводит к появлению терминов «PXE boot ROM» или «PXE boot PROM» (иногда пишется «PXE bootprom»). Загрузка из ПЗУ или ППЗУ исключает зависимость от электромеханического устройства (физического привода). Это повышает надежность и устраняет ошибки чтения диска. Благодаря современной технологии памяти загрузка с ROM или PROM происходит быстро. PXE также можно использовать для загрузки компьютера из сети. Когда используется подход PXE, процесс загрузки изменяется с обычного на следующий:

  1. Включение питания.
  2. BIOS.
  3. Стек PXE сетевой карты.
  4. Программа сетевой загрузки Network Boot Program (NBP), загружаемая с помощью TFTP с сервера в память клиентской машины.[Источник 1]

Настройка PXE для Windows

С помощью средств Windows PE и файла образа Windows 10 можно установить Windows 10 по сети.

Необходимые условия:

  1. Компьютер развертывания: компьютер с помощью комплекта средств для развертывания и оценки Windows (WindowsADK).
  2. DHCP-сервер: DHCP-сервер или прокси-сервер DHCP, настроенный для отправки ответов на запросы PXE-клиентов.
  3. PXE-сервер: сервер под управлением службы TFTP, на котором могут размещаться файлы загрузки Windows PE для скачивания клиентом.
  4. Файловый сервер: сервер с общей сетевой папкой.

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

  • Скопируйте исходные файлы Windows PE

На компьютере развертывания: нажмите Пуск и введите развертывание.

  • Щелкните правой кнопкой мыши элемент Среда средств развертывания и работы с образами и затем нажмите Запуск от имени администратора. Будет запущен ярлык среды средств развертывания и создания образов, который открывает окно командной строки и автоматически задает переменные среды таким образом, чтобы они указывали на все необходимые средства.
  • Запустите следующую команду, чтобы скопировать базовые файлы WindowsPE в новую папку. Сценарий требует два аргумента: архитектуру оборудования и целевое расположение. Значение <архитектуры> может быть x86, amd64 или arm, а <назначение> может соответствовать пути к локальному каталогу. Если каталог еще не существует, он будет создан.

copype.cmd <architecture> <destination>

  • Сценарий создает структуру каталогов назначения и копирует все необходимые файлы для этой архитектуры. В этом примере создаются следующие каталоги:

C:\winpe_amd64 C:\winpe_amd64\fwfiles C:\winpe_amd64\media C:\winpe_amd64\mount

  • Необходимо подключить базовый образ WindowsPE (winpe.wim) в каталог \mount с помощью средства DISM. При подключении файла образа его содержимое распаковывается в папку, что позволяет вносить изменения напрямую или с помощью таких программ, как DISM.
Dism /mount-image /imagefile:c:\winpe_amd64\media\sources\boot.wim /index:1 /mountdir:C:\winpe_amd64\mount
  • Далее необходимо убедиться, что отображается сообщение "Операция завершена успешно". Примечание. Чтобы просмотреть подключенные в настоящее время образы, то необходимо ввести dism /get-MountedWiminfo.
  • Дальше необходимо выполнить сопоставление общего сетевого ресурса корневому каталогу TFTP на сервере PXE/TFTP и создайте папку \Boot. Здесь следует к документации сервера TFTP, чтобы определить корневой каталог сервера TFTP, а затем включить общий доступ к этой папке и убедитесь, что она доступна в сети. В следующем примере имя сервера PXE имеет значение PXE-1, а общий доступ к корневому каталогу TFTP предоставляется с помощью сетевого пути \\PXE-1\TFTPRoot .
  • Скопируйте файлы загрузки PXE из подключенного каталога в папку \boot.
copy c:\winpe_amd64\mount\windows\boot\pxe\*.* y:\boot
  • Скопируйте файл boot.sdi на сервер PXE/TFTP.
copy C:\winpe_amd64\media\boot\boot.sdi y:\boot 
  • Скопируйте загрузочный образ WindowsPE
    copy C:\winpe_amd64\media\sources\boot.wim y:\boot 
  • Скопируйте в папку \boot шрифты true type </console>.
copy C:\winpe_amd64\media\Boot\Fonts
.

Сведения по процессу загрузки PXE

Сведения о процессе загрузки PXE-клиента.

  1. Клиент направляется параметрами 066 и 067 DHCP на скачивание файла boot\PXEboot.n12 с сервера TFTP.
  2. PXEboot.n12 сразу же начинает сетевую загрузку.
  3. Клиент скачивает boot\bootmgr.exe и файл boot\BCD с сервера TFTP. Хранилище BCD должно находиться в каталоге \boot на сервере TFTP и должно называться BCD.
  4. Bootmgr.exe считывает записи данных конфигурации загрузки операционной системы и скачивает boot\boot.sdi и образ WindowsPE (boot\boot.wim). В число дополнительных файлов, которые также можно скачать, входят шрифты true type (boot\Fonts\wgl4_boot.ttf) и файл состояния гибернации (\hiberfil.sys), если эти файлы есть в наличии.
  5. Bootmgr.exe запускает WindowsPE путем вызова winload.exe в образе WindowsPE.
  6. Windows PE загружается, открывается окно командной строки и выполняется файл wpeinit.exe для инициализации Windows PE.
  7. Клиент Windows PE обеспечивает доступ к таким средствам, как imagex, diskpart и bcdboot, с помощью командной строки Windows PE. Используя эти средства вместе с файлом образа Windows 10, можно надлежащим образом отформатировать конечный компьютер для загрузки полной операционной системы Windows 10.

[Источник 2]

Загрузка PXE для Linux Ubuntu

Для загрузки PXE понадобится cервер под управлением Linux. Рассмотрим процесс загрузки.

TFTP-Сервер

  • Устанавливаем пакеты:
     tftp tftpd-hpa sudo apt-get install tftp tftpd-hpa 
  • Следующим шагом будет настройка корневого каталога TFTP сервера и самого сервера:

открываем файл /etc/inetd.conf, и убеждаемся в наличие следующей строки, а так же, что перед ней не стоит.

  • Проверяем
     /tftpboot есть файл /tftpboot/pxelinux.0  tftp 10.22.22.22 tftp> get pxelinux.0 Received 16300 bytes in 0.0 seconds tftp 
    .Как видно из ответа TFTP клиента можно получить файл размером 16300 байт за 0 секунд.

DHCP-Сервер

  1. Устанавливаем пакет: dhcp3-server.
  2. Теперь нужно его настроить для этого откроем файл /etc/dhcp3/dhcpd.conf удобным нам способом.
  3. Наш файл
     /etc/dhcp3/dhcpd.conf:ddns-update-style none;default-lease-time 600;max-lease-time 7200;authoritative;log-facility local7;server-name "10.22.22.22";subnet 10.22.22.0 netmask 255.255.255.0 {pool {range 10.22.22.1 10.22.22.21;next-server 10.22.22.22; # Адресе tftp сервера для загрузки файла с загрузчиком filename "pxelinux.0"; # Имя файла с загрузчиком }} 
    .
  4. Перезапускаем DHCP сервер.
  5. Распаковываем архив. Берем тут или тут Внимание в архиве содержится полная и 100% рабочая сборка образов и загрузчик pxe (кроме Acronis).
  6. Теперь загружаем на любую машину с PXE ROM включаем его в BIOS и устанавливаем его приоритетным устройством загрузки.
  7. Сохраняем и перезагружаемся.

[Источник 3]

Источники

  1. Что такое сетевая загрузка (PXE) и как ей можно пользоваться// Linux no.ру. [1999—2018]. Дата обновления: 14.03.2014. URL: http://rus-linux.net/MyLDP/boot/pxe01.html (дата обращения: 01.04.2019).
  2. Настройка PXE-сервер для загрузки WindowsPE//Microsoft . [2019]. Дата обновления: 27.07.2017. URL: https://docs.microsoft.com/ru-ru/windows/deployment/configure-a-pxe-server-to-load-windows-pe (дата обращения: 01.04.2019).
  3. PXE Boot за 15 минут // habr. [2006-2019]. Дата обновления: 30.01.2010. URL: https://m.habr.com/ru/post/82552/ (дата обращения: 01.04.2019).