windows

windows中通过PXE在多网段下自动化安装系统(Legacy和UEFI)和加域

环境说明:192.168.0.0/24网段下有AD主控(IP:192.168.0.20、OS:winserver 2019)作为部署服务器和DHCP服务器、192.168.1.0/24下有域计算机(IP:192.168.1.34、OS:win10)作为DHCP服务器(使用的是OpenDHCPServer)。

大致过程如下:

第一步:AD上安装Windows 部署服务角色(安装完成后通过wdsmgmt.msc打开,后文以wds简称)、安装DHCP角色(注意:1、wds本身包含了DHCP的功能,因此如果wds和dhcp同时安装在同一服务器,日志将会报错0x5,需要在wdsmgmt.msc中勾选DHCP菜单中“不侦听DHCP端口”和多播菜单中“从以下范围中的地址”。2、DHCP需要添加额外的参数来引导dhcp的客户端通过指定IP来获取引导文件,因此并非任何DHCP服务器均可以与pxe联动)。

第二步:在另一网段的域计算机中安装openDHCPserver实现dhcp服务器功能。

一、安装WDS(Windows Deployment Services)角色

安装过程没什么难度和注意点可言,仅仅讲述无人参与安装过程。

对于笔者的公司环境来说,期望实在自动传输安装镜像之后鞥能继续自动跳过各种协议的确认、用户信息确认、密钥确认。搜寻了一番是通过无人参与文件(.xml)实现的。制作这个文件的方法是需要安装WindowsSIM(属于WIndows ADK)。安装完成后打开SIM后新建xml进行编辑无人参与文件。

该文件是一种组件的形式。在SIM中针对组件来添加到xml中实现安装过程中完成特定的功能。具体的组件内容可以参考如下文档。安装完成后在wdsmgmt.msc中安装映像的“映像 属性”对话框中勾选“允许在无人参与模式下安装镜像”,同时选择制作完成的xml文件。

1、https://blog.csdn.net/GSWWJM/article/details/117705941
2、https://www.shuzhiduo.com/A/E35p8VaK5v/
3、https://cxybb.com/article/apple2025262/101575044
4、https://blog.csdn.net/weixin_30627381/article/details/99209665?spm=1001.2101.3001.6650.7&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-7-99209665-blog-101575044.pc_relevant_multi_platform_whitelistv1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-7-99209665-blog-101575044.pc_relevant_multi_platform_whitelistv1&utm_relevant_index=8
5、https://docs.microsoft.com/zh-cn/windows-hardware/customize/desktop/unattend/microsoft-windows-international-core-inputlocale

硬盘其实也可以自动分区或格式化,只是笔者的公司硬盘大小有点复杂,很难统一,因此仅仅硬盘需要人工判断分区,其他全自动。如果想临时测试xml文件,可以使用如下命令:

c:\Windows\System32\Sysprep\sysprep.exe /generalize /oobe /shutdown /unattend:.\Unattend.xml

关于wds部署时,笔者这边选择的独立服务器,并非是与AD集成,这可能是需要手动添加账号密码来自动加域的问题因素,参考microsoft-windows-unattendedjoin组件来完成自动加域。仅仅给出委派加域的凭证即可,不建议使用Domain Admins组的用户。

二、安装DHCP角色

安装过程没什么难度和注意点可言,仅仅安装完成后的注意事项。需要确保在作用域中“作用域选项”里存在015 DNS域名(值是AD的域名)和060 PXEClient(值固定是PXEClient),在作用域启动时开始自动安装。对于60项,表示PXE和DHCP出于同一IP的服务器。

同一网段的安装过程注意事项

  1. 传输完成映像后,将开始自动安装,但此时需要输入的PXE所在的服务器的凭证,这个凭证无需管理员,即使是Domain Users组的用户也可。但笔直其实想通过xml方式来免密。

2.如果DHCP的地址池使用完,PXE将等待响应新地址(当然可能会超时)。因此如果界面卡住,请检查PXE客户端是否能正常获取到IP地址。

3.不同的BIOS模式需要区分不同的DHCP Option(图文详情见:UEFI和LEGACY区别介绍

三、关于在另一网段下的DHCP配置

安装openDHCPserver,下载安装包。安装后,运行InstallService.exe进行安装服务。

检查是否安装成功,powershell命令:Get-Service -name OpenDHCPServer

重启服务生效,Powershell命令:Restart-Service -name OpenDHCPServer

日志文件位置安装目录的logs下,日志是每日分隔。持续查看日志,PowerShell命令:Get-Content -Wait C:\OpenDHCPServer\log\OpenDHCPServer20220722.log

运行成功后,该服务默认读取的是安装目录下的OpenDHCPServer.ini配置文件。

下边主要展示笔者的配置文件,供大伙参考。

[LISTEN_ON]
# 侦听所有接口

[LOGGING]
# 打印所有等级的日志
LogLevel=All

[REPLICATION_SERVERS]
# 没什么用,之前想中继,后来发现不中继主控的DHCP也可以
Primary=192.168.0.20

[HTTP_INTERFACE]
# 通过web查看dhcp地址使用情况,默认127.0.0.1:6789
HTTPServer=192.168.1.34:6789

[RANGE_SET]
DHCPRange=192.168.1.200-192.168.1.210
SubnetMask=255.255.255.0

# AD主控的IP
DomainServer=192.168.0.20
Router=192.168.1.1

# 在下方的参数将结合RANGE_SET节的参数一同发udp报文给dhcp客户端
[GLOBAL_OPTIONS]

# AD主控的IP,wds是通过TFTP来传输安装映像的
TFTPServerIPaddress=192.168.0.20

DomainServer=192.168.0.20
NameServer=192.168.0.20
# 没有深入研究作用,第六感觉得需要TFTPServerIPaddress一样
NextServer=192.168.0.20

TimeOffset=3000
DomainName="xxxxx.com"
TFTPServerName="adserver.xxxxxx.com"

# 对于UEFI来说,需要填写wdsmgfw.efi
# 对于Legacy来说,需要填写wdsnbp.com
BootFileName=boot\x64\wdsmgfw.efi
# wdsmgmt.msc中需要启用启动映像,否则无法进行安装
67="boot\x64\images\boot.wim"

66="192.168.0.20"

如果OpenDHCPServer配置完成,但没有在pxe客户端中生效,建议通过抓包(在某电脑中安装虚拟机和WireShark进行抓包)。而在在另一网段的OpenDHCPServer下抓包时,需要保证proxydhcp的目标IP应该是WDS服务器的IP。

四、BIOS

UEFI和LEGACY区别介绍

对于UEFI的BIOS,通过网络协议栈来支持PXE启动。在VMWARE中,通过EFI NETWORK启动时,其实就便是如此。

对于LEGACY的BIOS,INTEL的网卡会提供PXE ROM来支持。

另外,对于有独立网卡的主机来说,应该优先使用集成网卡来实现PXE装机。

发表回复

您的电子邮箱地址不会被公开。