pxe原理
环境准备
window软件:VMware workstations
操作系统:图形化centos7
静态IP地址:10.10.1.10
网络模式:仅主机模式
pxe服务器软件:dhcp tftp-server vsftp system-config-kickstart
安装dhcp并配置
[root@localhost ~]# yum -y install dhcp
[root@localhost ~]# cat /etc/dhcp/dhcpd.conf
allow booting;
allow bootp;
ddns-update-style interim;
ignore client-updates;
subnet 10.10.1.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option domain-name-servers 10.10.1.10;
range dynamic-bootp 10.10.1.100 10.10.1.200;
default-lease-time 21600;
max-lease-time 43200;
next-server 10.10.1.10;
filename "pxelinux.0";
}
安装tftp并配置
[root@localhost ~]# yum install tftp-server
[root@localhost ~]# cat /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
安装syslinux并配置
[root@localhost ~]# yum install syslinux
[root@localhost ~]# cd /var/lib/tftpboot
[root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0 ./
[root@localhost tftpboot]# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} ./
[root@localhost tftpboot]# cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} ./
[root@localhost tftpboot]# mkdir pxelinux.cfg
[root@localhost tftpboot]# cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default ./
[root@localhost tftpboot]# cat pxelinux.cfg/default
default vesamenu.c32
timeout 100 # 设置进入默认选项的等待时间(单位ms)
…………省略…………
label linux
menu label ^Install CentOS Linux 7
menu default #设置Install CentOS Linux 7标签为默认选项(删除其他标签中设置的menu default)
kernel vmlinuz
# append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
append initrd=initrd.img inst.stage2=ftp://10.10.1.10 ks=ftp://10.10.1.10/pub/ks.cfg quiet #系统在ftp的根目录下,应答文件在ftp的pub目录下
…………省略…………
安装vsftpd并配置
[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# mount -o loop iso镜像名 挂载目录
[root@localhost ~]# cp -r 挂载目录 /var/ftp/
安装kickstart并配置
[root@localhost ~]# yum -y install system-config-kickstart
[root@localhost ~]# cat /etc/yum.repos.d/develop.repo #repo文件名可以任意
[development] #仓库名必须是development
name=development
baseurl=ftp://10.10.1.10
enable=1
gpgcheck=0
生成ks.cfg应答文件
方式一:
[root@localhost ~]# system-config-kickstart #执行kickstart,生成ks.cfg文件
将应答文件保存到/var/ftp/pub/下
方式二
复制用户家目录下的anaconda-ks.cfg文件,根据实际情况修改为自己的ks.cfg
cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
启动所有服务
systemctl start vsftpd tftp dhcpd #启动tftp之后,检查tftp和tftp.socket这两个服务,只要tftp.socket服务在运行且69端口为打开状态就行
systemctl enable vsftpd tftp dhcpd