首先呢要先介绍一下PXE

PXE(preboot execute environment 预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTPtrivial file transfer protocol)或MTFTP(multicasttrivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(即客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,

如:Windows95/98/2000/windows2003/windows2008/win7/win8,linux等。

表现形式呢:

PXE最直接的表现是,在网络环境下工作站可以省去硬盘,但又不是通常所说的无盘站的概念,因为使用该技术的PC在网络方式下的运行速度要比有盘PC3倍以上。当然使用PXEPC也不是传统意义上的TERMINAL终端,因为使用了PXEPC并不消耗服务器的CPURAM等资源,故服务器的硬件要求极低。


实现这样一种功能呢,就像是有一个本地服务器端 ,上面首先要有server等安装文件、各种网络服务器、dhcp servertftp server (里面还应有引导文件、内核和驱动)等;然后才能去公共客户端连接、找到这些文件后而进行自动安装。

PXE自动安装的原理:

当计算机引导时,BIOS PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。

就是客户端要发DHCP 的请求;所以就有dhcp 来提供IP 地址以及提供tftp的地址;而Tftp又是干什么的呢?它里面包括引导文件、内核文件驱动所以客户端发一个广播之后、服务器呢收到广播会把地址给客户端,这样客户端就得到了 IP地址、并且也会把tftp的服务器地址一并发过来,此时作为客户带来说,已经知道了ip地址、以及tftp文件位置了,所以客户端就可以去访问tftp了,通过tftp里面的引导文件、然后加载内核加载驱动,然后就进行了anaconda安装,(他安装的时候总是会需要很大的一堆参数,比如分区 、 SElinux 、防火墙和一些硬件设备),而为了避免交互式;通过ks.cfg来指明anaconda如何安装。这样就可以实现基于网络的自动安装了。

走一遍大致过程:

首先呢先把光驱挂载起来;mount /dev/cdrom /mnt/cdrom;

在去安装一些服务器: vsftpd   dhcp  服务器;然后启动

并且设置成开机能够自动引导;执行指令 chkconfig vsftpd on

PXE 自动安装 原理及过程_PXE自动安装原理


然后在对DHCP 做一些相关的配置;输入 /etc/dhcp.conf 发现进入的 是这样:

PXE 自动安装 原理及过程_PXE自动安装原理_02

不急 ,此时 我们可以看到上面 see 后面有个路径 在输入进入:对hdcp进行设置:


PXE 自动安装 原理及过程_PXE自动安装原理_03

这是设置后的 、对比一下 啦:

PXE 自动安装 原理及过程_PXE自动安装原理_04


设置完成之后在重新 启动,同样的vsftp设置为开机自动引导模式(图 15

PXE 自动安装 原理及过程_PXE自动安装原理_05


因为还要满足它是一个 tftp 的服务器;(里面主要放置网络引导时候的主要引导文件;以及内核驱动;)所以再安装 TFTP 服务:

PXE 自动安装 原理及过程_PXE自动安装原理_06


所以这里就要把自己的机器构建成tftpserver

有这样一个文件 /etc/xinet.d/tftp  它是依赖于超级守护进程的一个、然后进行编辑:

可以更改或者添加很多的参数在里面、根据不同的需求进行设置;

PXE 自动安装 原理及过程_PXE自动安装原理_07

更改完成之后还要重新进行启动service xinetd restart;;其实最后还要查看一下会不会有什么的错误;

执行指令 tail –f /var/log/messages 是查看一下日志文件有什么不同没 :

PXE 自动安装 原理及过程_PXE自动安装原理_08


每有服务器访问 都要去了解 它访问的的根目录下是在哪里我们知道 ftp 的根目录是在 /var/ftp ;那么 tftp  服务器的目录呢、我们切换到根目录下下看看;就是 tftpboot 目录就是了;所以就可以那些通过网络引导的引导文件、包括内核和一些驱动都放在这个服务器的根目录下下面;所以在切换到这个tftpboot目录下。然后还需要拷贝这一一些文件(驱动 和 内核文件):

PXE 自动安装 原理及过程_PXE自动安装原理_09


但是光有这些还不够、这些仅仅是说明了有驱动文件和内核文件、还是少一一个引导文件

所以还要找引导文件: /usr/lib/syslinux/pxelinux.0 ./     还需要把它也拷贝过来:

PXE 自动安装 原理及过程_PXE自动安装原理_10


拷贝过去我们查看 有内核文件驱动文件引导文件、但是这个引导文件需要我们配置的;因为在做引导的时候需要设置一些参数;这个配置文件应该在哪、所以此刻就需要在这个目录下新建一个

Mkdir pxelinux.Cfg文件;然后把 配置文件放在这个新建的pxelinux.cfg文件中去就可以了:

PXE 自动安装 原理及过程_PXE自动安装原理_11

创建好了之后、接下来找一下引导文件下的配置文件:

PXE 自动安装 原理及过程_PXE自动安装原理_12


然后再里面开始设置参数:这里的重点就是需要添加一个ks.cfg文件;因为这个文件是anaconda 安装是通过 ks.cfg 来指明的;(这里还没有做ks.cfg  等下后面会利用一个软件 来生成)


PXE 自动安装 原理及过程_PXE自动安装原理_13

至此 tftp 的服务器已经做好了


因为我们知道 TFTP 启动的时候它会发HDCP 的广播;它需要告诉客户端 tftp 服务器的地址呢;所以就要在这里改变 dhcp 服务器的配置文档;所以 找到/etc/dhcpd.conf  再来做出一些更改:

PXE 自动安装 原理及过程_PXE自动安装原理_14


看看更改后 :

PXE 自动安装 原理及过程_PXE自动安装原理_15


在tftpboot 下看看 :有引导文件、配置文件 、内核 、 驱动,然后在把安装文件拷贝进去;也就是在光盘上的所有安装文件;

PXE 自动安装 原理及过程_PXE自动安装原理_16


然后呢  在来设置一下 本地YUm;(PXE 网络自动安装也好似 对tftp server的访问)

PXE 自动安装 原理及过程_PXE自动安装原理_17

更改为本地Yum  ,同时设置四个库文件:

PXE 自动安装 原理及过程_PXE自动安装原理_18

设置过程 :

PXE 自动安装 原理及过程_PXE自动安装原理_19

然后在安装个软件包指令:

PXE 自动安装 原理及过程_PXE自动安装原理_20


再执行指令 system-config-kickstart ; 会出现这样的界面 ;按需要和要求开始设置:

执行后出现一个配置网络信息的图形配置界面 )设置完成后就保存成ks.cfg文件。这就是 之前说的ks.cfg文件、就这样做出来 ;(如果可以你还可以自己编译)

PXE 自动安装 原理及过程_PXE自动安装原理_21

PXE 自动安装 原理及过程_PXE自动安装原理_22

PXE 自动安装 原理及过程_PXE自动安装原理_23

PXE 自动安装 原理及过程_PXE自动安装原理_24

PXE 自动安装 原理及过程_PXE自动安装原理_25

PXE 自动安装 原理及过程_PXE自动安装原理_26

PXE 自动安装 原理及过程_PXE自动安装原理_27

PXE 自动安装 原理及过程_PXE自动安装原理_28

PXE 自动安装 原理及过程_PXE自动安装原理_29

PXE 自动安装 原理及过程_PXE自动安装原理_30

PXE 自动安装 原理及过程_PXE自动安装原理_31


设置完了之后,在主目录下查看一下:是否有ks.cfg文件;

(一回仍需要把它放在 ftp server 目录下、)

PXE 自动安装 原理及过程_PXE自动安装原理_32


看一下ks.cfg 文价的内容信息,是不是前面所配置 的那些内容:

PXE 自动安装 原理及过程_PXE自动安装原理_33


在ftp 目录下查看 下 :(各种所需文件基本上都有了、引导文件 配置文件 内核 驱动)

PXE 自动安装 原理及过程_PXE自动安装原理_34


接下来 就是要重新启动网络服务器了 :

PXE 自动安装 原理及过程_PXE自动安装原理_35

至此 所有的准备工作都做好了,然后就重建一个linux 虚拟机了


虚拟机---》选择创建一个空白磁盘------》根据提示下一步下一步----》网络适配器呢-------》选择与主机共享一个私有网络;这样配置的呢就是一个没有磁盘或者说没有磁盘引导的虚拟机;然后就开始启动

(就像这样):

PXE 自动安装 原理及过程_PXE自动安装原理_36


创建好一个虚拟机后(看上面 、没有磁盘光驱引导就开始启动试试看能不能实现PXE的自动安装:

PXE 自动安装 原理及过程_PXE自动安装原理_37

PXE 自动安装 原理及过程_PXE自动安装原理_38


其实这已经加载了内核驱动还有dhcp 服务器;还有VMlinux  ;然后等待进入正常的安装过程:

PXE 自动安装 原理及过程_PXE自动安装原理_39


这都进入了 自动安装 过程 ;

PXE 自动安装 原理及过程_PXE自动安装原理_40

PXE 自动安装 原理及过程_PXE自动安装原理_41


OK 也出现了 redhat 自动安装启动很正常

PXE 自动安装 原理及过程_PXE自动安装原理_42


完毕 这样就可以 输入用户名 和 指令进入了:

PXE 自动安装 原理及过程_PXE自动安装原理_43


PXE安装、原理过程就是这样 ;远程客户端根据ftp地址 到ftpserver上去下载然后完成了自动安装。