# pxe auto-install example **Repository Path**: littleboy921/pxe-autoinstall-example ## Basic Information - **Project Name**: pxe auto-install example - **Description**: kickstart 及pxelinux.cfg/default示例 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-12-21 - **Last Updated**: 2022-01-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PXE 启动设置 #### 相关资料 dhcp客户端在发送dhcp请求(DHCPDISCOVER)时会携带关于本机架构的信息,例如: OPTION 60 PXEClient:Arch:00000:UNDI:002001 OPTION 60 PXEClient:Arch:00007:UNDI:003016 OPTION 77 iPXE 等等 通过利用dnsmasq构建pxe环境,可以根据不通架构自动选择发送对应架构的pxe启动文件 dnsmasq.conf 详细配置参考链接: https://thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html 如果网络内已经有一个DHCP server在提供ip分配服务,而我们只希望dnsmasq是独立的只提供PXE服务的,那么请参考dnsmasq-conf-for-PXE-proxy配置 pxe BIOS and UEFI 环境配置参考: https://wiki.fogproject.org/wiki/index.php/BIOS_and_UEFI_Co-Existence # PXE 启动原理 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0822/113706_07991a10_8447286.png "图片1.png") (1)设置支持pxe功能的客户端主机开机启动项为网络启动,一般默认都此选项,如果没有可自行设置bios启动项; (2)客户端开机之后,此时客户端没有IP地址,由BIOS中的PXE固件发送DHCPDISCOVER广播报文(pxe网卡内置dhcp客户端程序),dhcp服务器以DHCPOFFER包回复客户端请求,该DHCPOFFER包里包含PXE相关信息。客户端在解析一个PXE enabled的DHCP服务器返回的DHCPOFFER包后,PXE client就能够设置自己的IP地址、IP Mask等等,并且指向网络上的启动资源,比如TFTP服务器上的.efi文件和pxelinux.0文件; (3)客户端得到IP地址之后,与tftp通信,下载grubx64.efi或grubaa64.efi或pxelinux.0文件,如果是UEFI Secure Boot模式(而不是Legacy的BIOS)则还会对这些启动资源进行校验;而后客户端进入grub.cfg或pxelinux.cfg/default设置的启动菜单,并下载指定的vmlinuz,initrd.img,下载完成后就会用这些资源来启动一个最小操作系统,这个最小操作系统在装载了网络驱动和TCP/IP协议栈之后,仍然会通过网络的方式(但不是TFTP协议,而是其他更加健壮的协议如HTTP、CIFS、iSCSI或NFS等),加载真正的完整操作系统; (4)pxe服务器上需要开放的端口: tcp:111,2049 udp:67,69,111,2049 (5)PXE客户端和服务器必须在同一个vlan内,如果PXE客户端和服务器不在同一个网段,那么PXE客户端所在的网段内必须要设置DHCP Helper 或DHCP Relay Agent并指向PXE服务器,同时,PXE服务器上的对应端口要设置PXE客户端所在的网段的辅助IP来响应PXE客户端发送过来的dhcp请求 # iPXE相关 https://ipxe.org/ https://github.com/ipxe/ipxe/ https://doc.rogerwhittaker.org.uk/ipxe-installation-and-EFI/ https://gist.github.com/rikka0w0/50895b82cbec8a3a1e8c7707479824c1 # efi nfsboot 相关 https://www.vercot.com/~serva/an/NonWindowsPXE3.html #自助装机平台建设方案 ——FOG平台 https://wiki.fogproject.org/wiki/index.php?title=Main_Page https://www.jianshu.com/p/cbbbfd0eec95