🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# kickstart部署-PXE配置文件解析 ## 一、 默认配置文件内容解析 ```SH egrep -v "^$|^#" /var/lib/tftpboot/pxelinux.cfg/default ``` ![mark](http://noah-pic.oss-cn-chengdu.aliyuncs.com/pic/20200411/073915373.png) ## 二、 精简default配置文件 最精简配置 ```SH cat /var/lib/tftpboot/pxelinux.cfg/default default ks prompt 0 label ks kernel vmlinuz append initrd=initrd.img inst.repo=http://172.16.1.201/ks_config/CentOS7-ks.cfg net.ifnames=0 biosdevname=0 ksdevice=eth1 #inst.repo告诉安装程序ks.cfg文件在哪里 #net.ifnames=0 biosdevname=0修改内核参数,达到更改网卡名的目的 #ksdevice=eth1当客户端有多块网卡的时候,指定从eth1安装,避免交互。 ``` ## 3 知识扩展-PXE配置文件default 由于多个客户端可以从一个PXE服务器引导,PXE引导映像使用了一个复杂的配置文件搜索方式来查找针对客户机的配置文件。 如果客户机的网卡的MAC地址为`8F:3H:AA:6B:CC:5D`,对应的IP地址为`10.0.0.195`,那么客户机首先尝试以MAC地址为文件名匹配的配置文件,如果不存在就以IP地址来查找。 根据上述环境针对这台主机要查找的以一个配置文件就是` /tftpboot/pxelinux.cfg/01-8F:3H:AA:6B:CC:5D`。如果该文件不存在,就会根据IP地址来查找配置文件了,这个算法更复杂些,PXE映像查找会根据IP地址16进制命名的客户机配置文件。 例如:10.0.0.195对应的16进制的形式为C0A801C3。(可以通过syslinux软件包提供的gethostip命令将10进制的IP转换为16进制) 如果C0A801C3文件不存在,就尝试查找C0A801C文件,如果C0A801C也不存在,那么就尝试C0A801文件,依次类推,直到查找C文件,如果C也不存在的话,那么最后尝试default文件。 总体来说,pxelinux搜索的文件的顺序是: ```SH /tftpboot/pxelinux.cfg/01-88-99-aa-bb-cc-dd /tftpboot/pxelinux.cfg/C0A801C3 /tftpboot/pxelinux.cfg/C0A801C /tftpboot/pxelinux.cfg/C0A801 /tftpboot/pxelinux.cfg/C0A80 /tftpboot/pxelinux.cfg/C0A8 /tftpboot/pxelinux.cfg/C0A /tftpboot/pxelinux.cfg/C0 /tftpboot/pxelinux.cfg/C /tftpboot/pxelinux.cfg/default ``` 如果已经从厂商获取了服务器MAC地址,就可以差异化定制安装服务器了。