在BOOT SEQUENCE阶段,除了选择U盘、磁盘,大部分主板都支持BOOT ON LAN 也就是PXE(preboot execute environment)预引导处理环境.
PXE其实是网卡的一个固件,烧录在网卡的芯片中,如果BIOS选择PXE启动,就会将引导交给网卡处理,PXE是通过TFTP客户端去TFTP服务端获取引导文件来引导的,它只支持TFTP,TFTP的传输速度很慢,由此就诞生了IPXE。
ipxe官方网站:https://ipxe.org/start
IPXE是gpxe的升级版,它是一个开源的网络引导固件,请注意,它是一个固件,所以它可以烧录进网卡的芯片中去替换PXE来支持IPXE的新特性,前提是网卡支持。当然它也可以通过PXE的TFTP来进行引导接力,从而从PXE进入到IPXE,它既支持传统引导也支持UEFI引导,两者需要使用不同的引导文件。IPXE 支持http\https\iscsi\dns\tftp\elf\aoe等众多协议,也就是它可以使用http协议进行引导接力,这比tftp传输效率提高了非常多,在线安装系统的效率提高不少,因为支持iscsi,所以无盘启动就可以实现,配置ipxe可以分为编译期和运行期,在编译期可以通过指定脚本来配置参数,运行期可以通过命令或者链式调用指定脚本来间接配置引导。
NETBOOT.XYZ 这个本质上是开源的ipxe配置脚本,它帮你完成了很多ipxe的配置,可以帮助你更方便的使用IPXE,在学习编辑ipxe脚本的时候可以作为参考。
要实现win10无盘安装与无盘启动,涉及的技术主要有以下这些:
dhcp服务端—–使用爱快软路由的dhcp服务(配置option67、next-server 来宣告tftp服务器的信息)
tftp服务端——使用群晖tftp服务,放置ipxe引导文件
iscsi服务器—– 使用群晖iscsi服务,当作win10网络系统盘,涉及安装和安装完成后的引导
ipxe技术—– 从pxe进入ipxe引导–>pe引导–>载入网络iso文件,加载iscsi磁盘,安装windows至iscsi,最后从iscsi磁盘引导进入windows10
smb服务器—使用群晖smb服务,负责安装镜像加载
win10 pe制作—–微软官方的制作PE工具,ADK套件,地址:https://support.microsoft.com/en-us/windows/adk-download-for-windows-10-2a0b7ff2-79b7-b989-f727-43ae506e36ad,PE负责win10安装
http服务—使用群晖webstation,http服务主要放ipxe脚本和winPe相关文件
实验机(物理机或者虚拟机一台支持PXE启动)—–负责测试。
前面已经提到启动环境分bios传统引导和uefi引导,所以流程也分两套,其实很接近,只是使用的引导文件不同,这里以传统引导流程来实现,流程如下:
物理机或虚拟机启用BIOS引导—进入PXE环境—加载TFTP的ipxe引导文件—ipxe通过http加载winPe—winPe挂载iscsi磁盘,挂载win10安装盘,将win10安装进iscsi磁盘,重启后pxe进入ipxe,ipxe引导iscsi磁盘进入win10系统,win10无盘启动完成。