文章目录
[隐藏]

一、概述

PXE(Preboot eXecution Environment)预启动执行环境是Intel公司提出的一种使用网络接口启动计算机的机制,能够代替本地数据存储设备(光盘、硬盘、USB设备)进行安装操作系统。目前,PXE启动已成为一种固件标准,大部分服务器BIOS都支持PXE启动,特别适合大规模集群批量、自动化、无人值守方式安装操作系统。

二、PXE启动过程

PXE工作基于Client/Server 的网络模式,安装操作系统的启动过程如下:客户端(未安装操作系统的计算机)设置BIOS开启网卡启动,然后会要求DHCP服务器分配 IP 地址,DHCP服务器处理返回分配的IP地址外,还返回预设网关、TFTP服务器地址及引导程序Bootstrap(该文件应该是一种由PXE启动规范规定的固定格式的可执行文件,类似于开机启动项的源码文件,Linux系统中为pxelinux.0),并由此支持来自网络的操作系统的启动过程,然后,终端通过 TFTP(trivial file transfer protocol)或MTFTP (multicast trivial file transfer protocol)协议下载Bootstrap的配置文件(pxelinux.cfg/default),客户端读取收到的读配置文件,根据其中内容,再次请求TFTP传送内核映像文件(vmlinuz)和系统启动文件(initrd.img)。完成后开始启动内核,内核程序读取Bootstrap的配置文件,通过网络获取操作系统自动安装脚本,并通过网络服务(NFS/FTP/HTTP)获得系统所需安装文件,按照自动安装脚本的配置进行安装。

假设服务器端同时提供DHCP、TFTP和安装源下载服务,那么PXE启动过程如如所示:

三、PXE安装CentOS 7.3系统

首先配置好服务器端,假设该服务器IP为192.168.2.22,安装DHCP、TFTP和HTTP服务。过程如下:

安装syslinux system-config-kickstart,用户获取pxelinux.0引导程序和操作系统配置文件

配置DHCP服务

配置TFTP服务

配置Apache服务提供安装源文件的HTTP下载服务

## 移除并备份conf文件,目的不显示测试页面

安装源文件文件准备,需要将系统安装盘挂载到Apache根目录

准备操作系统安装选项配置文件ks.cfg,拷贝到Apache根目录,
说明:kickstart配置文件保存操作系统时的当前系统配置,包括时区、安装位置、系统分区等信息,操作系统安装成功后会自动保存ks文件:/root/anaconda-ks.cfg. 可以直接把这个文件放在http或tftp服务器下。只需将安装源从cdrom修改为安装源文件HTTP下载连接即可即可,这里提供一份CentOS 7.3的ks文件,注意不同版本的操作系统的ks文件可能不同,详情请参考这里

给ks.cfg文件增加访问权限,并测试是否可以访问

浏览器访问http://192.168.2.22/ks.cfg
查看目录结构

准备Bootstrap引导程序(pxelinux.0)、引导配置文件(pxelinux.cfg/default)、内核映像文件(vmlinuz)和系统启动文件(initrd.img)等等

查看文档结构

修改引导配置文件,将安装选项中的 “inst.stage2=hd:LABEL=CentOS\x207\x20x86_64”改为“inst.ks=http://192.168.2.22/ks.cfg”

配置完成后,关闭防火墙服务,并启动服务器上的各项服务。

测试安装:
查看服务端口是否正常 tcp-80、udp-67、udp-69

查看dhcp地址分配情况

如果自动安装成功,会发现安装位置改为网络安装位置,如下:

  如果安装过程出现“/dev/root does not exist”不存在的错误,请检查pxelinux.cfg/default中引导位置是否修改。

  参考引文:

https://allgo.cc/2015/04/29/pxe%E7%BD%91%E7%BB%9C%E5%AE%89%E8%A3%85centos7-1

http://jzrobbie.blog.51cto.com/6535329/1705076

https://access.redhat.com/documentation/zh-CN/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/chap-installing-using-anaconda-x86.html