折腾了一天半,PXE无盘服务器以暂时失败而告终。
基本原理
1. 首先客户端主机需要支持PXE,大部分主板都支持。
2. PXE服务器需要安装DHCP、TFTP、FTP服务。
3. DHCP服务用来给客户端主机建立网络链接。
4. TFTP用于建立链接后获取启动加载器文件。
5. FTP用于下载镜像文件。
强烈推荐参考的地址:
http://www.tecmint.com/install-pxe-network-boot-server-in-centos-7/
https://linux.cn/article-4902-1.html
越发的觉得一个人的力量是极其有限的了,因为再简单的原理也可能在执行的过程中遇到意想不到的问题,而这个问题很可能就是一个从未关注的领域。
个人搭建PXE服务器的过程中遇到下列问题:
① 提示没有pxelinux.0文件
原因:缺少文件。
解决:这个通过yum install syslinux即可解决。(之前参考的文档里没提到这个,但是上面的链接里专门有这一步,赞)。
② pxe-e11 : arp timeout
个人环境原因:dhcpd服务启动失败。
个人解决办法:安装、使用dnsmasq服务。
③ dnsmasq服务启动失败
个人环境原因:地址占用,有一个进程占用53端口。
个人解决办法:kill相关进程号,再执行systemctl start dnsmasq即可。
④ pxe-e77 : Bad or missing discovery server list
个人环境原因:未找到。就是卡在这里了,都是泪啊,有人能帮助我解决一下吗?
在尝试解决e77的过程中,找到了大量的报错大全,暂时贴在这里分享一下吧:
PXE-E00: Could not find enough free base memory. PXE主代码和UNDI运行时模块从闪存或上位内存拷贝至基本内存顶部480K(78000h)至640K(A0000h)的剩余空间位置,这段内存必须被系统BIOS填零,如果这些内存没有填零,PXE ROM里的重布置代码将认为这些内存已经被系统BIOS或其它启动ROM占用了。 PXE-E01: PCI Vendor and Device IDs do not match! 此信息在成品BIOS中不可能出现,当系统BIOS初始化基于PCI的ROM时,它将假设PCI 总线/设备/模块(Bus/Device/Function)值已在AX寄存器里通过审核,如果AX寄存器里定义的PCI设备不匹配UNDI设备,将出现此错误代码。 PXE-E04: Error reading PCI configuration space 如果任何PCI BIOS调用导致PCI设置空间返回错误代码,此信息将出现,此信息将不会在成品BIOS和硬件上出现。 PXE-E05: EEPROM checksum error 如果网卡EEPROM内容被损坏,将出现此信息。EEPROM内容的损坏通常发生在正在对网卡EEPROM进行编程时系统突然复位(Reset)或掉电的情形下,如果出现此信息,PXE ROM将不执行引导。 PXE-E06: Option ROM requires DDIM support 此信息将不会在成品BIOS中出现,PCI可选ROM通常必须被设置为DDIM可选ROM(通常必须被安置在读/写上位内存中) PXE-E07: PCI BIOS calls not supported 此信息将不会在成品BIOS中出现,PCI BIOS必须有PCI BIOS服务。 PXE-E08: Unexpected API error. API: xxxxh Status: xxxxh 如果PXE API返回一个运行时加载器(Runtime Loader)预料之外的状态代码,将出现此信息 PXE-E09: Unexpected UNDI loader error. Status: xxxxh 如果UNDI运行时加载器(Runtime Loader)返回预料之外的状态代码,将出现此信息 ARP错误代码 PXE-E11: ARP timeout PXE ROM将重试四遍ARP请求,如果无法获取任何有效的ARP答复,将出现此信息,此信息通常源于一些网络和服务设置错误,通常的原因有: 1. 在DHCP主服务器上设置了DHCP类标识符(Option 60)却在另一台服务器上安装了ProxyDHCP服务。 2. 使用了不响应ARP请求的路由器 3. arp绑定错误 BIOS和BIS错误代码 PXE-E20: BIOS extended memory copy error. AH == nn 如果BIOS扩展内存拷贝服务返回一个错误信息,此信息将出现,在成品BIOS中将不会遭遇此信息,代码“nn”为BIOS扩展内存拷贝服务(Int 15h,AH = 87h)返回的错误代码。 PXE-E21: BIS integrity check failed 如果在扩展内存中的BIS映像损坏,则将显示此信息 PXE-E22: BIS image/credential validation failed 下载的映像和证书不匹配客户端关键字 PXE-E23: BIS initialization failed BIS无法被初始化,没有更多可用数据 PXE-E24: BIS shutdown failed BIS无法停止,没有更多可用数据 PXE-E25: BIS get boot object authorization check flag failed 无法检测BIS已启用/已禁用 PXE-E26: BIS free memory failed 无法释放BIS分配内存 PXE-E27: BIS get signature information failed 请求BIS证书类型信息不能被确定。 PXE-E28: BIS bad entry structure checksum SM BIOS表中的BIS入口结构无效。 TFTP/MTFTP错误代码 PXE-E32: TFTP open timeout TFTP“Open”请求没有应答,验证TFTP服务是否正在运行。 PXE-E35: TFTP read timeout 未收到下一个TFTP数据包 PXE-E36: Error received from TFTP server 从TFTP服务器上收到了一个错误的TFTP数据包 PXE-E38: TFTP cannot open connection 当试图送出一个TFTP“Open”包时发生了一个硬件错 PXE-E39: TFTP cannot read from connection 当试图送出一个TFTP应答包时发生了一个硬件错 PXE-E3A: TFTP too many packages. 此信息意味着发生了下列两种情况中的一个: 1. 你试图用TFTP下载一个比分配的缓冲区更大的文件 2. 你作为一个从(Slave)客户端使用MTFTP开始下载一个文件,而当你变成一个主(Master)客户端时,此文件的大小发生了改变。 PXE-E3B: TFTP error – File not found 请求的文件在TFTP服务器上无法找到。 PXE-E3C: TFTP error – Access violation 已在TFTP服务器上找到了请求的文件,但TFTP服务没有足够的访问权限开启/读取文件。 PXE-E3F: TFTP packet size is invalid 收到的TFTP包大小超过1456bytes BOOTP/DHCP错误代码 PXE-E51: No DHCP or proxyDHCP offers were received 客户端没有收到任何有效的DHCP、BOOTP或proxyDHCP应答。 PXE-E52: proxyDHCP offers were received. No DHCP offers were received 客户端没有收到任何有效的DHCP或BOOTP应答,但客户端收到了至少一个有效的proxyDHCP应答。 PXE-E53: No boot filename received 客户端收到了至少一个有效的DHCP/BOOTP应答,但没有启动文件名可下载。 PXE-E55: proxyDHCP service did not reply to request on port 4011 客户端发出一个proxyDHCP请求到DHCP服务器的4011端口并没有收到回复。 UNDI错误代码 PXE-E60: Invalid UNDI API function number 一个被基本代码所使用的API在UNDI ROM中无法执行。 PXE-E61: Media test failed, check cable 网线没有插或没有连接,可能是网线坏、网卡坏或连接问题。 PXE-E63: Error while initializing the NIC 初始化网卡硬件时出现错误,建议换网卡。 PXE-E64: Error while initializing the PHY 试图初始化PHY硬件时出现错误,建议换网卡。 PXE-E65: Error while reading the configuration data 读取网卡设置数据时出现错误,建议换网卡。 PXE-E66: Error while reading the initialization data 读取网卡初始化数据时出现错误,建议换网卡。 PXE-E67: Invalid MAC address 存储在这块网卡中的MAC地址无效,建议换网卡 PXE-E68: Invalid EEPROM checksum EEPROM校验和错误,EEPROM内容已损坏,建议换网卡 PXE-E69: Error while setting interrupt 无法配置硬件中断,建议换网卡。 Bootstrap和Discovery错误代码 PXE-E74: Bad or missing PXE menu and/or prompt information 已检测到PXE标识但启动菜单和/或启动命令提示符标识未发现/不存在 PXE-E76: Bad or missing multicast discovery address 多播创建已启动但多播创建地址标识不符 PXE-E77: Bad or missing discovery server list 多播和广播创建(Discovery)都被禁用,或使用服务器列表启用,但服务器列表标识未发现/不存在 PXE-E78: Could not locate boot server 有效的引导服务器应答未被客户端收到 PXE-E79: NBP is too big to fit in free base memory NBP太大,超过客户端基本内存容量 PXE-E7A: Client could not locate a secure server 当客户端未从启动服务器收到任何安全信息并且客户端上的BIS已被启用,将显示此信息。 PXE-E7B: Missing MTFTP server IP address 当ROM未收到PXE创建标识或proxyDHCP回应和DHCP SIADDR区域被设置为0.0.0.0,将显示此信息。 未分类错误代码 PXE-EA0: Network boot canceled by keystroke 用户在DHCP/创建/TFTP过程中按了“Esc”或“Ctrl+C”键 基础代码/UNDI Loader错误代码 PXE-EC1: BaseCode ROM ID structure was not found UNDI引导模块不能发现基础代码ROM ID结构。如果系统中有基础代码ROM映像,它可能已经损坏了 PXE-EC3: BaseCode ROM ID structure is invalid 基础代码ROM ID结构有问题,基础代码ROM映像已经损坏了 PXE-EC4: UNDI ROM ID structure was not found 基础代码载入模块不能在UNDI ROM ID结构中定位 PXE-EC5: UNDI ROM ID structure is invalid UNDI ROM映像已经损坏了 PXE-EC6: UNDI driver image is invalid UNDI ROM映像已经损坏了 PXE-EC8: !PXE structure was not found in UNDI driver code segment UNDI ROM映像已经损坏了,或者未能被BIOS载入,此错误信息通常系如下一个或三个原因所致: 1. 当即将调用一个LOM映像的时间点,网卡映像正在被编程进BIOS 2. 在PXE可选ROM开始启动之前,PXE可选ROM载入自检内存管理器(POST Memory Manager,$PMM)分配的内存期间被损坏或删除。 3. 在载入ROM结构期间UNDI_Loader结构未被正确载入 PXE-EC9: PXENV+ structure was not found in UNDI driver code segment UNDI ROM映像可能被损坏了,或未被BIOS载入,此错误信息通常系如下三个原因所致: 1. 当即将调用一个LOM映像的时间点,网卡映像正在被编程进BIOS 2. 在PXE可选ROM开始启动之前,PXE可选ROM载入自检内存管理器(POST Memory Manager,$PMM)分配的内存期间被损坏或删除。 3. 在载入ROM结构期间UNDI_Loader结构未被正确载入