PXE简介
许多情况下我们手动安装操作系统是不现实的,尤其是当数量较多的时候。这个时候就要借助其他的技术 了。PXE就是其中的一种。
PXE全称是:Preboot Excution Environment 预启动执行环境是由Intel公司研发的基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统 PXE可以引导和安装Windows,linux等多种操作系统,这里只说Linux不说Windows。
PXE的具体工作有些复杂,不过多介绍,有兴趣的可以自行百度,这里只说实现。以下全部基于虚拟机实现。VM14,Cent7.5
大体流程
1.环境准备
2.检查防火墙和SELinux的设置,确保都是关闭的
3.安装所需的必要软件包并开启对应的服务
4.准备安装源
5.准备自动应答文件,并放到可以被访问到的地方
6.配置DHCP服务并启动
7.将必要的文件复制到相关目录
8.修改启动菜单,以及一些其他的配置文件
8.启动测试
安装过程
记录下主机IP地址
将DHCP服务关闭
给服务器分配一个IP地址,地址建议为静态地址。配置文件如下:
TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.11.2 PREFIX=24 GATEWAY=192.168.11.1 NAME=ens33 DEVICE=ens33 ONBOOT=yes
检查服务器相关设置
确保SELinux和防火墙处于关闭状态。
将/etc/selinux/config文件中的SELINUX=xxx改为SELINUX=disabled并重启。
可以通过命令getenforce查看,如果是disabled或permissive即为关闭状态
执行以下两条命令确保关闭防火墙
systemctl stop firewalld systemctl disable firewalld
配置DHCP服务器
默认情况下DHCP服务在安装完成之后配置文件是空的,也因此DHCP服务必须进行一定的配置才可以启动,DHCP的服务配置文件路径是:/etc/dhcp/dhcpd.conf,通过一个示例来看一下配置文件的 格式
网段:服务器可以分配的地址的网段,可以指定多个
掩码:网段对应的掩码
默认租期:以秒为单位默认的IP地址的租期
最长租期:客户端可以请求一个租期,此项设定用于对此进行限制以秒为单位
地址池:服务器在可分配网段中可以分配的IP地址的范围
DNS:用于客户机从DHCP服务器获取的DNS地址
option domain-name-servers 114.114.114.114 default-lease-time 600; max-lease-time 7200; subnet 192.168.11.0 netmask 255.255.255.0 { range 192.168.11.3 192.168.11.124; }
对于一个DHCP服务器以上内容足够了,不过对于PXE还少了两个重要的选项,
next-server 192.168.11.2
filename "pxelinux.0"
next-server用来指定TFTP服务器的位置
filename用来指定要访问TFTP服务器上的哪个文件
option domain-name-servers 114.114.114.114 default-lease-time 600; max-lease-time 7200; subnet 192.168.11.0 netmask 255.255.255.0 { next-server 192.168.11.2; filename "pxelinux.0"; range 192.168.11.3 192.168.11.124; }
将相关文件复制到TFTP共享目录
TFTP的共享目录在/var/lib/tftpboot/下,考虑到灵活性依旧可以给不同版本的系统单独的目录
这里创建一个7的目录
复制光盘目录中isolinux下的initrd.img和vmlinuz到/var/lib/tftpboot/7目录下
在共享目录下创建一个名为pxelinux.cfg的文件夹并将光盘目录中isolinux下的isolinux.cfg复制到pxelinux.cfg目录下并且命名为default
将/usr/share/syslinux/menu.c32复制到/var/lib/tftpboot目录下,此文件是菜单背景文件
将/usr/share/syslinux/pxelinux.0复制到/var/lib/tftpboot目录下
修改default文件
default menu.c32 timeout 600 display boot.msg label linux menu label ^Install CentOS 7 kernel 7/vmlinuz append initrd=7/initrd.img ks=http://192.168.11.2/anaconda-ks.cfg label local menu default menu label Boot from ^local drive localboot 0xffff menu end
启动测试
将另一台虚拟机网卡同样配置为仅主机,网卡使用自动获取IP。
最后,确认安装源,以及应答文件可以访问,且default文件中路径配置正确。
确认防火墙以及SELinux处于关闭状态。
确认无误的话就可以开机进行测试了。GOOD LUCK