PXE特点:
规模化:同时装配多台服务器
自动化:安装系统、配置各种服务
远程实现:不需要光盘、U盘等安装介质
对于无盘工作站,服务器端需要提供可运行的完整系统镜像;对于远程安装,只要提供引导程序和安装源就可以了
![](https://img-blog.csdnimg.cn/img_convert/a40d147694f74f28af94560cb3162906.png)
关于PXE网络
PXE,Pre-boot eXcution Environment
预启动执行环境,在操作系统之前运行
可用于远程安装、构建无盘工作站
服务端
运行DHCP服务,用来分配地址、定位引导程序
运行TFTP服务器,提供引导程序下载
客户端【目前都支持下列功能】
网卡支持PXE协议
主板支持网络启动
kickstart无人值守技术
创建应答文件,预先定义好各种安装设置
免去交互设置过程,从而实现全自动化安装
通过添加%post脚本,完成安装后的各种配置操作
开始搭建PXE
搭建ftp用来存放镜像
[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# mkdir /var/ftp/centos
[root@localhost ~]# mount /dev/cdrom /var/ftp/centos/
[root@localhost ~]# systemctl enable vsftpd --now
[root@localhost ~]# netstat -anptu | grep 21
tcp6 0 0 :::21 :::* LISTEN 8386/vsftpd
添加防火墙规则允许ftp规则通过防火墙
[root@localhost ~]# firewall-cmd --add-service=ftp --permanent
[root@localhost ~]# firewall-cmd --reload
搭建tftp服务器
[root@localhost ~]# yum -y install tftp-server
[root@localhost ~]# vim /etc/xinetd.d/tftp
##找到disable把yes改成no
disable = no
[root@localhost ~]# systemctl enable tftp --now
[root@localhost ~]# netstat -anptu | grep 69
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 698/rpcbind
tcp6 0 0 :::111 :::* LISTEN 698/rpcbind
udp 0 0 0.0.0.0:860 0.0.0.0:* 698/rpcbind
udp 0 0 0.0.0.0:111 0.0.0.0:* 698/rpcbind
udp6 0 0 :::860 :::* 698/rpcbind
udp6 0 0 :::69 :::* 1/systemd
udp6 0 0 :::111 :::* 698/rpcbind
添加防火墙规则允许tftp规则通过防火墙
[root@localhost ~]# firewall-cmd --add-service=tftp --permanent
[root@localhost ~]# firewall-cmd --reload
[root@localhost ~]# cd /media/cdrom/images/pxeboot/
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/
[root@localhost ~]# yum -y install syslinux
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
搭建dhcp服务
DHCP服务的PXE设置
next-server:指定TFTP服务器地址
filename:指定要下载的引导程序文件
[root@localhost ~]# yum -y install dhcp
[root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.100.0 netmask 255.255.255.0 { ##网段声明,作用于整个子网段
range 192.168.100.10 192.168.100.200; ##设置用于分配的 IP 地址池
option routers 192.168.100.254; ##设置默认网关地址,因没有路由器可不设置
option broadcast-address 192.168.100.255; ##广播地址
default-lease-time 600; ##IP地址的租约期
max-lease-time 7200;
next-server 192.168.100.1; ##指定TFTP服务器地址
filename "pxelinux.0"; ##指定要下载的PXE引导程序的文件
[root@localhost ~]# systemctl start dhcpd --now
[root@localhost ~]# netstat -anptu |grep dhcp
udp 0 0 0.0.0.0:67 0.0.0.0:* 9302/dhcpd
[root@localhost ~]# firewall-cmd --add-service=dhcp --permanent
[root@localhost ~]# firewall-cmd --reload
默认的启动菜单文件
创建/var/lib/tftpboot/pxelinux.cfg/default
[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost ~]# 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.100.1/centos ##指定ftp镜像存放路径
label linux text ##文本模式安装引导入口
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.100.1/centos
label linux rescue ##救援模式引导入口
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.100.1/centos7
验证PXE网络安装
注意:虚拟机实验中内存要调整为2G以上,否则报错!!
看到这就说明成功了
![](https://img-blog.csdnimg.cn/img_convert/7fd56aeebfba4197924c4a0ff4188d8d.png)
搭建kickstart无人值守
[root@localhost ~]# yum -y install system-config-kickstart
[root@localhost ~]# system-config-kickstart
默认语言设为“中文(简体)”
时区设为"Asia/Shanghai" .
设置root密码
高级配置中勾选“安装后重启”。
基本配置
![](https://img-blog.csdnimg.cn/img_convert/191cf32f60414a5f904df29fc8abda75.png)
选FTP
FTP服务器:192.168.100.1
FTP目录: centos
安装方法
![](https://img-blog.csdnimg.cn/img_convert/623558bf861a4041b4291d3b9fbec2cb.png)
“安装类型”:安装新引导装载程序
“安装选项”:在主引导记录(MBR)中安装引导装载程序
引导装载程序选项
![](https://img-blog.csdnimg.cn/img_convert/6f7a7fbe80d2477f9092bfa71145dd2c.png)
主引导记录:清除主引导记录
分区:删除所有现存分区
磁盘标签:初始化磁盘标签
布局:添加分区
挂载点:/boot,文件系统类型:xfs,固定大小:500M
文件系统类型:swap,固定大小:4096M
挂载点:/home,文件系统类型:xfs,固定大小:4096M
挂载点:/,文件系统类型:xfs,使用磁盘上全部未使用空间
![](https://img-blog.csdnimg.cn/img_convert/1afaefe7e6bb440cad9cd74794f08ba8.png)
网络配置
添加网络设备ens33
网络类型设为DHCP
![](https://img-blog.csdnimg.cn/img_convert/9e206a1c615f43fa890474b2ae8070fa.png)
防火墙配置
SElinux 禁用
防火墙禁用
![](https://img-blog.csdnimg.cn/img_convert/198bea2effac479997c2dc868a0f0890.png)
安装后脚本
rm -rf /etc/yum.repos.d/*
echo '[local]
name=local
baseurl=///mnt
enabled=1
gpgcheck=0' > /etc/yum.repos.d/yum.repo
[root@localhost ~]# cp ks.cfg /var/ftp/
[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
![](https://img-blog.csdnimg.cn/img_convert/d00f899cebda4cfcba7c7175e24c66fa.png)
验证自动安装
*虚拟机环境如果无法获得dhcp的ip,禁用VMware的dhcp服务
*将客户机以PXE方式引导
*之后会自动完成系统安装,并配置好软件仓库
*整个安装过程无需手动干预