PXE зареждащо меню с System Center Configuration Manager

PXE зареждащо меню с System Center Configuration Manager

Разглеждаме разширението на възможностите на System Center Configuration Manager (продукт за управление на ИТ инфраструктура) при зареждане на потребителски компютри по мрежата, използвайки PXE. Създаваме зареждащо меню на базата на PXELinux с функционалността на System Center и добавяме възможности за антивирусно сканиране, образи за диагностика и възстановяване. В края на статията засягаме особеностите на работата на System Center 2012 Configuration Manager съвместно с Windows Deployment Services (WDS) при зареждане чрез PXE.

Всички действия извършваме в тестова среда, в която вече е инсталиран System Center 2012 Configuration Manager SP1, контролер на домейна и известно количество тестови машини. Предполага се, че в SCCM вече се използва разгръщане по мрежата, използвайки PXE.

Въведение

Тестовата среда се състои от няколко виртуални машини. На всички машини е инсталирана гостуваща ОС Microsoft Windows Server 2008 R2 (x64), мрежов адаптер E1000, SCSI контролер: LSI Logic SAS.

Име (Роли)
IP адрес / DNS име
Функционалност

SCCM (System Center Configuration Manager)
192.168.57.102
sccm2012.test.local

Инсталиран System Center Configuration Manager 2012 SP1

DC (AD, DHCP, DNS)
192.168.57.10
dc1.test.local

Роля на контролер на домейна, DHCP сървър и DNS сървър

TEST (Тестова машина)
192.168.57.103
test.test.local

За тестване

GW (Gateway)
192.168.57.1
Маршрутизиране между мрежи. Роля на шлюза

1. Добавяме PXELinux в SCCM

Действията се извършват на машината, на която е инсталиран System Center Configuration Manager.

  • Определяме каталога, където се намират файловете WDS за зареждане, за целта в регистъра проверяваме стойността на параметъра RootFolder в клона HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
    Стойност по подразбиране C:RemoteInstall
    Файловете за зареждане от точката на разгръщане на SCCM се намират в каталогите smsbootx86 и smsbootx64 в зависимост от архитектурата.
    Първо настройваме каталога за 32-битова архитектура, по подразбиране c:Remoteinstallsmsbootx86
  • Сваляме архива с последния syslinux . Копираме от syslinux-5.01.zip в c:Remoteinstallsmsbootx86 следните файлове:
    memdisk, chain.c32, ldlinux.c32, libcom32.c32, libutil.c32, pxechn.c32, vesamenu.c32, pxelinux.0
    Допълнителните файлове са нужни, за да не се получи подобна грешка
    PXE зареждащо меню с System Center Configuration Manager
  • В c:Remoteinstallsmsbootx86 преименуваме pxelinux.0 в pxelinux.com
    В папката c:remoteinstallsmsbootx86 правим копие abortpxe.com и го преименуваме в abortpxe.0
    Ако не се преименува на разширение .0, тогава, например, инструкцията
    Kernel abortpxe.com

    ще бъде изпълнена с грешка: Booting kernel failed: Bad file number
    За PXELINUX разширението на зареждащия файл трябва да бъде зададено съответно на таблицата.

    няма или друго	Linux ядро изображение
     .0		PXE bootstrap програма (NBP) [само за PXELINUX]
     .bin		"CD boot сектор" [само за ISOLINUX]
     .bs		Boot сектор [само за SYSLINUX]
     .bss		Boot сектор, DOS суперблокът ще бъде поправен [само за SYSLINUX]
     .c32		COM32 изображение (32-битово COMBOOT)
     .cbt		COMBOOT изображение (не може да се изпълни от DOS)
     .com		COMBOOT изображение (може да се изпълни от DOS)
     .img		Диск изображение [само за ISOLINUX]
    

    Източник: http://www.syslinux.org/wiki/index.php/SYSLINUX#KERNEL_file раздел „Файл на ядрото“

  • За да не натискате многократно клавиш F12 при зареждане на SCCM от менюто, преименувайте pxeboot.com на pxeboot.com.f12, копирайте pxeboot.n12 в pxeboot.com
    Ако не го направите, при избора ще получавате всеки път това съобщение
    PXE зареждащо меню с System Center Configuration Manager
    Забележка: Не забравяйте да преименувате тези файлове и в папката за x64, тъй като при зареждане x86wdsnbp.com от папката x86, загрузчикът определя архитектурата на процесора и следващия файл зарежда вече от папката с съответната архитектура. По този начин за x64 следващият файл ще бъде не x86pxeboot.com, а x64pxeboot.com
  • Сваляме/създаваме background.png, с резолюция 640х480, копираме в същата папка. Създаваме папка ISO където ще поставяме ISO образите. Създаваме папка pxelinux.cfg за конфигурационни файлове.
  • В папката pxelinux.cfg създаваме файл default, с не юникод кодировка, със съдържанието
    default (Натиснете за показване)
    # используем графическое меню
    DEFAULT vesamenu.c32
    PROMPT 0
    timeout 80
    TOTALTIMEOUT 9000
    
    MENU TITLE PXE Boot Menu (x86)
    MENU INCLUDE pxelinux.cfg/graphics.conf
    MENU AUTOBOOT Starting Local System in 8 seconds
    
    # Boot local HDD (default)
    LABEL bootlocal
    menu label Boot Local
    menu default
    localboot 0x80
    # if it doesn't work 
    #kernel chain.c32
    #append hd0
    
    # Вход в меню по паролю Qwerty, алгоритм MD5
    label av
    menu label Antivirus and tools
    menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0
    kernel vesamenu.c32
    append pxelinux.cfgav.conf 
    
    label sccm
    menu label Start to SCCM
    COM32 pxechn.c32
    APPEND sccm2012.test.local::smsbootx86wdsnbp.com -W
    
    label pxe64
    menu label Start to x64 pxelinux
    COM32 pxechn.c32
    APPEND sccm2012.test.local::smsbootx64pxelinux.com
    
    LABEL Abort
    MENU LABEL Exit
    KERNEL abortpxe.0

    В папката pxelinux.cfg създаваме файл graphics.conf с съдържанието
    graphics.conf (Натиснете за показване)

    MENU MARGIN 10
    MENU ROWS 16
    MENU TABMSGROW 21
    MENU TIMEOUTROW 26
    MENU COLOR BORDER 30;44 #00000000 #00000000 none
    MENU COLOR SCROLLBAR 30;44 #00000000 #00000000 none
    MENU COLOR TITLE 0 #ffffffff #00000000 none
    MENU COLOR SEL 30;47 #40000000 #20ffffff
    MENU BACKGROUND background.png
    NOESCAPE 0
    ALLOWOPTIONS 0

    В папката pxelinux.cfg създаваме файл av.conf с съдържанието
    av.conf (Натиснете за показване)

    DEFAULT vesamenu.c32
    PROMPT 0
    MENU TITLE Антивирус и инструменти
    MENU INCLUDE pxelinux.cfg/graphics.conf
    
    label main menu
    menu label върнете се в главното меню
    kernel vesamenu.c32
    append pxelinux.cfg/default
    
    label drweb
    menu label DrWeb
    kernel memdisk
    append iso raw initrd=isodrweb.iso
    
    label eset
    menu label Eset
    kernel memdisk
    append iso raw initrd=isoeset_sysrescue.iso
    
    label kav
    menu label KAV Rescue CD
    KERNEL kav/rescue
    APPEND initrd=kav/rescue.igz root=live rootfstype=auto vga=791 init=/init kav_lang=ru udev liveimg doscsi nomodeset quiet splash
    
    #Зареждаме ISO по пълен път, може да се зарежда от друг TFTP
    label winpe
    menu label WinPE от друг TFTP
    kernel sccm2012.test.local::smsbootx86memdisk
    append iso raw initrd=sccm2012.test.local::smsbootx86isoWinPE_RaSla.iso
    
    label clonezilla
    menu label Clonezilla
    kernel memdisk
    append iso raw initrd=isoclonezilla.iso
    
  • В крайна сметка каталог c:remoteinstallsmsbootx86 съдържа структура

    c:remoteinstallsmsbootx86
    pxelinux.cfg

    chain.c32
    ldlinux.c32
    libcom32.c32
    libutil.c32
    pxechn.c32
    vesamenu.c32
    pxelinux.com
    background.png
    pxelinux.cfg
    pxelinux.cfg
    pxelinux.cfg
    ISO
    abortpxe.0
    wdsnbp.com
    bootmgfw.efi
    wdsmgfw.efi
    bootmgr.exe
    pxeboot.n12
    pxeboot.com
    abortpxe.com

    по подразбиране
    av.conf
    graphics.conf
    *.iso

  • За архитектура x64 аналогично копираме и създаваме същата структура в папката c:remoteinstallsmsbootx64

Допълнение
При използването на командата menu PASSWD паролата може да бъде зададена както е, или да се използва алгоритъм за хеширане, добавяйки в началото на параметъра съответната сигнатура

Алгоритъм
Сигнатура

MD5
$1$

SHA-1
$4$

SHA-2-256
$5$

SHA-2-512
$6$

По този начин за парола Qwerty и алгоритъм MD5

меню PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0

Паролът може да се генерира, например, чрез онлайн генератор на хешове www.insidepro.com/hashes.php?lang=bul, ред MD5(Unix)

2. Настройване на зареждането с PXELinux

Сега ще укажем как да заредим pxelinux.com и да получим меню.
Указването на зареждача pxelinux.com чрез функционалността на WDS не работи в SCCM. Команди от вида

wdsutil /set-server /bootprogram:bootx86pxeboot.com /architecture:x86

не се обработват. Уверете се, че загрузъчните образи не са зададени, може да се провери с командата за извеждане на конфигурацията на сървъра WDS

wdsutil /get-server /show:images

PXE зареждащо меню с System Center Configuration Manager
Така в SCCM 2012 не може да се зададе собствен файл за зареждане чрез PXE за доставчик SMSPXE. Следователно ще настроим активната област на DHCP сървъра.
В параметрите на активната област на DHCP задаваме параметрите в съответствие с таблицата

Опция DHCP
Наименование на параметъра
Стойност

066
Име на хост на сървъра за зареждане
sccm2012.test.local

067
Име на файла за зареждане
smsbootx86pxelinux.com

006
DNS сървъри
192.168.57.10

015
Име на DNS домейн
test.local

В опция 066 указваме FQDN името на SCCM сървъра, в опция 067 указваме пътя до x86 зареждача pxelinux.com, започвайки от корена на TFTP, в опция 006 указваме IP адреса на DNS сървъра. В случай, че в опция 066 се използва краткото име на сървъра, в опция 015 указваме DNS суфикса на домейна.

Допълнение
По-подробно настройката на DHCP е описал mvgolubev тук.. Но на ДЦ опция 150, IP адресът на TFTP сървъра, липсваше в настройките на областта DHCP и указването на опция 150 чрез netsh не работеше.PXE зареждащо меню с System Center Configuration Manager

3. Проверка на работата

Основните настройки са завършени и можем да преминем към проверка. Указваме на тестовия компютър в BIOS да зарежда по мрежата и зареждаме в менюто
PXE зареждащо меню с System Center Configuration Manager

Избираме пункта „Започнете към SCCM“ и ако на компютъра е зададена поредност на задачите, след известно време ще се появи прозорецът „Майстор за създаване на поредност от задачи“, който предлага да введете парола
PXE зареждащо меню с System Center Configuration Manager

Рестартираме машината, отново влизаме в менюто, избираме от менюто „Антивирус и инструменти“ и въвеждаме паролата Qwerty
PXE зареждащо меню с System Center Configuration Manager

Избираме произволен пункт и наблюдаваме зареждането на ISO образа в паметта
PXE зареждащо меню с System Center Configuration Manager

Изчакваме и наблюдаваме резултата
PXE зареждащо меню с System Center Configuration Manager

Проверка завършена
PXE зареждащо меню с System Center Configuration Manager

4. Допълнителни настройки и особености

Настройка на маршрутизацията

Ако клиентът, DHCP сървърът и сървърът, съдържащ мрежовия зареждач, са в един и същ мрежов сегмент, не е необходима допълнителна настройка. Ако обаче клиентът и DHCP сървърът или сървърът WDS/SCCM са в различни мрежови сегменти, се препоръчва да се настрои пренасочване на широковещателни пакети от клиента към активния DHCP сървър и активния WDS/SCCM сървър на маршрутизаторите. В англод говорящата литература този процес е известен като „IP Helper table updates“. В този случай клиентът, след като получи IP адрес, се свързва директно със сървъра, съдържащ мрежовия зареждач, чрез DHCP пакети, за да изтегли мрежовия зареждач.
За маршрутизатори Cisco се използва командата

ip helper-address {ip address}

където {ip address} адрес на DHCP сървъра или сървъра WDS/SCCM. При използване на тази команда също се пренасочват следните широковещателни UDP пакети

Порт
Протокол

69
TFTP

53
Domain Name System (DNS)

37
Time service

137
NetBIOS Name Server

138
NetBIOS Datagram Server

67
Bootstrap Protocol (BOOTP)

49
TACACS

Вторият метод за получаване на информация за мрежовия зареждач директно от DHCP сървъра от клиента е указването на опции 60, 66, 67 на DHCP сървъра. Използването на параметъра DHCP 60 със стойността „PXEClient“ всички области на действие на DHCP, само ако DHCP сървърът е разположен на същия сървър, на който са услугите за разгръщане на Windows. В този случай клиентът се свързва с Windows Deployment Services сървъра директно по протокола TFTP през UDP порт 4011, а не през DHCP. Този метод не се препоръчва от Microsoft заради проблеми с натоварване, неправилна обработка на параметрите на DHCP и параметри на отговорите на услугите за разгръщане на Windows от клиентската страна. Също така, използването само на две опции 66 и 67 на DHCP позволява да се заобиколят параметрите, зададени на сървъра на мрежовото зареждане.
Също така трябва да се отворят следните UDP портове на сървъра на услугите за разгръщане на Windows
порт 67 (DHCP)
порт 69 (TFTP)
порт 4011 (PXE)
и порт 68, ако се изисква DHCP авторизация на сървъра.

По-подробно процесът на настройка и нюансите на пренасочване между различни WDS сървъри са описани по-долу в източниците:
Управление на програмите за мрежово зареждане http://technet.microsoft.com/ru-ru/library/cc732351(v=ws.10).aspx
Управление на сървера http://technet.microsoft.com/ru-ru/library/cc770637(v=ws.10).aspx
Microsoft Product Support Services (PSS) гранични условия за мрежово зареждане на Windows Preinstallation Environment (Windows PE) 2.0 http://support.microsoft.com/kb/926172/en-us
Как да пренасочите UDP широковещателен трафик (BOOTP/DHCP) на Cisco http://www.cisco-faq.com/163/forward_udp_broadcas.html
Особености на работата и настройките на DHCP на маршрутизатори Cisco (Част 2) http://habrahabr.ru/post/89997/

Допълнителни възможности за локално зареждане

В тестовата среда командата

localboot 0

показва такава грешка
PXE зареждащо меню с System Center Configuration Manager
От документацията на syslinux следва, че при

localboot 0

зареждането ще става от локалния диск. А при указване на конкретната стойност 0x00 от основния (primary) диск с флопи, при указване на 0x80 от основния (primary) твърд диск. Като променим командата на

localboot 0x80

локалната ОС е заредена.
Ако има нужда да се направи зареждане от конкретен диск, дял или команда localboot не работи, тогава може да се възползвате от възможностите на модула chain.c32. След неговото зареждане, с командата append указваме конкретния диск или дял на диска, номерирането на дисковете започва от 0, а номерирането на дяловете от 1, тъй като при указване на дял 0 се зарежда MBR. При указване на диск дялът може да не се посочва.

KERNEL chain.c32
APPEND hd0 0

или

KERNEL chain.c32
APPEND hd0

Източници: http://www.syslinux.org/wiki/index.php/SYSLINUX#LOCALBOOT_type_.5BISOLINUX.2C_PXELINUX.5D
http://www.gossamer-threads.com/lists/syslinux/users/7127

Порядък и описание на зареждането на файлове през PXE

Както вече беше споменато в началото на статията, каталогът, където се намират файловете WDS за зареждане, се съдържа в стойността на параметъра RootFolder в клона на регистра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
Стойност по подразбиране C:RemoteInstall
Тук също в параметъра ReadFilter са посочени директориите, в които TFTP сървърът търси файлове за зареждане, започвайки от корена. При инсталиран SCCM 2012 SP1 този параметър е такъв

boot*
tmp*
SMSBoot*
SMSTemp*
SMSImages*

Ако промените стойността на параметъра на * то ще се обработват всички файлове, разположени в директорията RemoteInstall.

Ролята на точката за разполагане на SCCM 2012 е записана в параметъра на регистъра ProvidersOrder, разположен в клона HKLMSystemCurrentControlSetWDSServerProvidersWDSPXE
Параметър ProvidersOrder може да приема стойности

SMSPXE
точката за обслужване PXE в SCCM

SMS.PXE.Filter
Обработчик на PXE скриптове от MDT (Microsoft Deployment Toolkit)

BINLSVC
Стандартен обработчик WDS и RIS

При инсталиран SCCM параметър ProvidersOrder има значение SMSPXE. Чрез промяна на параметъра можете да променяте реда на зареждане на доставчиците.

В каталога RemoteInstall разположени са следните стандартни файлове

wdsnbp.com

Програмата за мрежово зареждане е разработена за услуги за разполагане на Windows и изпълнява следните задачи:
1. Откриване на архитектурата.
2. Обслужване на изчакващи компютри. Когато е активирана политиката за автоматично добавяне, тази програма за мрежово зареждане се изпраща на изчакващите компютри, за да спре мрежовото зареждане и да уведоми сървъра за архитектурата на клиентския компютър.
3. Използване на мрежови зареждания (включително използване на параметри 66 и 67 на протокола DHCP)

PXEboot.com

(По подразбиране) Изисква потребителят да натисне клавиша F12, за да продължи мрежовото зареждане

PXEboot.n12

Не е необходимо потребителят да натиска клавиш F12 и незабавно започва мрежово зареждане

AbortPXE.com

Зарежда компютъра, използвайки следващия елемент за зареждане в BIOS без изчакване

Bootmgr.exe

Мениджър за зареждане на Windows (Bootmgr.exe или Bootmgr.efi). Зарежда с помощта на вградения софтуер зареждащия Windows от определен дял на диска или чрез мрежова връзка (в случай на мрежово зареждане)

Bootmgfw.efi

Версия EFI на програмите PXEboot.com и PXEboot.n12 (в EFI, решението дали да се зареди или не PXE се извършва в оболката EFI, а не от програмата за мрежово зареждане). Програмата Bootmgfw.efi обединява възможностите на PXEboot.com, PXEboot.n12, abortpxe.com и bootmgr.exe. В момента тя съществува само за архитектури x64 и Itanium

Default.bcd

Хранилище на данни за конфигурация на зареждане (BCD), формат REGF, може да се отвори в REGEDIT, заменя текста на файла Boot.ini

Зареждането се извършва в следния ред съгласно описаното по-горе
1. Зарежда се wdsnbp.com.
2. След това се зарежда pxeboot.com на съответната архитектура
3. PXEBoot.com зарежда bootmgr.exe и хранилището на данни за конфигурация на зареждане BCD
4. Bootmgr.exe прочита записите на операционната система от данните за конфигурация на зареждане BCD и зарежда файла Boot.sdi и образа на Windows PE (boot.wim)
5. Bootmgr.exe започва зареждането на Windows PE, обращайки се към Winload.exe в образа на Windows PE

Ако в RemoteInstall съществуват папки

Boot
Images
Mgmt
Templates
Tmp
WdsClientUnattend

тяхното присъствие означава, че преди добавянето на ролята на точка за разпространение в SCCM 2012 (точка за обслужване PXE в SCCM 2007) е имало действие по конфигуриране на инсталираните Windows Deployment Services (WDS), в резултат на което автоматично са създадени тези папки.
За ролята на точката за разпространение (точка за обслужване PXE в SCCM 2007) са достатъчни само следните папки

SMSBoot
SMSIMAGES
SMSTemp
Stores

Това не означава, че SCCM е инсталиран неправилно, но може да укаже на възможен източник на грешки.
Много подробно решението на различни проблеми, свързани с WDS, SCCM и PXE, е разгледано в статията Troubleshooting the PXE Service Point and WDS in Configuration Manager 2007

Резюме

В ИТ инфраструктурата, управлявана от System Center Configuration Manager, се добави нов инструмент за работа на местните системни администратори.

Списък с връзки към ISO образи (Натиснете за показване)download.f-secure.com/estore/rescue-cd-3.16-52606.iso
git.ipxe.org/releases/wimboot/wimboot-latest.zip
download.geo.drweb.com/pub/drweb/livecd/drweb-livecd-602.iso
rescuedisk.kaspersky-labs.com/rescuedisk/updatable/kav_rescue_10.iso
esetsupport.ru/eset_sysrescue.iso
boot.ipxe.org/ipxe.iso
citylan.dl.sourceforge.net/project/clonezilla/clonezilla_live_alternative/20130226-quantal/clonezilla-live-20130226-quantal-i386.iso
ftp.rasla.ru/_Distr_/WinPE/RaSla/WinPE_RaSla.iso
www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-5.01.zip

Благодаря за вниманието!
PXE зареждащо меню с System Center Configuration Manager

Източник: habr.com

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster