一、简介
PXE简介
PXE即为预启动执行环境,可以让计算机通过网络启动。
采用PXE进行安装的需要待安装的计算机配有一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。本文采用VMware虚拟机的方式模拟部署,VMware网卡中已经安装PXE client。
当计算机采用网络进行引导安装时,BIOS会将网卡中的PXE client程序加载进内存中,然后client通过网络访问远端的服务器获取启动文件,配置文件和镜像文件,然后进行安装。
由于需要网络访问,因此需要首先配置网络,网络中需要有一台DHCP服务器为客户机分配地址,以及告诉客户机引导文件的位置。引导文件采用TFTP协议进行传输,它是UDP协议,网卡自带的协议,用来传输引导文件,但不支持大文件传输,无法传输镜像文件,因此额外需要FTP协议。
PXE执行流程:
1、PXE-client 发送请求
访问dhcp服务器并获取自己的ip地址
2、DHCP应答并进行回应
为客户端分配ip地址,以及告诉客户端pxelinux启动程序的位置(采用TFTP服务存放)和配置文件的位置
3、PXE-Client访问TFTP服务器获取pxelinux启动程序的位置以及镜像文件的位置(采用ftp服务存放)
4、加载启动程序并拉取镜像文件后安装操作系统
二、安装环境
本文使用两个VMware虚拟机模拟PXE server服务器和PXE client客户机(需要网络引导启动的机器)。
PXE server: 已安装centos7 操作系统
PXE client: 未安装系统,配置了网卡,以及内存>2G
三、PXE使用的服务
dhcp:需要有dhcp服务为裸机分配ip,因为裸机无ip地址,并且需要提供tftp服务器地址给裸机客户端。
TFTP:UDP协议,通过此协议将需要的引导文件下载到网卡,网卡自带功能。
FTP: tftp不能传输大文件,例如镜像文件。
四、PXE-server服务器安装配置
1、创建虚拟机,并配置网卡,保证网络能通
我的PXE server服务器网络号为192.168.200.0/24 主机号为192.168.200.139/24
2、关闭防火墙和selinux
3、准备centos7镜像文件并上传至服务器
我已经上传,在/root目录下
4、将centos7镜像文件挂载到/mnt/centos7目录上
首先在/mnt 里创建centos7目录,然后将iso镜像文件挂载到该目录下,①为镜像文件的路径,②为要挂载的目录
查看/mnt/centos7下存在这些文件。
5、安装并搭建ftp服务
首先安装vsftpd
在/var/ftp下创建目录centos7,并将/mnt/centos7内的所有内容复制到/var/ftp/centos7
启动vsftpd服务并设置为开机自启动
6、安装并启动TFTP服务
首先安装tftp-server
修改tftp配置文件,将disable改成no
启动tftp服务并设置为开机自启动
7、准备内核文件和初始化镜像文件,并复制到tftp服务根目录下
PXE网络安装需要vmlinuz 和 initrd.img文件,这些文件可以在挂载了centos7镜像文件的目录下(/mnt/cnetos7)找到,位于/mnt/centos7文件夹下的images/pxeboot下。将这两个文件拷贝到tftp服务的根目录下
8、准备引导程序文件
PXE网络安装需要引导程序文件 pxelinux.0,可通过安装syslinux软件获取,获取后同样复制到tftp服务的根目录下
9、配置启动菜单
启动菜单可以配置不同的引导入口,可以设置默认的引导入口,每个引导入口需要配置内核文件vmlinuz,初始化镜像文件initrd.img 以及镜像文件(ftp提供)。
首先在tftp根目录下创建配置文件pxeliunx.cfg,然后在该配置文件内定义启动菜单文件default。
该文件定义了三种引导模式,分别是图像,文本,救援模式,默认采用图像。 ftp路径需要是服务器的ip地址,因为客户机是访问本服务器获取centos镜像文件的。
10、安装并启动dhcp服务
首先安装dhcp
修改配置文件
启动服务并设置开机自启动
五、裸机客户机测试
1、配置一个无操作系统的虚拟机当做裸机
注意配置的虚拟机内存要大于2G
2、开启虚拟机
开启虚拟机后将会访问dhcp服务器自动配置网络信息,出现boot后输入回车后将会选择默认的auto模式进行安装。
然后将会加载vmliunz initrd.img文件,并拉取镜像
出现这个界面说明PXE网络启动成功!!!!