- PVSM.RU - https://www.pvsm.ru -
Рассматриваем расширение возможностей 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 (Gateway) | 192.168.57.1 | Маршрутизация между сетями. Роль шлюза |
Действия производим на машине, где установлен System Center Configuration Manager
RootFolder
в ветке HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
C:RemoteInstall
smsbootx86
и smsbootx64
в зависимости от архитектуры.c:Remoteinstallsmsbootx86
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
будет выполнена c ошибкой: 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]
Источник: http://www.syslinux.org/wiki/index.php/SYSLINUX#KERNEL_file [3] раздел “Kernel file”
x86wdsnbp.com
из папки x86, загрузчик определяет архитектуру процессора и следующий файл загружает уже из папки с соответствующей архитектуры. Таким образом для x64 последующий файл будет не x86pxeboot.com
, а x64pxeboot.com
ISO
куда будем размещать ISO образы. Создаем папку 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
с содержимым
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
с содержимым
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
#Загружаем ISO по полному пути, можно загружать с другого TFTP
label kav
menu label KAV Rescue CD from another TFTP
kernel sccm2012.test.local::smsbootx86memdisk
append iso raw initrd=sccm2012.test.local::smsbootx86isokav_rescue_10.iso
label winpe
menu label WinPE
kernel memdisk
append iso raw initrd=isoWinPE_RaSla.iso
label clonezilla
menu label Clonezilla
kernel memdisk
append iso raw initrd=isoclonezilla.iso
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 |
default
|
c:remoteinstallsmsbootx64
Дополнение
При использовании командыmenu PASSWD
пароль можно задать либо как есть, либо использовать алгоритм хеширования, добавив в начале параметра соответствующую сигнатуру
Алгоритм Сигнатура MD5 $1$ SHA-1 $4$ SHA-2-256 $5$ SHA-2-512 $6$ Таким образом для пароля
Qwerty
и алгоритме MD5menu PASSWD $1$15opgKTx$dP/IaLNiCbfECiC2KPkDC0
Сгенерировать пароль можно, например, через онлайн генератор хэшей www.insidepro.com/hashes.php?lang=rus [6], строка
MD5(Unix)
Теперь укажем каким образом загрузить 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 | Boot server host name | sccm2012.test.local |
067 | Bootfile name | smsbootx86pxelinux.com |
006 | DNS Servers | 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 [7] здесь [8]. Но наDC
опция 150, IP-адрес TFTP-сервера, отсутствовала в настройках области DHCP и указание опции 150 через netsh не работало. [9]
Основные настройки закончены и можно приступать к проверке. Указываем на тестовом компьютере в BIOS грузится по сети и загружаемся в меню
[10]
Выбираем пункт «Start to SCCM»
и если на компьютер назначена последовательность задач, то через некоторое время появится окно «Мастер создания последовательности задач» с предложением ввести пароль
Перезагружаем машину, снова заходим в меню, выбираем в меню «Antivirus and tools»
и вводим пароль Qwerty
[11]
Выбираем произвольный пункт и наблюдаем загрузку ISO образа в память
[12]
Ждем и наблюдаем результат
[13]
Проверка завершена
Если клиент, 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 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 авторизация на сервере.
Более подробно процесс настройки и нюансы перенаправления между разными серверами WDS описан ниже в источниках:
Управление программами сетевой загрузки http://technet.microsoft.com/ru-ru/library/cc732351(v=ws.10).aspx [14]
Управление сервером http://technet.microsoft.com/ru-ru/library/cc770637(v=ws.10).aspx [15]
Microsoft Product Support Services (PSS) support boundaries for network booting Microsoft Windows Preinstallation Environment (Windows PE) 2.0 http://support.microsoft.com/kb/926172/en-us [16]
How to forward UDP broadcast (BOOTP / DHCP) on Cisco http://www.cisco-faq.com/163/forward_udp_broadcas.html [17]
Особенности работы и настройки DHCP на маршрутизаторах Cisco (Часть 2) http://habrahabr.ru/post/89997/ [18]
На тестовой среде команда
localboot 0
выдает такую ошибку
Из документации syslinux следует, что при
localboot 0
загрузка пойдет с локального диска. А при указании конкретного значения 0x00 с основного (primary) флоппи диска, при указании 0x80 c основного (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 [19]
http://www.gossamer-threads.com/lists/syslinux/users/7127 [20]
Как уже упоминалось в начале статьи, каталог, где располагаются файлы WDS для загрузки, содержится в значении параметра RootFolder
в ветке реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesWDSServerProvidersWDSTFTP
Значение по умолчанию C:RemoteInstall
Здесь же в параметре ReadFilter
указаны каталоги, где TFTP сервер ищет файлы для загрузки, начиная c корня. При установленном 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 [21]
В ИТ-инфраструктуре под управлением System Center Configuration Manager добавился новый инструмент для работы системных администраторов на местах.
Спасибо за внимание!
Автор: Deeptown
Источник [31]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/it-infrastruktura/31365
Ссылки в тексте:
[1] syslinux : http://www.kernel.org/pub/linux/utils/boot/syslinux/
[2] Image: http://habrastorage.org/storage2/622/56f/4f6/62256f4f657e07999b8a532e3ed7a59e.png
[3] http://www.syslinux.org/wiki/index.php/SYSLINUX#KERNEL_file: http://www.syslinux.org/wiki/index.php/SYSLINUX#KERNEL_file
[4] Image: http://habrastorage.org/storage2/2f7/678/aa8/2f7678aa8f706207c5898ad5e334e356.png
[5] background.png: http://habrastorage.org/storage2/178/920/26e/17892026e9ff9bd0b57a0ef1063d6415.png
[6] www.insidepro.com/hashes.php?lang=rus: http://www.insidepro.com/hashes.php?lang=rus
[7] mvgolubev: http://habrahabr.ru/users/mvgolubev/
[8] здесь: http://habrahabr.ru/post/82552/#comment_2452223
[9] Image: http://habrastorage.org/storage2/7a9/288/398/7a92883981562d3cd1968ad1e47e89aa.png
[10] Image: http://habrastorage.org/storage2/554/e25/373/554e25373d725aec1bfb78717e7c3c9e.png
[11] Image: http://habrastorage.org/storage2/15d/8fd/802/15d8fd8028f693cffb79f8dda037c32d.png
[12] Image: http://habrastorage.org/storage2/79a/544/4f8/79a5444f868ac2de7abdf9ec9500b70f.png
[13] Image: http://habrastorage.org/storage2/030/538/233/03053823313b025baf4d78380bae7972.png
[14] http://technet.microsoft.com/ru-ru/library/cc732351(v=ws.10).aspx: http://technet.microsoft.com/ru-ru/library/cc732351(v=ws.10).aspx
[15] http://technet.microsoft.com/ru-ru/library/cc770637(v=ws.10).aspx: http://technet.microsoft.com/ru-ru/library/cc770637(v=ws.10).aspx
[16] http://support.microsoft.com/kb/926172/en-us: http://support.microsoft.com/kb/926172/en-us
[17] http://www.cisco-faq.com/163/forward_udp_broadcas.html: http://www.cisco-faq.com/163/forward_udp_broadcas.html
[18] http://habrahabr.ru/post/89997/: http://habrahabr.ru/post/89997/
[19] http://www.syslinux.org/wiki/index.php/SYSLINUX#LOCALBOOT_type_.5BISOLINUX.2C_PXELINUX.5D: http://www.syslinux.org/wiki/index.php/SYSLINUX#LOCALBOOT_type_.5BISOLINUX.2C_PXELINUX.5D
[20] http://www.gossamer-threads.com/lists/syslinux/users/7127: http://www.gossamer-threads.com/lists/syslinux/users/7127
[21] Troubleshooting the PXE Service Point and WDS in Configuration Manager 2007: http://blogs.technet.com/b/system_center_configuration_manager_operating_system_deployment_support_blog/archive/2011/10/14/troubleshooting-the-pxe-service-point-and-wds-in-configuration-manager-2007.aspx
[22] download.f-secure.com/estore/rescue-cd-3.16-52606.iso: http://download.f-secure.com/estore/rescue-cd-3.16-52606.iso
[23] git.ipxe.org/releases/wimboot/wimboot-latest.zip: http://git.ipxe.org/releases/wimboot/wimboot-latest.zip
[24] download.geo.drweb.com/pub/drweb/livecd/drweb-livecd-602.iso: http://download.geo.drweb.com/pub/drweb/livecd/drweb-livecd-602.iso
[25] rescuedisk.kaspersky-labs.com/rescuedisk/updatable/kav_rescue_10.iso: http://rescuedisk.kaspersky-labs.com/rescuedisk/updatable/kav_rescue_10.iso
[26] esetsupport.ru/eset_sysrescue.iso: http://esetsupport.ru/eset_sysrescue.iso
[27] boot.ipxe.org/ipxe.iso: http://boot.ipxe.org/ipxe.iso
[28] citylan.dl.sourceforge.net/project/clonezilla/clonezilla_live_alternative/20130226-quantal/clonezilla-live-20130226-quantal-i386.iso: http://citylan.dl.sourceforge.net/project/clonezilla/clonezilla_live_alternative/20130226-quantal/clonezilla-live-20130226-quantal-i386.iso
[29] ftp.rasla.ru/_Distr_/WinPE/RaSla/WinPE_RaSla.iso: https://www.pvsm.ruftp://ftp.rasla.ru/_Distr_/WinPE/RaSla/WinPE_RaSla.iso
[30] www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-5.01.zip: https://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-5.01.zip
[31] Источник: http://habrahabr.ru/post/175669/
Нажмите здесь для печати.