PXE网络安装Linux系统

PXE简介

PXE(Preboot Execution Environment)预启动执行环境,也被称为预执行环境,提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。

PXE不是一种安装方式,是一种引导的方式。PXE方式要求安装的计算机中必须包含一个 支持PXE 的网卡,且主板支持网络引导,PXE 协议使计算机可以通过网络启动。

PXE协议分为 client 和 server 端,PXE client 在网卡Rom中,当计算机引导时,cpu通过加载bios映射到内存中的片段,然后检查计算机的健康状况(如cpu风扇,网卡等)继而把网卡Rom中的PXE client 调入内存引导执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行。

PXE 协议需要设置 DHCP 服务器 和 TFTP 服务器。DHCP 服务器用来给 PXE client分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的设置。在 PXE client 的 ROM 中,已经存在了 TFTP Client。

PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。一方面tftp可以达到32M,对于系统内核,引导程序等小文件,足以达到,另一方面tftp使用udp协议69号端口,速度也快足以满足要求。

具体实现过程如下图所示:
PXE网络安装Linux系统_第1张图片
PXE组件需要哪些服务

  • DHCP服务,分配IP地址,定位引导程
  • DNS服务,为客户机分配主机名
  • TFTP服务,提供引导程序下载
  • FTP服务(或http/nfs),提供yum安装源

客户机应具备的条件

  • 网卡ROM必须支持PXE协议
  • 主板支持网络启动

部署PXE环境具体步骤

Step1   安装并开启httpd服务

1.安装环境所需的 http服务、dhcp服务和kickstart自动安装系统工具:
PXE网络安装Linux系统_第2张图片
因为之前已经装好了,所以 Nothing to do 。

2.然后开启httpd服务,并设为开机自启;关闭防火墙firewalld服务:
PXE网络安装Linux系统_第3张图片

3.在 /var/www/html/ 目录下创建一个挂载镜像的目录 rhel7.3,再创建一个存放 kickstart 生成脚本的目录 ks:
在这里插入图片描述
4.然后将已有镜像挂载到 /var/www/html/rhel7.3 目录下,并将挂载命令写到 /etc/rc.d/rc.local 文件中实现开机自动挂载:
在这里插入图片描述
文件中增加内容:
在这里插入图片描述
保存并退出,然后给 /etc/rc.d/rc.local 文件增加执行权限:
在这里插入图片描述
Step2   利用kickstart生成自动安装的脚本

1.利用kickstart 自动安装工具生成脚本,具体步骤可以查看我的上一篇文章,点击此处查看生成安装脚本步骤。此处我们需要修改安装模式的配置,改为http安装。之前已经有一个配置好的脚本 ks.cfg ,我们可以直接对其进行修改然后再另存为,如下:
在这里插入图片描述
在安装模式选择处改为如下:
PXE网络安装Linux系统_第4张图片
然后可以在安装后执行的脚本处填写自动配置yum源的脚本,如下:
PXE网络安装Linux系统_第5张图片
其它配置不做修改,然后点击左上角File——>Save ,保存到之前新建的 /var/www/html/ks 目录下:
PXE网络安装Linux系统_第6张图片
可以打开浏览器,在网址中输入ip地址和脚本文件具体位置查看内容,如下:
PXE网络安装Linux系统_第7张图片
2.然后手动修改生成的脚本文件中的bug,添加要安装的软件:
PXE网络安装Linux系统_第8张图片
增加内容如下:
PXE网络安装Linux系统_第9张图片

Step3   dhcp服务的搭建

1.搭建dhcp服务,具体的搭建步骤可以查看我之前的搭建dhcp服务的文章,点击此处查看搭建dhcp服务步骤。最后开启dhcpd服务,查看dhcpd服务状态为开启状态:
PXE网络安装Linux系统_第10张图片2.修改dhcp的配置文件,在文件中添加服务器上 bootloader 文件的路径:
在这里插入图片描述
添加内容如下:
PXE网络安装Linux系统_第11张图片
注意:这里的filename是个相对路径,相对于 /tftpboot,所以filename如果指定成为"/tftpboot/pxelinux.0"会有问题
然后保存并退出,重启dhcp服务:
在这里插入图片描述

Step4   配置tftp服务器

1.首先安装提供PXE的syslinux,在此简单介绍下syslinux,它是一个功能强大的引导加载程序,而且兼容各种介质。更加确切地说:syslinux是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。
PXE网络安装Linux系统_第12张图片
2.再安装tftp服务,如下:
PXE网络安装Linux系统_第13张图片
安装成功:
在这里插入图片描述
然后开启tftp服务,并设为开机自启:
PXE网络安装Linux系统_第14张图片
3.然后将加载文件/usr/share/syslinux/pxelinux.0拷贝到/var/lib/tftpboot/中,使tftp协议引导加载文件pxelinux.0:
在这里插入图片描述
4.然后将挂载的镜像的目录下的isolinux/ 目录中的所有文件拷贝到/var/lib/tftpboot/中:
在这里插入图片描述
5.然后在/var/lib/tftpboot/目录下创建一个 pxelinux.cfg的目录,然后将挂载的镜像的目录下的isolinux/ 目录中的isolinux.cfg文件拷贝到pxelinux.cfg/default中。pxelinux.cfg/default是pxelinux的配置文件,pxelinux会以IP地址的16进制表示来搜索配置文件,如果没找到去除最低一位继续找。如果所有匹配都失败,就使用default文件。如下:
在这里插入图片描述

6.然后修改pxelinux的配置文件pxelinux.cfg/default :
PXE网络安装Linux系统_第15张图片
修改如下:
(1). 修改等待时间为5s:
在这里插入图片描述
(2). 可以修改安装界面大标题:
在这里插入图片描述
(3). 修改第一项为默认选项,并添加安装镜像源的路径,以及自动安装系统脚本:
PXE网络安装Linux系统_第16张图片因为该文件为只读文件,保存退出时后面要加 "! "

至此,PXE的环境就已经部署完成,下面进行测试。


PXE网络安装系统测试

找一个之前已经安装好的虚拟机来进行测试,双击要进行操作的虚拟机,打开虚拟机界面,然后点击上方的小灯泡,然后选择下面的 Boot Options 开机启动项,在右面的NIC网卡启动前进行勾选,再点击向上的箭头将网卡启动移至第一行,如下:
PXE网络安装Linux系统_第17张图片
最后点击右下角的Apply,就会出现下面提示,点击OK:
PXE网络安装Linux系统_第18张图片
然后关闭该虚拟机,再重新开启,该虚拟机就会从网卡启动,然后就会进入到安装界面了,界面会根据我们之前的设置进行相应的改变,安装界面如下:
PXE网络安装Linux系统_第19张图片
然后不需要进行任何的操作,等待5s之后就开始了自动安装系统,如下:
PXE网络安装Linux系统_第20张图片
那么PXE网络自动安装Linux系统就部署完成了!

你可能感兴趣的:(Linux,PXE简介,部署PXE环境具体步骤)