要安装一个操作系统,首先要理解系统的启动引导过程。要有这么几项,引导文件-比如硬盘的MBR,引导菜单-grub,虚拟系统镜像文件,操作系统内核文件,最后是各种安装包。那么怎么通过pxe来引导操作系统实现安装呢?其实支持pxe安装的网卡,内置了tftp客户端及dhcp客户端。首先从dhcp获取ip地址,同时dhcp服务器会告诉来访者通过pxe启动需要的引导文件名称及tftp服务器的IP。继而主机找到tftp服务器获取pxelinux.0引导文件,menu.c32菜单样式文件及default菜单配置文件。到这一步就可以看到启动菜单项了,接下来需要根据用户选择来加载相对应的虚拟系统镜像加载启动内核。所以tftp服务器还要有对应的initrd.img及vmlinuz内核文件。由于tftp不支持大文件,所以各种安装包及驱动要从http服务器获取。因此还要配置http服务器,挂载对应的系统iso镜像文件。那么下面来详细说明实现步骤。
1 前置条件,关闭防火墙,关闭selinu,时间同步。在此基础上安装dhcp服务
1.1 配置其中个网卡为规划的网段地址
```
[root@main html]#cat /etc/sysconfig/network-scripts/ifcfg-ens37
DEVICE=ens37
NAME=ens37
PREFIX=24
IPADDR=10.10.10.254
BOOTPROTO=none
ONBOOT=yes
```
1.1.2 运行安装脚本,配置dhcpd配置文件,并启动dhcpd服务
```
#!/bin/bash
##DHCP ------------------------------------
##install dhcp,before start this service,be sure you have this subnet ip
yum install dhcp -y
Subnet="10.10.10.0"
NetMask="255.255.255.0"
Range="10.10.10.2 10.10.10.200"
Router="10.10.10.1"
Search="ruitais.com"
NameServer="114.114.114.114,180.76.76.76"
cat /dev/null > /etc/dhcp/dhcpd.conf
cat > /etc/dhcp/dhcpd.conf << EOF
#day=86400s
default-lease-time 86400;
max-lease-time 864000;
option domain-name "$Search";
option domain-name-servers $name-servers;
subnet $Subnet netmask $NetMask {
range $Range;
option routers $Router;
filename "pxelinux.0"; ##配置pxe引导的文件名,告诉每个来获取ip的主机
next-server 10.10.10.254; ##配置pxe引导的tftp地址,告诉每个来访的主机
}
EOF
systemctl start dhcpd.service
systemctl enable dhcpd.service
```
2 配置http服务器,yum源,及应该文件
2.1 安装yum install httpd -y
2.2 复制安装光盘镜像至指定目录,并挂载至http服务根下对应目录。