Linux下搭建PXE服务器
一、PXE服务器简介
PXE,预启动执行环境(Preboot eXecution Environment,PXE,也被称为预执行环境)提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。
PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。
1.1、原理
1.PXE client从自己的PXE网卡启动,向本网络中的DHCP服务器请求ip地址
2.DHCP服务器收到dhcp请求后,分配dhcp地址池中ip给PXE client
3.PXE client向本网络中的TFTP服务器索取bootstarp文件
4.PXE client取得bootstarp文件后之执行pxelinux.0文件引导,使用pxelinux环境来引导os安装程序。
5.PXE client然后读取pxelinux.cfg文件夹中的default(isolinux.cfg)引导文件,通过TFTP服务器加载内核vmlinuz和根文件系统(boot.msg,vesamenu.c32,initrd.img,splash.jpg),通过http服务器加载ks.cfg引导文件。
6.启动linux内核完成安装
1.2、搭建思路
1、关闭防火墙
2、安装dhcp
3、安装tftp-sever,xinetd,syslinux
4、挂载镜像ISO
5、配置内核及引导文件
二、搭建教程
关闭防火墙
2.1、配置dhcp
安装dhcp
配置dhcp文件
重启dhcp服务并开机自启
2.2、配置tftp,xinetd
安装tftp,xinetd
配置tftp,xinetd(修改tftp参数:)
把disable参数修改为no
重启tftp、xinetd服务并开机自启
2.3、配置httpd
安装httpd
配置httpd,挂载镜像到http文件夹
创建挂载镜像目录
挂载镜像
浏览器中验证:
输入:http://x.x.x.x/RHEL (ip)
查看是否可以看到镜像文件内容
2.4、配置内核、引导
安装syslinux
2.4.1、legacy模式
2.4.1.1、文件详解
1.引导文件:pxelinux.0
2.内核文件:vmlinuz、 initrd.img
3.系统自带的两种窗口模块之一:vesamenu.c32
4.窗口提示信息文件:boot.msg
5.窗口背景图片:splash.png
6.引导菜单配置文件:isolinux.cfg
2.4.1.2、复制文件
将/usr/share/syslinux/目录下的一下文件也复制到/var/lib/tftpboot/
在/var/lib/tftpboot/下新建pxelinux.cfg文件夹:
复制引导菜单配置文件:isolinux.cfg并修改名称为default文件:
修改default文件
至此,legacy模式pxe服务器完毕,开始前检查dhcpd、tftp、xinetd和httpd服务状态即可
2.4.2、EFI模式
2.4.2.1、文件详解
1.引导文件:bootx64.efi
2.内核文件:vmlinuz、 initrd.img
3.系统自带的两种窗口模块之一:vesamenu.c32
4.窗口提示信息文件:boot.msg
5.窗口背景图片:splash.png
6.引导菜单配置文件:isolinux.cfg
注意:引导文件使用bootx64.efi文件 而不是 pxelinux.0
2.4.2.2、复制文件
复制内核文件到/var/lib/tftpboot/
将/usr/share/syslinux/目录下的一下文件也复制到/var/lib/tftpboot/
查看文件复制结果
2.4.2.3、制作bootx64.efi引导文件
安装bootx64.efi引导文件制作工具
执行制作指令
grub2-mkstandalone -d /usr/lib/grub/x86_64-efi/ -O x86_64-efi --modules="tftp net efinet linux part_gpt efifwsetup" -o bootx64.efi
复制到 /var/lib/tftpboot/
把 grub.cfg 也拷贝到 /var/lib/tftpboot/下面
2.4.2.4、修改grub.cfg文件
2.4.2.5、重启dhcp服务
至此,EFI模式pxe服务器完毕,开始前检查dhcpd、tftp、xinetd和httpd服务状态即可。