什么是PXE
PXE是由Intel公司开发的最新技术,全称为“Preboot Execution Environment”(预启动执行环境),工作于Client/Server的网络模式。它允许工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统。在启动过程中,终端要求服务器分配IP地址,再用TFTP(Trivial File Transfer Protocol)或MTFTP(Multicast Trivial File Transfer Protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统
工作原理
-
计算机启动: 在计算机启动时,它会通过网络发送DHCP请求。
-
DHCP分配IP地址: DHCP服务器响应并分配IP地址给计算机。
-
DHCP提供PXE信息: DHCP服务器除了IP地址外,还提供PXE服务器的IP地址和引导文件路径。
-
PXE服务器: PXE服务器响应PXE引导请求,提供引导文件。
-
TFTP文件传输: 计算机使用TFTP协议从PXE服务器下载引导文件。
-
引导加载器: 引导文件中的引导加载器加载操作系统内核和其他引导文件。
-
操作系统启动: 引导加载器引导操作系统,计算机最终启动到操作系统环境。
实操(高效批量网路装机)
yum install tftp-server.x86_64 dhcp syslinux vsftpd -y //安装软件 cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf //生成dhcp 配置文件vim /etc/dhcp/dhcpd.conf //修改配置文件
subnet 192.168.17.0 netmask 255.255.255.0 {range 192.168.17.20 192.168.17.50;option routers 192.168.17.55;next-server 192.168.17.55;filename "pxelinux.0";
}vim /etc/xinetd.d/tftp //修改 tftp 配置文件 将yes 改为no
disable = no准备四大文件
pxelinu.0
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/准备内核 驱动文件
mount /dev/sr0 /mnt
cd /mnt/isolinux/
cp vmlinuz initrd.img /var/lib/tftpboot/准备手写配置文件
cd /var/lib/tftpboot/
mkdir pxelinux.cfg
vim pxelinux.cfg/default
default linux
timeout 600label linuxkernel vmlinuzappend initrd=initrd.img method=ftp://192.168.17.55/centos7label linux textkernel vmlinuzappend text initrd =initrd.img method=ftp://192.168.17.55/centos7准备yum仓库
mkdir /var/ftp/centos7
mount /dev/sr0 /var/ftp/centos7/systemctl start dhcpd
systemctl start tftp.socket
systemctl start vsftpd准备应答文件 自动安装操作系统
yum install system-config-kickstart -y // 安装图形化界面 制作应答文件的工具手动去添加应答文件过程 略cd /var/lib/tftpboot/
vim pxelinux.cfg/default
default linux
timeout 600label linuxkernel vmlinuzappend initrd=initrd.img method=ftp://192.168.17.55/centos7 ks=ftp://192.168.17.55/centos7 label linux textkernel vmlinuzappend text initrd =initrd.img method=ftp://192.168.17.55/centos7
服务端
复制dhcp文件的配置模板
编辑配置文件
编辑tftp的配置文件
将文件pxelinux.0到tftpboot路径下
挂载光盘镜像
下光盘镜像里创建一个配置文件
点开虚拟机进行系统配置(用超级管理员用户登录不然无法保存文件)
继续编写配置文件