目录
PXE
PXE:Preboot eXecution Environment(预启动执行环境)
PXE是一个规范或标准,通过网络进行计算机引导的机制。PXE利用了现有的网络协议(例如 DHCP 和 TFTP)来实现其功能
PXE所需环境
- 一个PXE的客户端需要网卡具备引导(pxe)功能
- iso系统镜像文件(存放到FTP相应目录下)
- FTP(文件传输协议)
-
- 用于存放iso镜像文件
- DHCP(动态主机配置协议)
-
- 即使一个主机没有操作系统,也要分配一个IP地址,让该主机能够连接到FTP
- 一个主机的网卡把MAC地址广播发给dhcp,dhcp通过已知MAC地址,再通过 RARP 反向地址转换协议,分配IP地址
- TFTP(简单文件传输协议;Trivial File Transfer Protocol)
-
- 工作机制比FTP更精简,适合传输体量小的文件
- 在PXE过程中主要存放内核文件、初始化镜像文件、引导程序、引导配置文件(由安装介质在装机时存储到内存中)
开机过程
- 按下电源
- 开机自检(post)
- 按照bios预设(光驱、硬盘、优盘、网卡)进行引导
- 加载引导程序
- 加载初始化镜像文件
- 加载内核
- 加载系统文件
- 加载systemd(init)进程(守护进程)
- 生成进程树
部署PXE有人值守操作步骤
系统环境:装有桌面的CentOS 7系统
有人值守:开启需要批量装机的主机,手动配置系统参数
一. 配置环境
FTP
先使用Xshell连接操作
修改仓库配置文件
yum仓库的唯一标识必须使用 development,保存并退出
为了方便实验关闭防火墙、内核安全机制,并且安装 FTP 的服务端软件包;yum -y install ftp 是安装FTP服务的客户端软件包
进入 ftp 服务的目录,创建一个存放镜像文件的目录,拷贝光盘目录下所有文件到 /var/ftp/centos7 目录下,因为拷贝内容有目录所以加-r,f:强制覆盖
开启FTP服务并设为开机自启
DHCP和TFTP
安装dhcp服务软件包
因为在配置DHCP时需要指定TFTP相关数据所以也把TFTP安装出来
编辑TFTP配置文件
不禁用TFTP服务,修改disable为no,保存并退出
因为TFTP受xinetd(超级服务守护进程)监听管理。如果没有访问,xinetd就让TFTP就休眠,如果有访问,xinetd就把TFTP唤醒
启动TFTP服务,顺便也可以设置开机自启
cd到pxeboot目录下,可以看到放置到TFTP的PXE远程装机的文件(初始化镜像文件、内核文件)
- initrd.img:初始化镜像文件,帮系统找到硬盘
- vmlinuz:内核文件,启动各种进程
- TRANS.TBL:当前目录下有什么文件,记录在本文件中,光盘目录下的每个目录都有一个该文件
拷贝所需的两个文件到TFTP服务的根目录下
有了初始化镜像文件和内核文件还需要引导程序,所以安装所需软件包
cd到引导程序的安装目录
拷贝引导程序到TFTP的目录下
为了指导该引导程序工作,需要指定客户端的引导选项;创建一个目录,在该目录下创建一个配置文件
将下方代码添加到该文件中
default auto # 默认调用auto
# prompt:是否等待用户录入命令并回车
# 如果为1:用户可以手动选择不同的引导选项。
# 如果为0:用户无法手动输入选项或修改引导参数。
prompt 1
label auto
kernel vmlinuz # 指定要加载的内核文件
# 指定安装源为FTP上的centos7目录,适合无人值守的安装场景
append initrd=initrd.img method=ftp://192.168.10.201/centos7
label linux text
kernel vmlinuz
# 安装时使用文本模式,适合手动操作安装
append text initrd=initrd.img method=ftp://192.168.10.201/centos7
label linux rescue
kernel vmlinuz
# 使用 rescue 参数启动救援模式
append rescue initrd=initrd.img method=ftp://192.168.10.201/centos7
编辑dhcp配置文件
添加下方代码到该文件
启动dhcp服务
二. 测试
新建虚拟机
随便找一个目录存放该虚拟机
由于该主机还没有安装系统,也就说明硬盘没有分区,所以在安装时所有文件都放置到内存中,所以这里要把内存设置为2GB以上
完成,启动该虚拟机
提示无法连接虚拟设备,选择是
启动后的界面显示了很多信息
直接回车,系统会从配置的TFTP下载初始化镜像文件和内核文件
下载完所需文件后,会自动引导系统安装。
进入系统安装界面
值得一提的是,在使用PXE安装时,在自定义系统选项的安装源会自动寻找到FTP下载源的位置
至此,部署有人值守实验结束
部署无人值守操作步骤
无人值守:只用开启需要批量装机的主机
在有人值守环境配置的基础上,还需要一个应答文件,包含了安装操作系统所需的各种参数和配置选项,使用该文件还需要较高的带宽
这些参数可以指定如何分区硬盘、选择安装的软件包、设置管理员密码、配置网络设置等。通过预先配置好这些选项,可以实现在没有用户交互的情况下完成整个安装过程。
一. 环境配置
安装所需软件包
在安装过Xmanager的前提下,输入system-config-kickstart命令
调出应答程序的图形化管理界面,如果你的操作系统没有桌面,应答程序的图形化管理界面是调不出来的
现在就可以配置装机时的系统参数了
添加分区
创建3个分区
需要注意的是,最后的 / 根分区需要选择使用磁盘上全部未用空间,也会在分区表中显示大小为1
修改防火墙配置
如果软件包选择的界面是空白的就要检查仓库文件的仓库标识是否为development
假如要安装一个带桌面的系统,勾选如下选项
去相应命令检查该文件是否生成
修改引导程序配置文件,修改prompt为0,并指定应答文件位置
二. 测试
像有人值守的操作步骤一样新建虚拟机
进入系统不需要进行人为操作,自动安装好系统。至此实验结束
总结
1. 实现PXE远程装机所需要的组件
-
- iso中的系统文件(放到FTP中)
- FTP
- DHCP(RARP为客户端分配地址;指定TFTP的IP;指定引导程序pxelinux.0)
- TFTP(内核文件、初始化镜像文件、引导程序、引导配置文件)
2. PXE网络引导安装过程
- 开机后,BIOS按预设顺序选择PXE作为启动选项
- 主机通过DHCP协议请求获取IP地址和其他网络配置信息
- DHCP服务器响应并分配IP地址后,主机使用TFTP协议从PXE服务器下载PXE引导程序(pxelinux.0)
- 主机加载PXE引导程序。该引导程序根据预定规则寻找配置文件(pxelinux.cfg/default),由该配置文件决定如何继续引导操作系统安装过程
- 根据引导程序的配置文件,接着从TFTP服务器下载初始化镜像文件(Initrd.img)和内核文件(vmlinuz)
- 引导程序将下载的内核文件和初始化镜像文件加载到计算机的内存中,并在内存中启动安装程序