PXE
重装过电脑操作系统的同学大概知道操作系统的安装流程如下:
- 在 BIOS 中将系统设置为光驱/USB开机优先模式
- 以DVD或者 U 盘中的操作系统开机,进入到装机界面
- 完成一系列的装机初始化,比如磁盘分区、语言选择等
- 重启进入新安装的操作系统
以上过程必须要手工才能完成,安装一台电脑还可以,但如果要大批量安装一批机器就不适用了。为此,Intel 公司研发了 PXE(Pre-boot Execution Environment) 技术,可以通过网络的方式批量安装操作系统。
PXE 基于 C/S 架构,分为PXE client 和PXE server,其中 PXE client 为要安装操作系统的机器,PXE server 用来提供安装操作系统必须的镜像等信息。要想实现从网络上安装操作系统,必须要解决如下几个问题:
- 因为还没有安装操作系统,此时并不存在 ip 地址,在装机之前必须要获取到一个 ip 地址。
- 安装操作系统需要的 boot loader 和操作系统镜像如何获取。
为了解决 PXE client 的 ip 地址问题,PXE 中采用了 DHCP 协议来给 client 分配 ip 地址,这就要求 PXE server 必须要运行 dhcp server。为了解决 PXE server 可以提供 boot loader 和操作系统基线,PXE server 通过 tftp 协议的方式对 client 提供服务。
client 端需要 DHCP client 和 tftp client 的功能,为此 PXE 协议中将该功能以硬件的方式内置在网卡 ROM 中。当启动时,BIOS 会加载内置在网卡中的 ROM,从而该机器具备了 DHCP client 和 tftp client 的功能。
优点:
- 规模化:可以批量实现多台服务器的安装
- 自动化:可以自动化安装
- 远程实现:不用本地的光盘来安装 OS
客户机的前提条件:
- 网络必须要支持 PXE 协议
- 主板支持网络引导,一般在 BIOS 中可以配置
服务端:
- DHCP 服务,用来给客户机分配 ip 地址
- TFTP 服务:用来提供操作系统文件的下载