
Разглеждаме разширението на възможностите на 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-5.01.zip в
c:Remoteinstallsmsbootx86следните файлове:
memdisk, chain.c32, ldlinux.c32, libcom32.c32, libutil.c32, pxechn.c32, vesamenu.c32, pxelinux.0
Допълнителните файлове са нужни, за да не се получи подобна грешка
- В
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]Източник: раздел „Файл на ядрото“
- За да не натискате многократно клавиш F12 при зареждане на SCCM от менюто, преименувайте pxeboot.com на pxeboot.com.f12, копирайте pxeboot.n12 в pxeboot.com
Ако не го направите, при избора ще получавате всеки път това съобщение
Забележка: Не забравяйте да преименувате тези файлове и в папката за x64, тъй като при зарежданеx86wdsnbp.comот папката x86, загрузчикът определя архитектурата на процесора и следващия файл зарежда вече от папката с съответната архитектура. По този начин за x64 следващият файл ще бъде неx86pxeboot.com, аx64pxeboot.com - Сваляме/създаваме , с резолюция 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.cfgchain.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Паролът може да се генерира, например, чрез онлайн генератор на хешове , ред
MD5(Unix)
2. Настройване на зареждането с PXELinux
Сега ще укажем как да заредим pxelinux.com и да получим меню.
Указването на зареждача pxelinux.com чрез функционалността на WDS не работи в SCCM. Команди от вида
wdsutil /set-server /bootprogram:bootx86pxeboot.com /architecture:x86
не се обработват. Уверете се, че загрузъчните образи не са зададени, може да се провери с командата за извеждане на конфигурацията на сървъра WDS
wdsutil /get-server /show:images
Така в 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 е описал . Но наДЦопция 150, IP адресът на TFTP сървъра, липсваше в настройките на областта DHCP и указването на опция 150 чрез netsh не работеше.
3. Проверка на работата
Основните настройки са завършени и можем да преминем към проверка. Указваме на тестовия компютър в BIOS да зарежда по мрежата и зареждаме в менюто
Избираме пункта „Започнете към SCCM“ и ако на компютъра е зададена поредност на задачите, след известно време ще се появи прозорецът „Майстор за създаване на поредност от задачи“, който предлага да введете парола

Рестартираме машината, отново влизаме в менюто, избираме от менюто „Антивирус и инструменти“ и въвеждаме паролата Qwerty
Избираме произволен пункт и наблюдаваме зареждането на ISO образа в паметта
Изчакваме и наблюдаваме резултата
Проверка завършена

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 сървъри са описани по-долу в източниците:
Управление на програмите за мрежово зареждане
Управление на сървера
Microsoft Product Support Services (PSS) гранични условия за мрежово зареждане на Windows Preinstallation Environment (Windows PE) 2.0
Как да пренасочите UDP широковещателен трафик (BOOTP/DHCP) на Cisco
Особености на работата и настройките на DHCP на маршрутизатори Cisco (Част 2)
Допълнителни възможности за локално зареждане
В тестовата среда командата
localboot 0 показва такава грешка

От документацията на 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 Източници:
Порядък и описание на зареждането на файлове през 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, е разгледано в статията
Резюме
В ИТ инфраструктурата, управлявана от System Center Configuration Manager, се добави нов инструмент за работа на местните системни администратори.
Списък с връзки към ISO образи (Натиснете за показване)
Благодаря за вниманието!

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