最近做了一个SCCM2012R2的项目,让我真心是身心俱疲啊,遇到了各种的坑,今天就给大家分享下该项目遇到的一些坑与相关解决方案。
第一阶段:PXE 启动失败排查
问题描述:
=========
跨网段做PXE的时候会有蓝屏,同一个网段下PXE正常。
问题排查:
=========
从报错来看,WDS no response,我们怀疑是WDS功能异常,我们尝试以下步骤去重新启用WDS,问题依旧:
--------------------------------------
登录WDS服务器,停止Windows deployment services server服务;
找到RemoteInstall\Mgmt路径,将该路径下的文件都剪切到一个新建文件夹做备份用;
重启Windows deployment services server服务,Mgmt路径下的文件会重新被生成;
之后我们在DHCP服务器和SCCM DP上抓了网络包,可以看到在读取BCD文件的时候显示找不到文件,而找不到BCD文件直接导致了最初的蓝屏报错(boot configuration data is missing or contains errors)。
--------------------------------------
正常PXE boot执行顺序为:Wdsnbp.com--Pxeboot.com—Bootmgr.exe—BCD文件—Boot.wim
故障机器的网络包中可以看到:Wdsnbp.com文件读取成功;
Pxeboot.com文件读取成功;
然后读取bcd文件的时候,显示找不到文件。
3. 经过沟通,我们了解到客户配置了DHCP option 66,67,因为微软不支持这种情形,所以我们建议客户改为配置IP helper。在配置完IP helper之后,我们遇到以下新的报错。
4. 对于新的报错我们做了抓包分析,有以下分析发现;
5. 我们拿到客户的网络拓扑之后,给出了以下抓包方案:
--------------------------------------------
在客户端接入S2126G-6交换机的接口上启用端口镜像并在对应机器上开启netmon;
在WDS服务器连接核心S7806A交换机的接口上启用端口镜像并在对应机器上开启netmon;
在核心S7806A的G1/42,G1/45以及汇聚S5750A的G0/24接口上启用端口镜像并在对应机器上开启netmon;
在WDS以及DHCP服务器上开启netmon。
注意:没有在S5750A的G0/17以及接入层交换机上的端口一起抓包是因为我们考虑到问题出在这一段的可能性不是很大。
6. 之后等待4个月左右,贵方根据我们给出的方案做了抓包,并提交了日志。最新的网络包中看到问题又有变化,与前两次不同。
----------------------------------------
这次客户端拿到wdsnbp.com之后,再次发送的DHCP请求返回的文件不是正常的Pxeboot.com,而是abortpxe.com,直接终止了PXE boot行为。
7. 之后我们一起做了远程,有以下检查发现:
-------------------------------------------------------------
在把 “广东联想MT4500T_Win7_X86_SP1” 部署给 ”所有未知计算机“时, 发现在这个任务序列都坏掉的, 其中的操作系统镜像已经不存在。我们对这个任务序列做了修复,重新添加了Windows 7SP1 的系统景象。 在这之后, 我们成功的部署了此任务序列到 “所有未知计算机“ 集合。
之后, 我们找了两台物理笔记本做测试。在通过网络启动时,现在的报错信息和之前的遇到错误已经完全不同,已经没有蓝屏( BCD Error)或者PXE -M0F 错误。当前的错误信息为:
因为客户端需要向SCCM MP去请求policy,我们检查MP相关日志发现:MP 一直无法正常连接到站点数据库做查寻, 而且MP 的状态不正常;也发现了mpcontrol.log 中有大量持续的 DB 无法连接的错误和Internal 500 的错误;我们在SCCM DP服务器上去连接站点数据库的1433 端口, 发现无法连接,这就是MP工作异常的问题所在。
8. 根据远程会话中我们发现的报错,贵方将445以及1433端口做了开放。之后再次进行测试,发现客户端依旧在向SCCM MP请求policy。我们建议按照以下步骤将PXE re-enable, 完成之后测试PXE boot成功。
----------------------
SCCM console --- 管理--- 分发点;
找到20GD 分发点, 打开基属性, 取消PXE 相关的设置, 确认应用;
等15-20分钟, 重启服务器;
删除原来的RemoteInstall 目录 (确认各各分区下面都没有这个目录, 如果有请删除或改名);
在SCCM 控制台上, 找到20GD 分发点, 再启用PXE. 系统会重装PXE (WDS);
等5-10分钟后, 确认 WDS服务是否装好(确认系统服务deployment service 和 数据分区中 RemoteInstall 目录 ),安装完成后测试PXE boot。
针对这两部分的排查,根据我的分析和经验,之前发生PXE 启动失败的原因有以下:
a. PXE/WDS 节点上的启动镜像异常---我们在后续的PXE 重装中, 专门删除了之前的老的文件夹,确保了重新装的PXE 不受之前老的文件影响。
b. 部署异常---之前并没有部署给所有未知计算机的任务序列, 这样也间接造成了PXE 启动时, 找不到对应的任务。
c.端口异常关闭---造成了在PXE启动阶段,站点服务器无法正常的完成查询,任务序列也无法被检测到
第二阶段:任务序列卡死
9. 在解决了PXE 启动问题后, 系统已经可以成功的从PXE 启动到WinPE 阶段,但是在WinPE 阶段却没有如预期的看到任务序列, 一直显示一个空白界面如下:
由于无法从现场机器上获取WinPE 阶段的日志: smsts.log, 我们尝试通过虚拟机测试这一问题。在这一过程中, 我们在DP 上调整了设置, 使之可以在WinPE 阶段做调试 (通过F8 键调出命令控制台)
10. 在通过虚拟机测试时,我们收到了如下的错误:
这个错误信息是由于损坏或有问题的WinPE 镜像造成的, 我们通过重新建立Boot镜像, 并调整了任务序列里的Boot镜像设置,确保对应任务序列和操作系统匹配后,这个错误消失。但是WinPE阶段还是如上图一样,不显示任何任务序列。
11. 在虚拟机收集到的smsts.log日志中,我们的发现了如下的信息。显示在WinPE 阶段, 这台客户端机器无法正常的连接到对应的MP 和DP 服务器。
在网络同事调整DNS 设置后, 这个问题很快的被解决。 也可以正常的看到任务序列了。
至此, 系统可以正常的部署, 在虚拟机上测试的结果也为正常。
本文转自 zyliday 51CTO博客,原文链接:http://blog.51cto.com/itsoul/1966029