PXE(预启动执行环境,Preboot eXecution Environment)是由Intel公司开发的网络引导技术,它工作在Client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或整个操作系统。
定义:PXE技术允许计算机在操作系统启动之前,通过网络接口(如网卡)从远程服务器下载并运行引导程序,进而加载操作系统安装文件或进行系统配置。
优点:
(一般大多数服务器主机都支持,只需在BIOS设置中允许从 Network 或 LAN 启动即可。)
搭建 PXE 远程安装服务器
PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能够向客户机裸机发送 PXE引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。
TFTP(简单文件传输协议),是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP,端口69
xinetd是新一代的网络守护进程服务程序,又叫超级服务器,常用来管理多种轻量级Internet服务。
yum -y install tftp-server xinetd
vim /etc/xinetd.d/tftp
protocol = udp #TFTP使用UDP协议
wait = no #no表示客户机可以多台一起连接,yes表示客户机只能一台一台连接
server_args = -s /var/lib/tftpboot #指定TFTP根目录(文件存储路径)
disable = no #no表示开启TFTP服务
systemctl start tftp
systemctl enable tftp
systemctl start xinetd
systemctl enable xinetd
/var/lib/tftpboot
目录存在且TFTP服务有权限访问。/etc/xinetd.d/tftp
文件中设置更严格的访问控制(如限制IP范围)或调整日志记录级别。yum -y install dhcp
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
ddns-update-style none; #禁用 DNS 动态更新
next-server 192.168.80.10; #指定 TFTP 服务器的地址
filename "pxelinux.0"; #指定 PXE 引导程序的文件名
subnet 192.168.80.0 netmask 255.255.255.0 { #声明要分配的网段地址
range 192.168.80.100 192.168.80.200; #设置地址池
option routers 192.168.80.10; #默认网关地址指向TFTP服务器的IP地址
}
systemctl start dhcpd
systemctl enable dhcpd
#已事先把光盘挂载到/mnt目录中
cd /mnt/images/pxeboot
#复制 Linux系统的内核文件 到TFTP根目录下
cp vmlinuz /var/lib/tftpboot/
#复制初始化镜像文件(linux引导加载模块)到TFTP根目录下
cp initrd.img /var/lib/tftpboot/
yum -y install syslinux#PXE引导程序由软件包 syslinux 提供
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
pxelinux.0
文件的路径是否正确,并且文件已成功复制到TFTP根目录。yum -y install vsftpd
mkdir /var/ftp/centos7
cp -rf /mnt/* /var/ftp/centos7/
systemctl start vsftpd
systemctl enable vsftpd
/var/ftp/centos7
目录的权限设置正确,以便TFTP服务器能够访问。默认的启动菜单文件在TFTP根目录的 pxelinux.cfg
子目录下,文件名为default mkdir /var/lib/tftpboot/pxelinux.cfg
修改配置文件:
vim /var/lib/tftpboot/pxelinux.cfg/default
default auto #指定默认入口名称
prompt 1 #设置是否等待用户选择,“1”表示等待用户控制
label auto#图形安装(默认)引导入口,label 用来定义启动项
kernel vmlinuz #kernel 和 append用来定义引导参数
append initrd=initrd.img method=ftp://192.168.80.10/centos7
label linux text#文本安装引导入口
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.80.10/centos7
label linux rescue #救援模式引导入口
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.80.10/centos7
method=ftp://192.168.80.10/centos7
路径正确无误,并且FTP服务已正确配置以允许匿名访问。systemctl stop firewalld.service
setenforce 0
enforcing
),请考虑将其设置为宽容模式(permissive
)以进行故障排除。sudo yum install -y system-config-kickstart
system-config-kickstart
基本配置:
安装方法:
引导装载程序选项:
分区信息:
网络配置:
防火墙配置:
安装后脚本:
rm -rf /etc/yum.repos.d/*
echo '[local]
name=local
baseurl=ftp://192.168.80.10/centos7
enabled=1
gpgcheck=0' > /etc/yum.repos.d/local.repo
/root/ks.cfg
cp /root/ks.cfg /var/ftp/ks.cfg
ks.cfg
文件,添加软件包安装部分:%packages
@^minimal
%end
/var/lib/tftpboot/pxelinux.cfg/default
文件:default auto
prompt 0
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.80.10/centos7 ks=ftp://192.168.80.10/ks.cfg
ks.cfg
应答配置文件,并根据其中的设置安装CentOS 7系统。/etc/yum.repos.d/local.repo
文件来验证安装是否成功:cat /etc/yum.repos.d/local.repo
确保您的FTP服务器和TFTP服务器都已正确配置并可以访问,以便客户机能够下载必要的文件和配置文件。此外,确保网络设置(如DHCP服务器)也配置正确,以便客户机能够获取IP地址和其他网络配置信息。