Загрузнае меню 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 Controller: 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 (Test machine)
192.168.57.103
test.test.local
Для тэсціравання
GW (шлюз)
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
Дадатковыя файлы патрэбныя, каб не было падобнай памылкі
В c:Remoteinstallsmsbootx86 пераназываем pxelinux.0 в pxelinux.com
У тэчцы c:remoteinstallsmsbootx86 робім копію abortpxe.com і пераназываем яе ў abortpxe.0
Калі ж не пераназываць у пашырэнне .0, тады напрыклад інструкцыя
Kernel abortpxe.com
будзе выканана з памылкай: Booting kernel failed: Bad file number
Для PXELINUX пашырэнне файла загрузкі варта задаваць адпаведна таблічцы
none or other Linux kernel image
.0 PXE bootstrap program (NBP) [PXELINUX only]
.bin "CD boot sector" [ISOLINUX only]
.bs Boot sector [SYSLINUX only]
.bss Boot sector, DOS superblock will be patched in [SYSLINUX only]
.c32 COM32 image (32-bit COMBOOT)
.cbt COMBOOT image (not runnable from DOS)
.com COMBOOT image (runnable from DOS)
.img Disk image [ISOLINUX only]
Для таго каб не націскаць некалькі разоў клавішу F12 пры загрузцы SCCM праз меню, пераназываем pxeboot.com у pxeboot.com.f12, які капіюецца pxeboot.n12 у pxeboot.com
Калі гэтага не зрабіць, то пры выбары будзем кожны раз атрымліваць такое паведамленне. Заўвага: Не забываем пераназваць гэтыя файлы і ў тэчцы для x64 т.к. калі загружаецца x86wdsnbp.com з тэчкі x86, загрузнік вызначае архітэктуру працэсара і наступны файл загружае ўжо з тэчкі з якая адпавядае архітэктуры. Такім чынам, для x64 наступны файл будзе не x86pxeboot.com, А x64pxeboot.com
Качаем/ствараем фон.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 Antivirus and tools
MENU INCLUDE pxelinux.cfg/graphics.conf
label main menu
menu label return to main menu
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 from another 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 утрымоўвае структуру
Для архітэктуры х64 аналагічна капіюем і ствараем такую ж структуру ў тэчцы c:remoteinstallsmsbootx64
Дадатак
Пры выкарыстанні каманды menu PASSWD пароль можна задаць або як ёсць, або выкарыстоўваць алгарытм хэшавання, дадаўшы ў пачатку параметру адпаведную сігнатуру
Алгарытм
Сігнатура
MD5
1 $
SHA-1
4 $
SHA-2-256
5 $
SHA-2-512
6 $
Такім чынам для пароля Qwerty і алгарытме MD5
menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0
Згенераваць пароль можна, напрыклад, праз анлайн генератар хэшаў www.insidepro.com/hashes.php?lang=rus, радок MD5(Unix)
2. Наладжваем загрузку PXELinux
Цяпер укажам якім чынам загрузіць pxelinux.com і атрымаць меню.
Указанне загрузніка pxelinux.com пасродкам функцыяналу WDS не працуе ў SCCM. Каманды віду
не апрацоўваюцца. Пераканаецца ў тым, што выявы загрузкі не зададзены можна выканаўшы каманду вываду канфігурацыі сервера WDS
wdsutil /get-server /show:images
Такім чынам у SCCM 2012 нельга пазначыць свой файл для загрузкі праз PXE для правайдэра SMSPXE. Таму наладжваць будзем актыўную вобласць DHCP сервера.
У параметрах актыўнай вобласці DHCP задаём параметры адпаведна таблічцы
Опцыя DHCP
Найменне параметру
Значэнне
066
Boot server host name
sccm2012.test.local
067
Bootfile name
smsbootx86pxelinux.com
006
DNS-серверы
192.168.57.10
015
DNS Domain Name
test.local
У опцыі 066 паказваем FQDN імя sccm сервера, у опцыі 067 паказваем шлях да x86 загрузніка pxelinux.com пачынальна з кораня TFTP, у опцыі 006 паказваем IP адрас DNS сервера. У выпадку, калі ў опцыі 066 выкарыстоўваецца кароткае імя сервера, у опцыі 015 паказваем DNS суфікс дамена.
Дадатак
Больш падрабязна настройку DHCP апісаў mvgolubevтут. Але на DC опцыя 150, IP-адрас TFTP-сервера, адсутнічала ў наладах вобласці DHCP і ўказанне опцыі 150 праз netsh не працавала.
3. Праверка працы
Асноўныя налады скончаны і можна прыступаць да праверкі. Паказваем на тэставым кампутары ў BIOS грузіцца па сетцы і загружаемся ў меню
выбіраем пункт «Start to SCCM» і калі на кампутар прызначаная паслядоўнасць задач, то праз некаторы час з'явіцца акно «Майстар стварэння паслядоўнасці задач» з прапановай увесці пароль
Перазагружаем машыну, зноў заходзім у меню, выбіраемы ў меню «Antivirus and tools» і ўводны пароль 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
Сістэма даменных імёнаў (DNS)
37
Time service
137
NetBIOS Name Server
138
NetBIOS Datagram Server
67
Bootstrap Protocol (BOOTP)
49
ТАКАЦЫ
Другім метадам для атрымання кліентам інфармацыі аб сеткавым загрузніку непасрэдна з DHCP сервера з'яўляецца ўказанне опцый 60,66,67 на DHCP серверы. Выкарыстанне параметра DHCP 60 c значэннем «PXEClient» ва ўсе вобласці дзеяння DHCP, толькі калі сервер DHCP размяшчаецца на тым жа серверы, што і службы разгортвання Windows. У гэтым выпадку кліент звязваецца з серверам службаў разгортвання Windows напрамую па пратаколе TFTP праз UDP-порт 4011, а не па DHCP. Гэты спосаб не рэкамендуецца Microsoft з-за праблем з балансаваннем нагрузкі, няслушнай апрацоўкай параметраў DHCP і параметраў адказу службаў разгортвання Windows на баку кліента. А таксама таму, што выкарыстанне толькі дзвюх опцый 66 і 67 DHCP дазваляе абыйсці параметры, зададзеныя на серверы сеткавай загрузкі.
Таксама трэба адкрыць наступныя UDP парты на серверы службаў разгортвання Windows
порт 67 (DHCP)
порт 69 (TFTP)
порт 4011 (PXE)
і порт 68, калі патрабуецца DHCP аўтарызацыя на сэрвэры.
загрузка пойдзе з лакальнага дыска. А пры ўказанні канкрэтнага значэння 0x00 з асноўнага (primary) флопі дыска, пры ўказанні 0x80 c асноўнага (primary) жорсткага дыска. Змяніўшы каманду на
localboot 0x80
лакальная АС загрузілася.
Калі ж ёсць неабходнасць зрабіць загрузку з канкрэтнай кружэлкі, часткі або каманда localboot не працуе, тады можна скарыстацца магчымасцямі модуля chain.c32. Пасля яго загрузкі, камандай append паказваем пэўную кружэлку або частка кружэлкі, нумарацыя кружэлак пачынаецца з 0, нумарацыя падзелаў з 1 т.к. пры ўказанні раздзела 0 загружаецца MBR. Пры ўказанні дыска раздзел можна не ўказваць.
Як ужо згадвалася ў пачатку артыкула, каталог, дзе размяшчаюцца файлы 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) досыць толькі наступных тэчак