Как настроить network boot

Как настроить network boot

В этом небольшом посте я расскажу вам о практических способах реализации загрузки бездисковых устройств через PXE. Скажем так, что до определенного момента я совсем не интересовался этой проблемой и о PXE имел весьма посредственное представление, также, наверное как и у большинства. Т.е. все из нас знают, что в современных ПК есть возможность загрузки по сети, каждый видел в BIOS’е собственного ПК такую возможность (PXE Boot, LAN Boot), но мало кто использовал ее на практике. Реализацией этой возможности мы и займемся на практике, а также рассмотрим какое практическое применение в «домашних условиях» может иметь сетевая загрузка.

Наша «тестовая лаборатория» включает в себя:

  • Маршрутизатор Mikrotik 951G-2HnD с RouterOS v6.39 (stable)
  • Сетевое хранилище Western Digital My Cloud EX2

  • PXE — Сетевая загрузка с микротика — здесь описывается настройка Mikrotik + TFTP для сетевой загрузки с использованием GRUB (Grub4DOS), а также приведен пример рабочей конфигурации для загрузки ALKID LiveCD и VINCOME LiveCD через PXE. Немного не то что нам хотелось (мы то хотели грузить Ubuntu LiveCD), но тем неменее информация полезная, берем на заметку.
  • Настройка TFTP сервера на Mikrotik RouterOS — а вот здесь рассматривается настройка TFTP на Mikrotik, правда тут уже у нас уже используется не GRUB, а PXELINUX (SysLinux) в качестве загрузчика. Который, как мы убедимся позже, можно будет использовать и для реализации сетевой установки Ubuntu, и для загрузки LiveCD и для множества других вещей. Уже интересно, не правда ли? Знакомимся со статьями дальше.
  • Загрузочный сервер — как загрузочная флешка, только сервер и по сети — пост на Хабре, в котором рассказывается о том как сделать «загрузочную флешку» по сети. Собственно такая конфигурация отлично подойдет для различных сервисных центров и т.п., с другой стороны, выбрать то, что будет грузиться по сети лично у него — это решение каждого, благо примеров полно. К концу чтения этого поста, вы (по-крайней мере я на это надеюсь) поймете, насколько это удобно.
  • Домашний роутер с PXE-Boot и сервисами. — приводится пример организации PXE загрузки на Asus’овском роутере с прошивкой Merlin-Firmware. Честно говоря я сам подобную никогда не использовал, но статья ценна уже как минимум различными примерами рассмотренных в ней конфигураций для загрузки. А также как отличная иллюстрация того, что при желании, для реализации PXE загрузки можно использовать только лишь ресурсы бюджетного SOHO устройства.
  • Как воспользоваться сетевой загрузкой (PXE) для Ubuntu LiveCD — переводная статья с HowToGeek, в принципе тоже может быть интересна. Кстати, именно по теме сетевой загрузки Ubuntu LiveCD вы так или иначе наткнетесь на различные ее вариации в поиске.
  • Мультизагрузочный PXE-реаниматор — статья на 3DNews от 2012 года, но тоже в принципе интересно. Если вы читая этот пост пока просто просматриваете эти ссылки «по диагонали» — то наверное уже поняли, что PXE загрузка предоставляет практически неограниченный набор возможностей, наша задача лишь научиться правильно применить их для наших задач.
  • [How-To] Запуск LiceCD Ubuntu (и не только) с любого ПК в сети с помощью PXE — название поста говорит само за себя, все действия автор проводит на сервере под управлением Debian 7. Т.е. DHCP + TFTP и т.п. у него развернуты на отдельном ПК с Debian 7. Тоже интересно, помечаем в «копилку».
  • Configure PXE Server In Ubuntu 14.04 — похожий англоязычный вариант.
  • Установка Ubuntu по сети (DHCP, PXE, boot-menu) на примере Ubuntu 14.04.
  • Ubuntu 16.04 / Debian 8: Run PXE boot server for automated install — конфигурирование сервера для автоматизированной установки Ubuntu и Debian по сети. Лично мне эта статья понравилась различными комментариями и дополнительными пояснениями. Если читать вдумчиво, а не по диагонали, то становится (хотя бы на базовом уровне) понятно что такое pxelinux.0, ldlinux.c32 и т.п.
  • Booten vom Netzwerk: Ubuntu 16.04 via PXE starten — статья, правда на немецком, подробно рассказывающая про то, как правильно настроить загрузку LiveCD с Ubuntu по сети. Собственно она и легла в основу решения поставленной задачи.
  • Руководство по сетевой загрузке предустановочной среды Windows (WinPE)
  • IT Geek: How to Network Boot (PXE) the WinPE Recovery Disk with PXElinux v5 & Wimboot

Ну и на первое время достаточно. Просмотрев / прочитав все это начнем ваять что-то свое. Первое что мы делаем — это подключаем флешку к Mikrotik’у и форматируем ее в FAT32: System -> Disks -> Format drive . Сделать это можно как через WinBox, так и через Web-интерфейс Mikrotik. Проблем с этим возникнуть не должно.

Затем скачиваем заранее подготовленный архив pxe-mikrotik-disk1.rar и распаковываем его содержимое в корень флешки. Сделать это можно как в меню Files в web-интерфейсе Mikrotik’а, так и через FTP в Mikrotik, ну или просто вставив отформатированную USB Flash в ПК и распаковав в корень содержимое архива. В результате там должна получиться следующая структура файлов (смотреть скриншот справа).

Читайте также:  Фоллаут 3 не работает мышь

Некоторых файлов, например kolibri.iso (образ Kolibri OS) в архиве не будет, т.к. их можно без труда найти и скачать в интернете, также в архиве не будет содержимого папки winpe (т.к. все эти файлы есть на любом установочном диске с Windows и включать их в состав архива я не вижу смысла). А вот на остальных мы остановимся подробнее.

pxelinux.0 — это основной загрузчик, на который направляются DHCP сервером все клиенты сетевой загрузки, он входит в состав пакета syslinux. Все что касается данного загрузчика, а также используемых им библиотек (*.c32) можно взять в следующих пакетах:

Для чего они? После загрузки PXELinux на устройство начинается поиск дополнительных файлов и библиотек, т.е. устройство пытается подключиться к TFTP серверу, указанному в опциях отдаваемых DHCP сервером и запросить у него, например, файл ldlinux.c32, так вот TFTP сервер должен знать о реальном местоположении файла, чтобы отдать его, например в нашем случае он лежит в disk1/tftpboot/ldlinux.c32. Честно говоря я не экспериментировал, можно ли задать соответствие не отдельным файлам, а папкам или файлам по маскам, поэтому на всякий случай сделал правила для всех файлов на TFTP сервере. После того как мы прописали правила необходимо настроить наш DHCP сервер.

Переходим на закладку IP -> DHCP Server -> Networks в Mikrotik, выбираем нашу подсеть и делаем там следующие настройки:

На этом приготовления к первому запуску закончены. Можно брать любой ПК и пробовать загрузиться по сети. Для меня наиболее простым решением было создание отдельной виртуальной машины в VirtualBox и настройка ее на загрузку по сети. В результате, если все сделано правильно, вы увидите вот такую вот симпатичную менюшку PXELinux:

Сама конфигурация этого меню находится в файле disk1/tftpboot/ubuntu-installer/amd64/boot-screens/menu.cfg . Если мы попробуем загрузиться в Kolibri OS для примера, то заметим что передача казалось бы маленького (всего 66.5 Mb) образа kolibri.iso через TFTP даже по гигабитной сети займет довольно продолжительное время:

650 Mb и отдавать их по TFTP устройствам — превращается в настоящую муку. Т.е. грузится — да, но оЧЧень медленно. Первая мысль которая приходит в голову — а что если в качестве средства доставки тяжеловесного контента использовать не TFTP, а HTTP или NFS? И да, действительно, такая возможность есть.

Посмотрите как реализована в конфигурации (menu.cfg) загрузка того же Ubuntu LiveCD:

Здесь ядро vmlinuz.efi и рамдиск initrd.lz у нас грузятся по TFTP, а вот содержимое rootfs уже берется с NFS ресурса (благо Ubuntu так умеет). Порядок создания папки ubuntu16.04_live_amd64 на NFS ресурсе описан тут.

Ну или если вкратце, то я создал отдельную папку на WDMyCloud EX2, разрешил доступ к ней по NFS:

/nfs и просто скопировал необходимые файлы с LiveCD с Ubuntu в нее:

В результате содержимое папки ubuntu16.04_live_amd64 у нас полностью идентично корню LiveCD с Ubuntu:

Просто? Просто. Теперь пробуем загрузиться по PXE выбрав в меню LiveCD:

С гигабитной сетью все получилось достаточно быстро. Основное время здесь правда тратится на загрузку vmlinuz.efi (7 Mb) и initrd.lz (27 Mb) по TFTP. И вот здесь мы подходим к главному? А можно ли как-то грузить эти файлы тоже с NFS или с HTTP ресурса? Можно! И ответом здесь является использование вместо PXELinux (который к сожалению так не умеет), загрузчика iPXE. Настоятельно рекомендую вам познакомиться с ним и изучить примеры и т.п. на официальном сайте. В архив pxe-mikrotik-disk1.rar уже входит ipxe.lkrn , собранный мной из исходников с включенной поддержкой HTTP, NFS и т.п.:

Обратите внимание, есть поддержка DNS, HTTP, iSCSI, NFS, TFTP и др. вещей. Т.е. грубо говоря используя iPXE вы можете разместить необходимые файлы не только на NFS шаре, но и где-нибудь в интернете, например, на http://yourdomain.ru/files/ . и загрузчик будет брать их оттуда. При выборе опции Load iPXE SuperBoot Menu в PXELinux открывается меню загрузчика iPXE:

И вот здесь уже, согласитесь, есть чем впечатлиться. Сама конфигурация этого меню находится в файле boot.ipxe, который был взят мной из этого проекта bradgillap/IPXEBOOT на GitHub’е. Внутри подробные примеры и комментарии для всех вариантов загрузки, фактически это означает что вы с минимальными усилиями сможете настроить у себя загрузку любого из приведенных пунктов меню, просто разместив необходимые файлы у себя в сети и скорректировав boot.ipxe .

Ну и последнее о чем хотелось бы рассказать — это о загрузке *.wim образов WinPE через PXE. Для этого в моем примере используется именно iPXE и wimboot. Пример конфигурации вы можете увидеть в menu.cfg от PXELinux в пункте меню «Load iPXE [wim-boot.ipxe]». Фактически там грузится ipxe.lkrn, который читает файл конфига wim-boot.ipxe. Просто размещаете файлы wimboot, bootmgr, bcd, boot.sdi и boot.wim вашего WinPE дистрибутива где-либо в сети (на HTTP, NFS ресурсах) и все замечательно загружается. Примеры опять же, смотрите в wim-boot.ipxe.

Кстати, в меню iPXE SuperBoot от bradgillap есть пункт External Linux Installs. Фактически это внешнее (т.е. находящееся в интернет) загрузочное меню, которое позволяет вам установить некоторые Linux-based ОС, а также загрузить некоторые варианты LiveCD онлайн. Т.е. для того чтобы установить тот же Ubuntu, фактически достаточно только соответствующим образом сконфигурировать DHCP . Все остальное, даже на этапе загрузочного меню может быть взято из сети.

Читайте также:  Как правильно настроить морозильный ларь

p.s. Чуть не забыл 😉 Архив pxe-mikrotik-disk1.rar со всеми необходимыми загрузчиками и примерами конфигураций (пароль на архив стандартный — decker.su). Также буду рад любым вашим мнениям и отзывам в комментариях. Если у вас уже есть свои конфигурации для PXE загрузки распространенных LiveCD дистрибутивов, например, DrWeb Live CD, Kaspersky Rescue Disc и др. популярных инструментов — делитесь ими в комментариях. Также, если у кого-то есть опыт (или ссылки на соответствующие статьи) о настройке бездисковых RDP клиентов, например на базе Thinstation — это тоже приветствуется.

Как вы уже поняли, я далеко не гуру в Linux’е и по-сути как работает PXE я узнал только вчера. Поэтому в архиве по факту используется несколько загрузчиков: PXELinus (SysLinux) как основной, а из него уже можно загрузить iPXE или Grub4DOS, хотя по факту, в реальной жизни достаточно использовать что-то одно. Все это оставлено просто в качестве примера, чтобы было наглядно понятно как работать и с тем, и с другим, и с третьим. Так что, как говорится, «ногами не пинать», а ценные комментарии всегда приветствуются.

Источник

Понимание загрузки PXE в диспетчере конфигурации

В этой статье описываются основные процессы загрузки среды выполнения пребута (PXE) в Диспетчер конфигурации, их работа и их межобъемлютная работа.

Оригинальная версия продукта: Configuration Manager (текущая ветвь), Microsoft System Center R2 Configuration Manager 2012, Microsoft System Center 2012
Исходный номер КБ: 4468601

Общие сведения

Загрузка среды предварительного выполнения (PXE) в System Center 2012 года (ConfigMgr 2012 или ConfigMgr 2012 R2) и более поздних версиях позволяет администраторам легко получить доступ к среде предварительной Windows (WinPE) через сеть с помощью PXE. PXE — это отраслевый стандарт, созданный корпорацией Intel, который предоставляет службы предварительной загрузки в прошивке устройств, что позволяет устройствам загружать сетевые программы загрузки на клиентские компьютеры.

Диспетчер конфигурации использует роль Windows служб развертывания (WDS) через поставщика WDS PXE. В configMgr 2012 и более поздних версиях поставщик SMS PXE (SMSPXE) регистрируется в службе WDS и обеспечивает логику запросов клиентов PXE.

Перед устранением проблем, связанных с PXE в Configuration Manager, важно понять основные процессы, связанные с ними, их работу и их работу.

Во всех случаях в этом документе мы используем System Center 2012 configuration Manager R2 Cumulative Update 2 (ConfigMgr 2012 R2 CU2) и систему удаленного сайта, установленную на Windows Server 2012 с установленной ролью точки рассылки (DP).

Установка точеки службы PXE

Сначала мы посмотрим на процессы, связанные с установкой поставщика SMSPXE.

Установка инициировалась путем выбора опции Включить поддержку PXE для клиентов на вкладке PXE в свойствах точеки распределения. При включенной поддержке PXE создается SMS_SCI_SysResUse экземпляр класса.

В пространстве имен WMI (где RR2 — код сайта сайта) класс содержит все роли систем сайта на Root\SMS\Site_RR2 SMS_SCI_SYSResUse основном сервере сайта. Вы можете выполнить следующий запрос в WBEMTEST, чтобы определить все DPs на этом сервере сайта:

Изменение свойств этих ролей с помощью SDK изменит файл управления сайтом и настроит DP. Имя свойства является членом свойства реквизита и устанавливается до 1 при включенной IsPXE DP PXE.

Компонент мониторинга базы данных SMS обнаруживает изменения в таблицы и таблицы и сбрасывает DPNotificaiton DistributionPoints файлы в distmgr.box:

Компонент Диспетчер рассылки на основном сервере сайта затем инициирует конфигурацию удаленного DP:

В журнале поставщика DP SMS на удаленном DP можно увидеть следующую информацию об установке PXE, где изначально не найден ключ PxeInstalled реестра:

Установлен Распространяемый компонент Visual C++:

Фильтры чтения TFTP настроены:

Создается REMINST доля и настраивается WDS:

На удаленном DP теперь можно увидеть следующие значения, добавленные HKEY_LOCAL_MACHINE\Software\Microsoft\SMS\DP в:

PxeInstalled и IsPXE настроены на 1.

Если мы посмотрим на файловую систему удаленного DP, будет новый C:\SMS_DP$\sms\logs вход:

Теперь точка рассылки должна быть включена в PXE и готова принимать входящие запросы.

Добавление изображений загрузки в DP с поддержкой PXE

При настройке новой точки распространения с поддержкой PXE необходимо завершить дополнительные действия, чтобы включить полную функциональность. Одним из них является то, что необходимо распространить изображения загрузки x86 и x64 в новый DP с поддержкой PXE.

Для этого перейдите к изображению загрузки boot Images Boot > > Images > (x86) в библиотеке программной библиотеки, а затем нажмите правой кнопкой мыши и выберите Распределите содержимое Добавить изображение загрузки в > PXE с включенной DP . Повторите этот процесс для Boot Image (x64).

После этого диспетчер рассылки начнет обработку запроса и инициирует рассылку в удаленный DP:

Диспетчер переноса пакетов (DP удален) затем инициирует отправку контента:

Поставщик точеки рассылки SMS затем развертывает WIM в каталог удаленной установки:

SMSPXE открывает новое изображение:

Убедитесь, что эти изображения загрузки настроены для развертывания из DP с поддержкой PXE. Щелкните правой кнопкой мыши изображение загрузки и выберите источник данных свойств, а затем выберите Развертывание этого изображения загрузки из точки распространения с поддержкой > PXE.

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

Пример загрузки, описанный здесь, включает три машины: сервер DHCP, DP с поддержкой PXE и клиент (компьютер BIOS x64). Все они расположены в одной подсети.

Необходимо убедиться, что порты DHCP (67 и 68), TFTP (69) и BINL (4011) открыты между клиентом, сервером DHCP и включенной DP PXE.

Читайте также:  1с настроить интерфейс для всех пользователей

В процессе загрузки PXE клиент должен сначала приобрести параметры TCP/IP и расположение сервера загрузки TFTP. После того как устройство включается и завершает POST, начинается процесс загрузки PXE (подсказывая с помощью меню выбора загрузки).

Первое, что делает прошивка PXE, — отправка DHCPDISCOVER (пакета UDP) для получения сведений о TCP/IP. Это включает список запросов параметров, а ниже приведен пример сетевого трассировки со списком параметров из пакета DHCPDISCOVER:

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

Затем сервер DHCP и DP с поддержкой PXE отправляют DHCPOFFER клиенту, содержащим все соответствующие параметры TCP/IP.

В приведенном ниже примере предложения DHCP в нем не содержится имя сервера или сведения о файле загрузки, так как это предложение с сервера DHCP, а не СДП с включенной поддержкой PXE.

Затем клиент отвечает DHCPREQUEST после выбора DHCPOFFER. Это содержит IP-адрес из выбранного предложения.

Сервер DHCP отвечает на DHCPREQUEST С помощью DHCPACK, который содержит те же сведения, что и DHCPOFFER. Имя хозяина сервера и имя файла загрузки здесь не предоставляются:

На данный момент у нас по-прежнему нет сведений о файле загрузки, однако теперь у клиента есть IP-адрес. Далее клиент PXE отправляет новый DHCPREQUEST в DP с поддержкой PXE после получения DHCPOFFER из предыдущей трансляции DHCPDISCOVER.

DP с поддержкой PXE отправляет DHCPACK, содержащий расположение BootFileName и программу загрузки сети WDS (NBP).

Загрузка файлов загрузки

После завершения беседы DHCP клиент запустит сеанс TFTP с запросом на чтение:

Сервер отвечает с помощью tsize, а затем blksize. Затем клиент будет передавать файл с сервера.

Размер этих блоков — blksize, и в этом случае он установлен до 1456 bytes. Blksize настраивается на Windows Server 2008 и более поздних версиях. См. в руб. Развертывание операционной системы по сети с помощью WDS сбой в Windows Server 2008 и в Windows Server 2008 R2.

Здесь можно увидеть конец беседы по DHCP и начало передачи TFTP:

Когда программа загрузки сети WDS (NBP) будет передана на клиентский компьютер, она будет выполнена. В нашем примере он начинается с загрузки wdsnbp.com . NBP определяет, может ли клиент загрузиться из сети, должен ли клиент нажать F12, чтобы инициировать загрузку, и какое изображение загрузки получит клиент.

NBPs являются как архитектурой, так и конкретными микропрограммами (BIOS или UEFI). На компьютерах BIOS NBP — это 16-битное приложение в реальном режиме, поэтому можно использовать один и тот же NBP для операционных систем на основе x86 и x64.

В нашем случае (машина BIOS x64) NBP расположен в следующем каталоге включенной DP PXE: \\remotedp\c$\RemoteInstall\SMSBoot\x64

Файлы выполняют следующие функции:

PXEboot.com — x86 и x64 BIOS: требуется, чтобы конечный пользователь нажал F12 для продолжения загрузки PXE (это NBP по умолчанию).

PXEboot.n12 — x86 и x64 BIOS: сразу начинается загрузка PXE (не требуется нажимать F12 на клиента).

AbortPXE.com — x86 и x64 BIOS: позволяет устройству немедленно приступить к загрузке с помощью следующего загрузочного устройства, указанного в BIOS. Это позволяет устройствам, которые не должны загружаться с помощью PXE, немедленно приступить к вторичному процессу загрузки, не дожидаясь ожидания ожидания.

Bootmgfw.efi — x64 UEFI и IA64 UEFI: EFI-версия или (в EFI, выбор того или иного загрузки PXE обрабатывается в оболочке EFI, а не PXEboot.com PXEboot.n12 NBP). Bootmgfw.efi является эквивалентом объединения функций PXEboot.com , PXEboot.n12 и abortpxe.com bootmgr.exe .

wdsnbp.com — x86 и x64 BIOS: специальная NBP, разработанная для Windows служб развертывания, которая служит следующим общим целям:

  • Обнаружение архитектуры
  • Сценарии ожидающих устройств

Wdsmgfw.efi — x64 UEFI и IA64 UEFI: специальный NBP, разработанный для Windows служб развертывания, который служит следующим общим целям:

  • Обрабатывает запрос пользователя на нажатие клавиши для продолжения загрузки PXE
  • Сценарии ожидающих устройств

NBP загружает загрузчик операционной системы и файлы загрузки через TFTP, которые включают следующие:

  • smsboot\x64\pxeboot.com
  • smsboot\x64\bootmgr.exe
  • \SMSBoot\Fonts\wgl4_boot.ttf
  • \SMSBoot\boot.sdi
  • \SMSImages\RR200004\boot.RR200004.wim

RamDISK создается с помощью этих файлов и WIM-файла WinPE в памяти.

Клиентские сапоги из RAMDISK.

Загрузка WinPE

После загрузки WinPE оболочка загрузки TS инициируется из папки SMS, включенной в изображение WinPE (эта папка вводится в WIM загрузки при импорте в Диспетчер конфигурации). Вы можете увидеть этот процесс, зарегистрированный в SMSTS.log, который находится под X:\Windows\Temp\SMSTS\ .

Чтобы получить доступ к этому входу WinPE, впейте командную подсказку на изображении загрузки. Для этого щелкните правой кнопкой мыши настройка свойств boot Image, а затем проверьте включить поддержку команды > > (только тестирование). Затем можно получить доступ к командной подсказке, нажав F8 в WinPE.

Вот начальный процесс оболочки загрузки TS:

После этого загрузочный ремень Task Sequence Manager:

После загрузки TSPXE она загружает переменные TS с помощью TFTP:

На этом этапе TSPXE находит пункт управления (MP) и скачивает политику перед тем, как представить пользовательский интерфейс для пользователя, чтобы выбрать необязательный последовательность задач:

Наконец, загружаются переменные коллекции и машины и активируется страница Welcome:

Дополнительные сведения

Дополнительные сведения о устранении неполадок с загрузкой PXE см. в следующих статьях:

Источник

Оцените статью