首先呢要先介绍一下PXE
PXE(preboot execute environment 预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicasttrivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(即客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,
如:Windows95/98/2000/windows2003/windows2008/win7/win8,linux等。
表现形式呢:
PXE最直接的表现是,在网络环境下工作站可以省去硬盘,但又不是通常所说的无盘站的概念,因为使用该技术的PC在网络方式下的运行速度要比有盘PC快3倍以上。当然使用PXE的PC也不是传统意义上的TERMINAL终端,因为使用了PXE的PC并不消耗服务器的CPU,RAM等资源,故服务器的硬件要求极低。
实现这样一种功能呢,就像是有一个本地服务器端 ,上面首先要有server等安装文件、各种网络服务器、dhcp server、tftp 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
然后在对DHCP 做一些相关的配置;输入 /etc/dhcp.conf 发现进入的 是这样:
不急 ,此时 我们可以看到上面 see 后面有个路径 在输入进入:对hdcp进行设置:
这是设置后的 、对比一下 啦:
设置完成之后在重新 启动,同样的和vsftp设置为开机自动引导模式;(图 15)
因为还要满足它是一个 tftp 的服务器;(里面主要放置网络引导时候的主要引导文件;以及内核驱动;)所以再安装 TFTP 服务:
所以这里就要把自己的机器构建成tftpserver
有这样一个文件 /etc/xinet.d/tftp 它是依赖于超级守护进程的一个、然后进行编辑:
可以更改或者添加很多的参数在里面、根据不同的需求进行设置;
更改完成之后还要重新进行启动:service xinetd restart;;其实最后还要查看一下会不会有什么的错误;
执行指令 tail –f /var/log/messages 是查看一下日志文件有什么不同没 :
每有服务器访问 都要去了解 它访问的的根目录下是在哪里;我们知道 ftp 的根目录是在 /var/ftp ;那么 tftp 服务器的目录呢、我们切换到根目录下下看看;就是 tftpboot 目录就是了;所以就可以把那些通过网络引导的引导文件、包括内核和一些驱动都放在这个服务器的根目录下下面;所以在切换到这个tftpboot目录下。然后还需要拷贝这一一些文件(驱动 和 内核文件):
但是光有这些还不够、这些仅仅是说明了有驱动文件和内核文件、还是少一一个引导文件
所以还要找引导文件: /usr/lib/syslinux/pxelinux.0 ./ 还需要把它也拷贝过来:
拷贝过去我们查看 有内核文件驱动文件和引导文件、但是这个引导文件需要我们配置的;因为在做引导的时候需要设置一些参数;这个配置文件应该在哪、所以此刻就需要在这个目录下新建一个
Mkdir pxelinux.Cfg文件;然后把 配置文件放在这个新建的pxelinux.cfg文件中去就可以了:
创建好了之后、接下来找一下引导文件下的配置文件:
然后再里面开始设置参数:这里的重点就是需要添加一个ks.cfg文件;因为这个文件是anaconda 安装是通过 ks.cfg 来指明的;(这里还没有做ks.cfg 等下后面会利用一个软件 来生成)
至此 tftp 的服务器已经做好了;
因为我们知道 TFTP 启动的时候它会发HDCP 的广播;它需要告诉客户端 tftp 服务器的地址呢;所以就要在这里改变 dhcp 服务器的配置文档;所以 找到/etc/dhcpd.conf 再来做出一些更改:
看看更改后 :
在tftpboot 下看看 :有引导文件、配置文件 、内核 、 驱动,然后在把安装文件拷贝进去;也就是在光盘上的所有安装文件;
然后呢 在来设置一下 本地YUm;(PXE 网络自动安装也好似 对tftp server的访问)
更改为本地Yum ,同时设置四个库文件:
设置过程 :
然后在安装个软件包指令:
再执行指令 system-config-kickstart ; 会出现这样的界面 ;按需要和要求开始设置:
(执行后出现一个配置网络信息的图形配置界面 )设置完成后就保存成ks.cfg文件。这就是 之前说的ks.cfg文件、就这样做出来 ;(如果可以你还可以自己编译)
设置完了之后,在主目录下查看一下:是否有ks.cfg文件;
(一回仍需要把它放在 ftp server 目录下、)
看一下ks.cfg 文价的内容信息,是不是前面所配置 的那些内容:
在ftp 目录下查看 下 :(各种所需文件基本上都有了、引导文件 配置文件 内核 驱动)
接下来 就是要重新启动网络服务器了 :
至此 所有的准备工作都做好了,然后就重建一个linux 虚拟机了
虚拟机---》选择创建一个空白磁盘------》根据提示下一步下一步----》网络适配器呢-------》选择与主机共享一个私有网络;这样配置的呢就是一个没有磁盘或者说没有磁盘引导的虚拟机;然后就开始启动:
(就像这样):
创建好一个虚拟机后(看上面 、没有磁盘光驱引导就开始启动试试看能不能实现PXE的自动安装:
其实这已经加载了内核驱动还有dhcp 服务器;还有VMlinux ;然后等待进入正常的安装过程:
这都进入了 自动安装 过程 ;
OK 也出现了 redhat 自动安装启动很正常
完毕 这样就可以 输入用户名 和 指令进入了:
PXE安装、原理过程就是这样 ;远程客户端根据ftp地址 到ftpserver上去下载然后完成了自动安装。