PXE(preboot execute environment,预启动执行环境)工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。
本方案采用(pxe+dhcp+tftp+ftp)进行配置,配置信息来源于linux公社的zaa47,链接:http://www.linuxidc.com/Linux/2017-07/145399.htm
测试环境:window10+virtualbox5.1.22+centos7.3
1.关闭防火墙和selinux
vim /etc/selinux/config # 将SELINUX=enforcing改为disabled并重启
systemctl stop firewalld # 关闭防火墙
systemctl disable firewalld #永久关闭firewalld
sestatus # 查询selinux状态
systemctl status firewalld #查询防火墙状态
2.yum准备
mount /dev/cdrom /media/cdrom #确保将centos镜像分配到虚拟机,且新建了目录/media/cdrom
#隐藏其他repo配置文件,自定义repo文件,使用本地yum源,前一步挂载的镜像
将/etc/yum.repo.d下的所有文件移动到当前目录的新文件夹bak下,新建my.repo,内容如下
[development] <--注意:这里一定要写development
name=my-centos7-dvd
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0
3.安装并配置dhcp服务
yum -y install dhcp
vim /etc/dhcp/dhcpd.conf 内容如下:
subnet 192.168.56.0 netmask 255.255.255.0 {
range 192.168.56.10 192.168.56.20; # 用于分配的ip地址
default-lease-time 600; # IP地址租约
max-lease-time 7200;
filename "pxelinux.0"; #指定引导文件
next-server 192.168.56.14; # tftp服务器
}
#如果要为指定MAC地址赋予指定IP,去掉前面的range,否则不需要以下内容,
host centos7 { #主机名为centos7
hardware ethernet 08:00:27:5e:04:27; #MAC地址是08:...:27的网卡
fixed-address 192.168.56.15; #分配给它192.168.56.15的IP,
}
systemctl start dhcp
4.安装并配置tftp服务器
yum -y install tftp-server
vim /etc/xinetd.d/tftp
disable = yes # 将该项的yes改为no
systemctl start tftp.socket
systemctl start tftp.service
5.ftp服务准备(当然也可以用http,nfs等)
yum install -y vsftpd
systemctl start vsftpd
6.启动文件准备
#准备pxelinux.0
yum -y install syslinux #安装该服务可以产生pxelinux.0,然后将其复制到指定目录
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
#准备其他内核文件
cp -rf /media/cdrom/isolinux/* /var/lib/tftpboot/ # 将光盘镜像isolinux下的所有文件拷贝到指定目录
mkdir /var/lib/tftpboot/pxelinux.cfg
mv /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
cd /var/lib/tftpboot/pxelinux.cfg
vim default # 按照如下方式修改
timeout 600 #将该项值修改为60,即6秒
找到如下两项
label linux
menu label ^Install CentOS Linux 7
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
label check
menu label Test this ^media & install CentOS Linux 7
menu default
kernel vmlinuz
append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet
将这两项删掉,使用如下设置
label linux
menu label ^Install CentOS Linux 7 by kickstart
menu default
kernel vmlinuz
append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.ks=ftp://192.168.56.14/ks.cfg
#default改完后便准备安装配置文件ks.cfg
yum -y install system-config-kickstart # 安装system-config-kickstart,用于产生ks.cfg安装配置文件
system-config-kickstart # 启动程序,图形化配置
注意
1.不要勾选安装后重启,不然会重新进行pxe安装
2.必须安装引导装载程序
3.软件选择上要保证正确完整,不然无法安装 。如果其他没问题,在anaconda上提示/run/install/ks.cfg is missing,就是这里软件不全,可以复制使用/root/anaconda-ks.cfg文件中%packages到%end中的内容
4.在末尾添加
%addon com_RedHat_kdump --disable --reserve-mb='auto'
%end
7.客户端准备
如果是真实机器,确保在bios中开启了pxe和虚拟化等功能,并且将pxe设为首选
如果是虚拟机,在设置中将网络启动设置为首选,硬盘,光盘等其次。确保虚拟机可以访问你的部署机