目录
PXE(Preboot Execution Environment)是一种网络引导协议,它允许通过网络启动计算机。使用PXE,计算机可以在没有本地存储设备(如硬盘)的情况下,通过网络从远程服务器引导操作系统或运行其他预启动环境。
PXE的工作原理如下:
- 在计算机启动时,它会通过网络发送一个DHCP(Dynamic Host Configuration Protocol)广播请求,以获取IP地址和其他网络配置信息。
- DHCP服务器会回复计算机的请求,并提供其所需的IP地址和PXE配置信息。
- 计算机接收到DHCP回复后,会向DHCP提供的TFTP(Trivial File Transfer Protocol)服务器发送一个TFTP请求,以获取PXE引导程序(如pxelinux.0)。
- 计算机接收到PXE引导程序后,会执行该程序,并通过TFTP继续下载引导映像文件(如操作系统的内核文件和初始RAM磁盘映像)。
- 计算机下载完成映像文件后,会在其内存中加载和执行映像文件,从而完成网络启动。
通过PXE,管理员可以通过网络远程安装操作系统、进行系统维护和诊断、集中管理计算机等。它广泛应用于IT环境中,特别是在大规模部署计算机的情况下,可以大大简化操作和提高效率。
一、PXE是什么?
批量装机系统,网络安装linux操作系统。需要客户端的网卡支持pxe网络启动。
二、PXE的组件:
1、vsftpd/httpd/nfs
负责提供系统的安装文件
2、tftp
负责提供系统安装前的引导文件与内核文件
3、dhcp
负责提供客户端的IP地址分配与pxe引导文件,及pxe服务器地址
三、配置dhcp
1、关闭防火墙与selinux和配置本地yum源
systemctl stop firewalld setenforce 0 vim /etc/sysconfig/network-scripts/ifcfg-ens33 systemctl restart network
cd /etc/yum.repos.d/ mkdir backup mv CentOS-* backup/ vim local.repo [local] name=local baseurl=file:///mnt enabled=1 gpgcheck=0
2、安装dhcp服务
挂载磁盘安装dhcp
mount /dev/sr0 /mnt yum -y install dhcp
3、配置dhcp配置文件
cd /etc/dhcp/ cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf vim dhcpd.conf 找到subnet字段,分别把2行、4行、5行对应的行数subnet全部删除。保留一下subnet: subnet 192.168.100.0 netmask 255.255.255.0 { range 192.168.100.100 192.168.100.253; # option domain-name-servers ns1.internal.example.org; # option domain-name "internal.example.org"; option routers 192.168.100.254; option broadcast-address 192.168.100.255; default-lease-time 600; max-lease-time 7200; next-server 192.168.100.254; filename "pxelinux.0"; } 启动dhcp服务 systemctl restart dhcpd
四、配置vsftpd
yum -y install vsftpd cd /var/ftp/ mkdir centos7 mount /dev/sr0 /var/ftp/centos7 systemctl restart vsftpd
五、配置tftp
1、安装tftp-server
yum install -y tftp-server
2、启动tftp
vim /etc/xinit.d/tftp disable=no
systemctl start tftp
六、准备pxelinx.0文件、引导文件、内核文件
1、准备pxelinux.0文件
yum install -y syslinux cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
2、准备引导文件、内核文件
cd /光盘挂载路径/images/pxeboot/
cp initrd.img vmlinuz /var/lib/tftpboot
cd /mnt/images/pxeboot/ cp initrd.img vmlinuz /var/lib/tftpboot/ cd /var/lib/tftpboot/ ls
八、创建default文件
cd /var/lib/tftpboot mkdir pxelinux.cfg cd pxelinux.cfg vim default default auto prompt 1 label auto kernel vmlinuz append initrd=initrd.img method=ftp://192.168.100.254/centos7 default auto 默认安装标签 prompt 1 等待用户确认,1表示等待,0表示不等待 label auto 定义标签 kernel vmlinuz 指定内核 append initrd=initrd.img method=ftp://192.168.100.254/centos7 指定引导镜像文件与系统安装文件
2、验证
配置到这里手动PXE就完事了
九、配置pxe无人值守安装
1、配置ks文件
修改配置文件
vim /root/anaconda-ks.cfg
2、使用图形界面配置
yum install -y system-config-kickstart.noarch system-config-kickstart
3、修改ks.cfg
从/root/anaconda-ks.cfg文件中拷贝软件安装字段到ks.cfg
vim %packages @^graphical-server-environment @base @core @desktop-debugging @development @dial-up @fonts @gnome-desktop @guest-agents @guest-desktop-agents @hardware-monitoring @input-methods @internet-browser @multimedia @print-client @x11 chrony kexec-tools %end
vim anaconda-ks.cfg
cp /root/ks.cfg /var/ftp
修改default文件
cd /var/lib/tftpboot/pxelinux.cfg/ ls vim default default auto prompt 0 label auto kernel vmlinuz append initrd=initrd.img method=ftp://192.168.100.254/centos7 ks=ftp://192.168.100.254/ks.cfg
十、开启客户端验证
1、网卡配置
这里的网卡一定要选一样的模式
2、开始自动装机
这里装机完毕了