PXE装机步骤
1、设置客户机的BIOS从PXE启动
2、客户机向网络中请求DHCP服务器获取动态IP
3、DHCP服务器下发IP、引导文件位置、TFTP服务器地址
4、客户机请求TFTP服务器获取引导文件
5、执行引导程序
6、请求TFTP服务器获取配置文件(pxelinux.cfg)
7、配置文件包含vmlinux、initrd.img、ks文件位置信息
8、根据配置文件,用户请求TFTP服务器获取linux内核(vmlinux)
9、请求TFTP服务器获取linux根文件系统(initrd.img)
10、客户机启动linux内核
11、内核挂载initrd.img,并执行挂载各种各样的模块
12、如果设置KS文件,装机步骤自动选择,否则需手动选择
13、装机完成
基础概念:
PXE是Intel提出的,用以网卡启动。通过DHCP获取IP以及TFTP获取启动文件。
gPXE/iPXE是PXE的扩展版,支持HTTP等多种获取手段。iPXE由gPXE分支而来(fork),功能更丰富。
一般网卡ROM支持PXE,但不支持gPXE/iPXE,除非刷ROM。
SYSLINUX 是一个bootloader,和GRUB等无异。
PXELINUX
是一个支持PXE的bootloader,SYSLINUX不支持PXE。PXELINUX/SYSLINUX语法基本一致。
本人操作日记:
搭建pxe服务器是,现在安装syslinux软件包,里边一般会包括pxelinux.0
、gpxelinux.0。
传统的pxe通过tftp下载vmlinuz、initrd.img文件,速度很慢。所以用gpxe,可以用ftp、http等可以更快。
基本思路:
1. dhcp filename
配置为gpxelinux.0
2. pxelinux.cfg/default配置文件里地址有tfpt的相对路径改为ftp的决定路径:
vmlinuz - >
ftp://10.2.2.3/vmlinuz
initrd.img ->
ftp://10.2.2.3/initrd.img
问题是:
dhcp配置里的filename配置成gpxelinux.0
、client下载vmlinuz的时候回卡住,原因不明。
解决办法:
把ftp目录下的gpxelinux.0
改名成pxelinux.0,并且dhcp配置里filename 也回复称pxelinux.0,就OK了。