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 (Мениджър за конфигурация на системния център)
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 сървъра
ТЕСТ (тестова машина)
192.168.57.103
test.test.local
За тестване
G.W. (шлюз)
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
ще се провали със следната грешка: Неуспешно зареждане на ядрото: Грешен номер на файл
За 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, резолюция 640x480, копирайте в същата папка. Създайте папка ISO където ще поставим ISO изображения. Създайте папка pxelinux.cfg за конфигурации.
В папката pxelinux.cfg създайте файл по подразбиране в кодиране, различно от уникод, със съдържанието по подразбиране (Щракнете за показване)
# используем графическое меню
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 съдържа структурата
За архитектурата x64 ние копираме по подобен начин и създаваме същата структура в папката 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
Име на хоста на сървъра за зареждане
sccm2012.test.local
067
Име на файла за зареждане
smsbootx86pxelinux.com
006
DNS сървъри
192.168.57.10
015
DNS име на домейн
тест.местен
В опция 066 посочваме FQDN името на sccm сървъра, в опция 067 посочваме пътя до x86 bootloader 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
Обслужване на времето
137
NetBIOS сървър за имена
138
NetBIOS Datagram сървър
67
Bootstrap протокол (BOOTP)
49
ТАКАСИ
Вторият метод за клиента да получи информация за мрежовото зареждане директно от DHCP сървъра е да посочи опции 60,66,67 на DHCP сървъра. Използване на DHCP опция 60 със стойност «PXEClient» към всички DHCP обхвати, само ако DHCP сървърът се хоства на същия сървър като услугите за разполагане на Windows. В този случай клиентът комуникира директно със сървъра на Windows Deployment Services, използвайки TFTP на UDP порт 4011, вместо да използва DHCP. Този метод не се препоръчва от Microsoft поради проблеми с балансирането на натоварването, неправилно обработване на DHCP опции и опции за отговор на услугите за разполагане на Windows от страна на клиента. А също и защото използването само на две DHCP опции 66 и 67 ви позволява да заобиколите параметрите, зададени на сървъра за мрежово зареждане.
Трябва също да отворите следните UDP портове на сървъра на Windows Deployment Services
порт 67 (DHCP)
порт 69 (TFTP)
порт 4011 (PXE)
и порт 68, ако се изисква DHCP оторизация на сървъра.
зареждането ще става от локален диск. И при посочване на конкретна стойност 0x00 от основния (основния) флопи диск, при посочване на 0x80 от основния (основния) твърд диск. Като промените командата на
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.Филтър
PXE манипулатор на скриптове от MDT (Microsoft Deployment Toolkit)
BINLSVC
Стандартен WDS и RIS двигател
С инсталиран SCCM, параметърът ProvidersOrder въпроси SMSPXE. Чрез промяна на параметъра можете да промените реда, в който се зареждат доставчиците.
В каталога RemoteInstall се намират следните стандартни файлове
wdsnbp.com
Програма за мрежово зареждане, предназначена за Windows Deployment Services, която изпълнява следните задачи:
1. Откриване на архитектура.
2. Поддръжка на чакащи компютри. Когато правилото за автоматично добавяне е активирано, тази програма за мрежово зареждане се изпраща до чакащи компютри, за да преустанови зареждането по мрежата и да информира сървъра за архитектурата на клиентския компютър.
3. Използване на мрежови връзки за зареждане (включително използване на DHCP опции 66 и 67)
PXEboot.com
(По подразбиране) Изисква потребителят да натисне клавиша F12, за да продължи мрежовото зареждане
PXEboot.n12
Не изисква от потребителя да натиска клавиша F12 и стартира незабавно стартиране на мрежата
AbortPXE.com
Зарежда компютъра, като използва следващия елемент за зареждане в BIOS, без да чака
bootmgr.exe
Windows Boot Manager (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
Boot Configuration Data Store (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 (WDS), които автоматично са създали тези папки.
За ролята на точка на разпространение (PXE сервизна точка в SCCM 2007) са достатъчни само следните папки