搭建PXE无盘站
--centos7
一、PXE
PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。
二、PXE启动原理
当计算机引导时,BIOS把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。
三、启动过程
PXE是RPL的升级品,它是Preboot Execution Environment的缩写。它们的不同之处在于RPL是静态路由,而PXE是动态路由。其通信协议采用TCP/IP,与Internet连接高效而可靠,PXE无盘工作站的启动过程分析如下:
客户端个人电脑开机后, 在 TCP/IP Bootrom 获得控制权之前先做自我测试。
Bootprom 送出 BOOTP/DHCP 要求以取得 IP。
如果服务器收到个人电脑所送出的要求, 就会送回 BOOTP/DHCP 回应,内容包括
客户端的 IP 地址, 预设网关, 及开机映像文件。否则,服务器会忽略这个要求。
Bootprom 由 TFTP 通讯协议从服务器下载开机映像文件。
个人电脑通过这个开机映像文件开机, 这个开机文件可以只是单纯的开机程式也可
以是操作系统。
开机映像文件将包含 kernel loader 及压缩过的 kernel,此 kernel 将支持NTFS root
系统。
远程客户端根据下载的文件启动机器。
(此文重要讲操作 原理可以参照其他的详细资料)
四、操作步骤
1、配置DHCP服务—提供IP
.# yum -y install dhcp
搭建的pxe服务器的ip是192.168.6.100 则对DHCP的配置文件
/etc/dhcp/dhcpd.conf 配置如下:
![image image](https://yqfile.alicdn.com/2901562f91fa3da863cddb4bd1355ae78afd340f.png?x-oss-process=image/resize,w_1400/format,webp)
启动并配置开启启动dhcp服务
.# systemctl start dhcpd
.# systemctl enable dhcpd
2、安装tftp服务和关联包
.# yum install -y tftp*
安装xinetd守护进程,因为tftp依赖于xinetd
.# yum install -y xinetd
修改tftp配置文件/etc/xinetd.d/tftp,将disable= yes改为disable=no
启动并配置开机自动启动xinetd进程
.# systemctl start xinetd
.# systemctl enable xinetd
.# systemctl start tftp
3、配置http为文件仓库
安装http服务
.# yum -y install httpd
放入待安装系统盘,并直接用光盘的package当做安装仓库
.# mkdir /var/www/html/centos7
.# mount /dev/cdrom /var/www/html/centos7/
4、修改ks.Cfg
将当前系统中的ks文件拷贝到/var/www/html/路径下
.# cp /root/anaconda-ks.cfg /var/www/html/ks.cfg
ks.cfg的作用是预先指定好需要的安装选项(包括系统镜像路径,安装组件,系统语言,网络配置,用户及密码等),当正式安装时PXE Client将会很据该文件去自动配置安装,从而避免了大规模部署时的大量重复操作。(具体的原理 可以自行在网上了解 后期我会补上来
5、 相关系统引导文件存储
安装syslinux,它是一个功能强大的引导加载程序,而且兼容各种介质。
.# yum install -y syslinux
pxelinux.0文件名要和dhcp配置文件内的一致
.# cp/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
copy光盘目录中的vmlinuz和initrd.img,这两个文件相当于系统启动时/boot目录下的启动文件,这个用来引导anacoda而不是根
.# cp/mnt/cdrom/images/pxeboot/{vmlinuz,initrd.img} \
/var/lib/tftpboot/
copy pxe引导所需要的配置文件,splash.png:背景图.boot.msg启动标语,vesamenu.c32:显示同行界面用的程序.
.# cp/mnt/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.png}\
/var/lib/tftpboot/
pxe启动时显示配置文件信息,和光盘启动类似.
.# mkdir/var/lib/tftpboot/pxelinux.cfg
.# cp/mnt/cdrom/isolinux/isolinux.cfg\
/var/lib/tftpboot/pxelinux.cfg/default
6、配置default系统启动文件
在default配置文件/var/lib/tftpboot/pxelinux.cfg/default中找到下面标签
它的目的是用于告诉PXEClient去哪里可以找到镜像文件以及ks.cfg配置文件。
7、 检查PXE Server的状态并关闭防火墙、启动PXE Client
.# service dhcpd status
.# service tftp status
.# service httpd status
以上三者结果都应该为active(running)
.# systemctl stop firewalld
.# systemctl disable firewalld
.# service firewalld status
结果都应该为inactive(dead)