WDS+MDT网络启动自动部署windows(三)UEFI & BIOS 双PXE引导
1.WDS+MDT网络启动自动部署windows(一)实验环境介绍2.WDS+MDT网络启动自动部署windows(二)基本安装配置
3.WDS+MDT网络启动自动部署windows(三)UEFI & BIOS 双PXE引导
4.WDS+MDT网络启动自动部署windows(四)正确引导安装系统5.WDS+MDT网络启动自动部署windows(五)MDT安装6.WDS+MDT网络启动自动部署windows(六)rules bootstrip.ini7.WDS+MDT网络启动自动部署windows(七)添加驱动8.WDS+MDT网络启动自动部署windows(八)识别多硬盘9.WDS+MDT网络启动自动部署windows(九)数据库支持10.WDS+MDT网络启动自动部署windows(十)添加软件11.WDS+MDT网络启动自动部署windows(十一)硬盘分区格式化全自动12.WDS+MDT网络启动自动部署windows(十二)查错的方法13.WDS+MDT网络启动自动部署windows(十三)骚操作,修改MDT数据库,使用变量设置计算机描述14.WDS+MDT网络启动自动部署windows(十四)如何调试自定义任务脚本15.WDS+MDT网络启动自动部署windows(十五)使用it天空万能驱动16.WDS+MDT网络启动自动部署windows(十六)计算机自动进入指定OU17.WDS+MDT网络启动自动部署windows(十七)MDT中文变量,描述,组织单位OU18.WDS+MDT网络启动自动部署windows(十八)MDT 移动OU组织单位19.WDS+MDT网络启动自动部署windows(十九)MDT replace任务序列20.WDS+MDT网络启动自动部署windows(二十)MDT upgrade任务序列21.WDS+MDT网络启动自动部署windows(二十一)MDT 最常见重装备份用户数据,重装系统。22.WDS+MDT网络启动自动部署windows(二十二)MDT高级任务序列,备份数据到共享目录并重装系统23.WDS+MDT网络启动自动部署windows(二十三)扒一扒MDT配置参数24.WDS+MDT网络启动自动部署windows(二十四)部署、刷新、替换、升级25.WDS+MDT网络启动自动部署windows(二十五)复制任务序列简介:#
我们可以通过调整启动文件来兼容不同的硬件(UEFI & BIOS),能否不手动调整呢?自动调整也是可以的。
本来是是想将DHCP放在H3C 5500上的,但是咨询过H3C的售前顾问后,没有任何一个型号支持这个功能,前面已经折腾过自动识别客户端类型,发送不同的启动文件了。为了更好的完成这个系列文章,以及添加shell脚本自动化处理,这篇还是写上吧。
双引导原理#
我们知道两种系统启动文件不同,启动文件又是DHCP发送给终端的,那么需要DHCP识别客户端类型,RFC 4578规定了Option 93 是客户端类型的识别代码。我们就是通过DHCP识别终端的DHCP 发现数据包中的option93,从而发送给客户不同的启动文件。
抓包分析#
过滤一下dhcp,可以看到discover包,包含93选项。
下图是抓的PXE bios
再抓个 PXE-UEFI的
看到有0有7。
WINDOWS DHCP 脚本设置#
PXE Booting with WDS for UEFI and BIOS Devices – Mike Galvin - Technical Consultant
Add-DhcpServerv4Class -Name "PXEClient (UEFI x64)" -Type Vendor -Data "PXEClient:Arch:00007" Add-DhcpServerv4Class -Name "PXEClient (UEFI x86)" -Type Vendor -Data "PXEClient:Arch:00006" Add-DhcpServerv4Class -Name "PXEClient (BIOS x86 & x64)" -Type Vendor -Data "PXEClient:Arch:00000" Add-DhcpServerv4Policy -Name "PXEClient (UEFI x64)" -Condition OR -VendorClass EQ,"PXEClient (UEFI x64)*" Add-DhcpServerv4Policy -Name "PXEClient (UEFI x86)" -Condition OR -VendorClass EQ,"PXEClient (UEFI x86)*" Add-DhcpServerv4Policy -Name "PXEClient (BIOS x86 & x64)" -Condition OR -VendorClass EQ,"PXEClient (BIOS x86 & x64)*" Set-DhcpServerv4OptionValue -ScopeId 10.10.10.0 -PolicyName "PXEClient (UEFI x64)" -OptionId 067 -Value "boot\x64\wdsmgfw.efi" Set-DhcpServerv4OptionValue -ScopeId 10.10.10.0 -PolicyName "PXEClient (UEFI x86)" -OptionId 067 -Value "boot\x86\wdsmgfw.efi" Set-DhcpServerv4OptionValue -ScopeId 10.10.10.0 -PolicyName "PXEClient (BIOS x86 & x64)" -OptionId 067 -Value "boot\x64\wdsnbp.com"
openwrt dnsmasq 脚本设置#
[OpenWrt Wiki] DHCP and DNS examples
注意修改tfpt_root TFTP主目录
filename,启动文件名。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #!/bin/bash uci set dhcp.@dnsmasq[0].logdhcp= '1' uci set dhcp.@dnsmasq[0].enable_tftp= '1' uci set dhcp.@dnsmasq[0].tftp_root= '/srv/tftp' uci add dhcp match uci set dhcp.@match[-1].networkid= 'bios' uci set dhcp.@match[-1].match= '60,PXEClient:Arch:00000' uci add dhcp match uci set dhcp.@match[-1].networkid= 'efi32' uci set dhcp.@match[-1].match= '60,PXEClient:Arch:00006' uci add dhcp match uci set dhcp.@match[-1].networkid= 'efi64' uci set dhcp.@match[-1].match= '60,PXEClient:Arch:00007' uci add dhcp match uci set dhcp.@match[-1].networkid= 'efi64' uci set dhcp.@match[-1].match= '60,PXEClient:Arch:00009' uci add dhcp boot uci set dhcp.@boot[-1].filename= 'tag:bios,bios/lpxelinux.0' uci set dhcp.@boot[-1].serveraddress= "$(uci get network.lan.ipaddr)" uci set dhcp.@boot[-1].servername= "$(uci get system.@system[0].hostname)" uci add dhcp boot uci set dhcp.@boot[-1].filename= 'tag:efi32,efi32/syslinux.efi' uci set dhcp.@boot[-1].serveraddress= "$(uci get network.lan.ipaddr)" uci set dhcp.@boot[-1].servername= "$(uci get system.@system[0].hostname)" uci add dhcp boot uci set dhcp.@boot[-1].filename= 'tag:efi64,efi64/syslinux.efi' uci set dhcp.@boot[-1].serveraddress= "$(uci get network.lan.ipaddr)" uci set dhcp.@boot[-1].servername= "$(uci get system.@system[0].hostname)" uci commit dhcp service dnsmasq reload |
作者:上官飞鸿
出处:https://www.cnblogs.com/jackadam/p/18126436
版权:本作品采用「知识共享-署名-非商业性-禁止演绎(CC-BY-NC-ND)」许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
2021-04-10 Wireshark分析DHCP数据包(准备WDS)