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
TACACS

客户端直接从 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 启动菜单

来源: habr.com

添加评论