System Center Configuration Manager 的 PXE 引導菜單

System Center Configuration Manager 的 PXE 引導菜單

我們正在考慮在使用 PXE 通過網絡引導用戶 PC 時擴展 System Center Configuration Manager(一種用於管理 IT 基礎結構的產品)的功能。 我們創建了一個基於具有 System Center 功能的 PXELinux 的啟動菜單,並添加了防病毒掃描、診斷和恢復圖像。 在本文的最後,我們介紹了通過 PXE 啟動時 System Center 2012 Configuration Manager 與 Windows 部署服務 (WDS) 的功能。

我們在已安裝 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

安裝系統中心配置管理器 2012 SP1

數據中心(AD、DHCP、DNS)
192.168.57.10
dc1.test.local

域控制器、DHCP服務器和DNS服務器的作用

TEST(測試機)
192.168.57.103
測試.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
    需要額外的文件來避免此類錯誤。
    System Center Configuration Manager 的 PXE 引導菜單
  • В 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]
    

    來源: http://www.syslinux.org/wiki/index.php/SYSLINUX#KERNEL_file “內核文件”部分

  • 為了不讓通過菜單加載SCCM時多次按F12鍵,將pxeboot.com重命名為pxeboot.com.f12,將pxeboot.n12複製到pxeboot.com
    如果不這樣做,那麼在選擇的時候,我們每次都會收到這樣的信息
    System Center Configuration Manager 的 PXE 引導菜單
    注意:不要忘記重命名 x64 文件夾中的這些文件。 加載時 x86wdsnbp.com 從 x86 文件夾中,加載程序確定處理器架構,並從具有相應架構的文件夾中加載下一個文件。 因此,對於 x64,後續文件將不會 x86pxeboot.comx64pxeboot.com
  • 下載/創建 背景.png,分辨率640x480,複製到同一個文件夾。 創建文件夾 ISO 我們將在哪裡放置 ISO 圖像。 創建文件夾 pxelinux.cfg 對於配置。
  • 在 pxelinux.cfg 文件夾中,以非 unicode 編碼創建一個默認文件,內容為
    默認(點擊顯示)

    # используем графическое меню
    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 目錄包含結構

    c:remoteinstallsmsbootx86
    pxelinux配置文件

    鏈.c32
    ldlinux.c32
    libcom32.c32
    libutil.c32
    pxechn.c32文件
    vesamenu.c32
    pxelinux.com
    背景.png
    pxelinux配置文件
    pxelinux配置文件
    pxelinux配置文件
    的ISO
    中止pxe.0
    wdsnbp.com
    引導程序
    wdsmgfw.efi
    引導程序
    pxeboot.n12
    pxeboot.com
    abortpxe.com網站

    默認
    配置文件
    圖形文件
    *.iso

  • 對於 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 並獲取菜單。
通過 WDS 功能指定 pxelinux.com 引導加載程序在 SCCM 中不起作用。 查看命令

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

不被處理。 您可以通過運行輸出 WDS 服務器配置命令來驗證啟動映像是否未設置

wdsutil /get-server /show:images

System Center Configuration Manager 的 PXE 引導菜單
因此,在 SCCM 2012 中,您無法將文件指定為 PXE 下載到 SMSPXE 提供程序。 因此,我們將配置DHCP服務器的活動區域。
在DHCP活動區的參數中,根據盤子設置參數

DHCP選項
參數名稱

066
引導服務器主機名
sccm2012.test.local

067
引導文件名
smsbootx86pxelinux.com

006
DNS服務器
192.168.57.10

015
DNS 域名
測試.local

在選項 066 中,我們指定 sccm 服務器的 FQDN 名稱,在選項 067 中,我們指定從 TFTP 根開始的 x86 引導加載程序 pxelinux.com 的路徑,在選項 006 中,我們指定 DNS 服務器的 IP 地址。 如果在選項 066 中使用短服務器名稱,則在選項 015 中我們指定域的 DNS 後綴。

增加
更詳細地描述了 DHCP 配置 姆戈盧別夫 這裡. 但是在 DC DHCP 作用域設置中缺少選項 150,TFTP 服務器 IP 地址,並且通過 netsh 指定選項 150 不起作用。System Center Configuration Manager 的 PXE 引導菜單

3、檢查工作

基本設置完成,可以開始檢查了。 我們在 BIOS 中指示測試計算機通過網絡加載並加載到菜單中
System Center Configuration Manager 的 PXE 引導菜單

選擇一個項目 «Start to SCCM» 如果將任務序列分配給計算機,則稍後會出現“任務序列嚮導”窗口,提示您輸入密碼
System Center Configuration Manager 的 PXE 引導菜單

重啟機器,回到菜單,在菜單中選擇 «Antivirus and tools» 並輸入密碼 Qwerty
System Center Configuration Manager 的 PXE 引導菜單

我們選擇任意項目並觀察 ISO 映像加載到內存中的情況
System Center Configuration Manager 的 PXE 引導菜單

等待並看到結果
System Center Configuration Manager 的 PXE 引導菜單

驗證完成
System Center Configuration Manager 的 PXE 引導菜單

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 數據報服務器

67
自舉協議 (BOOTP)

49
塔卡控制系統

客戶端直接從 DHCP 服務器獲取網絡加載程序信息的第二種方法是在 DHCP 服務器上指定選項 60,66,67、60、XNUMX。 將 DHCP 選項 XNUMX 與值一起使用 «PXEClient» 到所有 DHCP 範圍,僅當 DHCP 服務器託管在與 Windows 部署服務相同的服務器上時。 在這種情況下,客戶端使用 UDP 端口 4011 上的 TFTP 而不是使用 DHCP 直接與 Windows 部署服務服務器通信。 由於負載平衡、DHCP 選項處理不正確以及客戶端的 Windows 部署服務響應選項等問題,Microsoft 不推薦使用此方法。 還因為僅使用兩個 DHCP 選項 66 和 67 允許您繞過網絡啟動服務器上設置的參數。
您還需要在 Windows 部署服務服務器上打開以下 UDP 端口
端口 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 產品支持服務 (PSS) 支持網絡引導邊界 Microsoft Windows 預安裝環境 (Windows PE) 2.0 http://support.microsoft.com/kb/926172/en-us
如何在 Cisco 上轉發 UDP 廣播(BOOTP / DHCP) http://www.cisco-faq.com/163/forward_udp_broadcas.html
Cisco 路由器上 DHCP 的操作和配置特點(第 2 部分) http://habrahabr.ru/post/89997/

本地下載的附加選項

在測試環境中,命令

localboot 0

給出這樣的錯誤
System Center Configuration Manager 的 PXE 引導菜單
從 syslinux 文檔可以看出,當

localboot 0

加載將從本地磁盤進行。 而當從主(primary)軟盤指定特定值0x00時,從主(primary)硬盤指定0x80時。 通過將命令更改為

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 可以取值

短信PXE
SCCM 中的 PXE 服務點

SMS.PXE.過濾器
來自 MDT(Microsoft 部署工具包)的 PXE 腳本處理程序

BINLSVC
標準 WDS 和 RIS 引擎

安裝 SCCM 後,參數 ProvidersOrder 事項 SMSPXE. 通過更改參數,您可以更改加載提供程序的順序。

在目錄中 RemoteInstall 以下標准文件位於

wdsnbp.com

為執行以下任務的 Windows 部署服務設計的網絡啟動程序:
1.架構檢測。
2、候車電腦維護。 啟用自動添加策略時,此網絡啟動程序將發送到等待的計算機以暫停網絡啟動並通知服務器客戶端計算機的體系結構。
3. 使用網絡引導鏈接(包括使用 DHCP 選項 66 和 67)

PXEboot.com

(默認)要求用戶按 F12 鍵繼續網絡引導

PXEboot.n12

不需要用戶按 F12 鍵並立即開始網絡引導

中止PXE.com

使用 BIOS 中的下一個引導項引導計算機,無需等待

引導管理程序

Windows 啟動管理器(Bootmgr.exe 或 Bootmgr.efi)。 使用來自特定磁盤分區或網絡連接的固件加載 Windows 引導加載程序(在網絡引導的情況下)

Bootmgfw.efi文件

PXEboot.com和PXEboot.n12的EFI版本(在EFI中,是否啟動PXE的選擇是在EFI shell中,而不是網絡啟動程序)。 Bootmgfw.efi 結合了 PXEboot.com、PXEboot.n12、abortpxe.com 和 bootmgr.exe 的功能。 它目前僅適用於 x64 和安騰架構。

默認.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 中添加分發點角色(SCCM 2007 中的 PXE 服務點)之前,已安裝的 Windows 部署服務 (WDS) 上有一些配置操作會自動創建這些文件夾。
對於分發點角色(SCCM 2007 中的 PXE 服務點),僅以下文件夾就足夠了

SMSBoot
SMSIMAGES
SMSTemp
Stores

這並不意味著 SCCM 安裝不正確,但它可能指向一個可能的錯誤源。
文中對WDS、SCCM、PXE bundle的各種問題的解決方案進行了詳細的討論。 Configuration Manager 2007 中的 PXE 服務點和 WDS 故障排除

由 System Center Configuration Manager 管理的 IT 基礎架構為現場系統管理員添加了一個新工具。

ISO 鏡像鏈接列表(點擊顯示)下載.f-secure.com/estore/rescue-cd-3.16-52606.iso
git.ipxe.org/releases/wimboot/wimboot-latest.zip
下載.geo.drweb.com/pub/drweb/livecd/drweb-livecd-602.iso
rescuedisk.kaspersky-labs.com/rescuedisk/updatable/kav_rescue_10.iso
esetsupport.com/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

謝謝你的關注!
System Center Configuration Manager 的 PXE 引導菜單

來源: www.habr.com

添加評論