PXE概述
PXE (Preboot eXcution Environ
- 预启动执行环境,在操作系统之前运行
服务端
- 运行DHCP服务,用来分配地址、定位引导程序
- 运行TFTP服务,提供引导程序下载
客户端
- 网卡支持PXE协议
- 主板支持网络引导
PEX装机基本部署过程
- 准备CentOS7安装源(YUM仓库)
- 安装并启用TFTP服务
- 提供Linux内核、PXE引导程序等
- 安装并启用DHCP服务
- 配置启动菜单
PEX实战部署
一、安装tftp服务
1、安装tftp
[root@pxe ~]# yum -y install tftp-server.x86_64
2、修改配置文件
[root@pxe ~]# vim /etc/xinetd.d/tftp
disable = no #yes修改为no
server_args = -s /var/lib/tftpboot -c #增加-c
二、安装dhcp服务
1、安装dhcp服务
[root@pxe ~]# rpm -ivh /mnt/Packages/dhcp-4.2.5-58.el7.centos.x86_64.rpm
2、设置dhcp配置文件(设置的dhcp网段需要和自己网卡在一个网段)
[root@pxe ~]# vim /etc/dhcp/dhcpd.conf
ddns-update-style none;
next-server 20.0.0.10;
filename "pxelinux.0";
subnet 20.0.0.0 netmask 255.255.255.0 { #设置dhcp网段和子网掩码
range 20.0.0.100 20.0.0.200; #设置dhcp地址池范围
option routers 20.0.0.10; #设置网关
option domain-name-servers 20.0.0.10; #dns服务器IP地址
}
3、启动dhcp服务
[root@pxe ~]# systemctl start dhcpd
4、查看启动进程
[root@pxe ~]# netstat -anptu|grep dhcpd
三、安装ftp服务
1、安装ftp服务
[root@pxe ~]# yum -y install vsftpd.x86_64
2、挂载目录
[root@pxe ~]# mount /dev/cdrom /var/ftp/pub/
四、安装syslinux
1、安装syslinux
[root@pxe ~]# yum -y install syslinux
2、拷贝系统文件
[root@pxe ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@pxe ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@pxe ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #启动菜单
[root@pxe ~]# cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/ #linux引导加载模块
[root@pxe ~]# cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/ #压缩内核
[root@pxe ~]# cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot/ #图形化启动菜单
3、修改配置文件
[root@pxe ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
清空配置添加如下设置
default auto
prompt 0
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://20.0.0.10/pub ks=ftp://20.0.0.10/ks.cfg
四、安装kickstart工具
1、安装kickstart工具
[root@pxe ~]# yum -y install system-config-kickstart.noarch
2、到centos 7服务器里 应用程序-----》系统工具-------》-----------》kickstart
右上角文件保持到到root目录下
3、编辑刚刚设置文件的文件
[root@pxe ~]# vim ks.cfg
在文件末尾加入如下设置
%packages
@^gnome-desktop-environment
@backup-client
@base
@compat-libraries
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-apps
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-applications
@internet-browser
@java-platform
@legacy-x
@multimedia
@network-file-system-client
@networkmanager-submodules
@office-suite
@print-client
@security-tools
@smart-card
@x11
chrony
kexec-tools
%end
4、拷贝刚刚编辑的ks.cfg文件
[root@pxe ~]# cp ks.cfg /var/ftp/
最后一把开机按F2
shell一键部署pxe服务器
#!/bin/bash
#一、安装tftp服务
#1、安装tftp
yum -y install tftp-server.x86_64
#2、修改配置文件
sed -i -e "/disable/s/yes/no/g" /etc/xinetd.d/tftp
sed -i -e "/server_args/s/tftpboot/tftpboot -c" /etc/xinetd.d/tftp
#二、安装dhcp服务
#1、安装dhcp服务
rpm -ivh /mnt/Packages/dhcp-4.2.5-58.el7.centos.x86_64.rpm
#2、设置dhcp配置文件(设置的dhcp网段需要和自己网卡在一个网段)
echo 'ddns-update-style none;
next-server 20.0.0.10;
filename "pxelinux.0";
subnet 20.0.0.0 netmask 255.255.255.0 { #设置dhcp网段和子网掩码
range 20.0.0.100 20.0.0.200; #设置dhcp地址池范围
option routers 20.0.0.10; #设置网关
option domain-name-servers 20.0.0.10; #dns服务器IP地址
}'>/etc/dhcp/dhcpd.conf
#3、启动dhcp服务
systemctl start dhcpd
#三、安装ftp服务
#1、安装ftp服务
yum -y install vsftpd.x86_64
#2、复制装机需要文件
cp -r /mnt/* /var/ftp/pub/
#四、安装syslinux
#1、安装syslinux
yum -y install syslinux
#2、拷贝系统文件
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #启动菜单
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/ #linux引导加载模块
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/ #压缩内核
cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot/ #图形化启动菜单
#3、修改配置文件
echo "default auto
prompt 0
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://20.0.0.10/pub ks=ftp://20.0.0.10/ks.cfg">/var/lib/tftpboot/pxelinux.cfg/default
#1、安装kickstart工具
echo "#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$8voJ3802$2BtqZIIVT9wadYQM9PVZj.
# Use network installation
url --url="ftp://20.0.0.10/pub"
# System language
lang zh_CN
# Firewall configuration
firewall --disabled
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# SELinux configuration
selinux --disabled
# Network information
network --bootproto=dhcp --device=ens33
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai --isUtc
# System bootloader configuration
bootloader --location=none
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all
# Disk partitioning information
part /boot --fstype="xfs" --size=500
part /home --fstype="xfs" --size=4096
part / --fstype="xfs" --grow --size=1
%packages
@^gnome-desktop-environment
@backup-client
@base
@compat-libraries
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-apps
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-applications
@internet-browser
@java-platform
@legacy-x
@multimedia
@network-file-system-client
@networkmanager-submodules
@office-suite
@print-client
@security-tools
@smart-card
@x11
chrony
kexec-tools
%end">/var/ftp/ks.cfg
systemctl restart dhcpd
systemctl restart vsftpd
systemctl restart tftp
PXE装机不成功可能出现的原因
1、TFPT错误
解决:
- 查看/etc/dhcp/dhcpd.conf中的filename “pxelinux.0”;
- 查看/拷贝到/var/lib/tftp文件的pxelinux.0名称
- 两者名称是否一致
2、boot错误
查看修改过的/var/lib/tftpboot/pxelinux.cfg/default文件里面的内容是否正确