PXE的工作过程:
1. PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;
2. DHCP 服务器返回分配给客户机的IP 以及PXE文件的放置位置(该文件一般是放在一台TFTP服务器上) ;
3. PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件;
4. PXE Client 取得pxelinux.0 文件后之执行该文件;
5. 根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统 ;
6.进入安装画面, 此时可以通过选择HTTP、FTP、NFS 方式之一进行安装;. **
实验环境:
1.centos7
2.搭建FTP服务器
3.搭建DHCP服务器
4.搭建TFTP服务器
具体操作:
搭建FTP服务器
第一步:安装TFP
yum - -disablerepo=* - -enablerepo=c7-media install vsftpd -y *#本地安装指定yum源c7-media
第二步:将挂在光盘复制到FTP目录下
cp -r /media/cdrom/ /var/ftp/ &
第三步:配置.cfg文件并复制到FTP目录下
#安装system-config-kickstart
yum –disablerepo=* –enablerepo=c7-media install system-config-kickstart -y
基本配置:时区选上海 ,设置root密码,选择在文本模式下安装
安装方法:使用FTP服务器根目录下安装
引导程序选项:使用静默安装
设置分区
网络配置
验证
防火墙
图形界面
软件包安装(根据个人所需)
保存到root目录下,将保存的ks.cfg复制到ftp目录下
cp -r ks.cfg /var/ftp
第四步:启动TFTP
service vsftpd start
systemctl start vsftpd
搭建DHCP服务器
第一步:安装DHCP
yum - -disablerepo=* - -enablerepo=c7-media install dhcp -y
第二步:修改DHCP配置文件
vim /etc/dhcp/dhcpd.conf
**subnet 192.168.142.0 netmask 255.255.255.0 {
range 192.168.142.2 192.168.142.99;
next-server 192.168.142.200;
filename “pxelinux.0”;
} #修改分配地址的范围**
第三步:启动dhcp
service dhcpd start
systemctl start dhcp
搭建TFTP服务器
第一步:安装TFTP
yum install tftp-server
第二步:将TFTP打开
vim /etc/xinetd.d/tftp
#将disable改为no
第三步:将pxelinuz.0和内核复制到TFTP下载目录中
cp /media/cdrom/images/pxeboot/vmlinuz /var/lib/tftpboot/
cp /media/cdrom/images/pxeboot/initrd.img /var/lib/tftpboot/
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
#在TFTP下载目录创建pxelinux.cfg
cp /media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
#修改编辑default文件
vim default1 default linux
2 timeout 6
3
4 label linux
5 menu label ^Install CentOS 7
6 kernel vmlinuz
7 append initrd=initrd.img ks=ftp://192.168.142.200/ks.cfg ** #指定安装树,其余代码全部删除
第四步:启动tftp
service tftp.socket start
systemctl start tftp.socket
后续处理:
主机名区分以及网关设置
第一步:dhcp配置文件内
vim /etc/dhcp/dhcpd.conf
**subnet 192.168.142.0 netmask 255.255.255.0 {
range 192.168.142.2 192.168.142.99;
next-server 192.168.142.200;
filename “pxelinux.0”;
option routers 192.168.142.1; #分配网关
}
第二步:重新生成ks.cfg文件
以IP地址主机号命名
IP=ifconfig |grep inet |head -n 1 | awk '{print $2}'` #主机的IP地址
B=${IP##*.} #主机号
gateway=`route -n | grep -i ug | awk '{print $2}'` #网关
mask=`ifconfig | grep -i netmask |head -n 1 |awk '{print $4}'` #子网掩码
echo "node$B.a.com" > /etc/hostname
echo -e "DEVICE=ens33\nONBOOT=yes\nBOOTPROTO=static\nIPADDR=192.168.142.$B\nNETMASK=$mask\nGATEWAY=$gateway" > /etc/sysconfig/network-scripts/ifcfg-ens33
插入ks.cfg文件中
生成ks.cfg文件并复制到ftp目录下
cp -r ks.cfg /var/ftp