基于Linux搭建PXE网络引导环境之脚本编写与使用说明
通过互联网检索资料,PXE网络引导服务的搭建需要两种服务的服务的配合,DHCP服务负责分配网络地址,并且DHCP通过配置能够识别网络引导请求,并通过文件传输服务,如tftp,nfs网络文件传输协议,来分发操作系统内核及启动文件。
在计算机获取内核和启动文件的过程中(这两个文件体积都比较小),dhcp使用ftp服务来传输给计算机,网络引导的计算机上的BIOS上存在着一个pxe客户端,可以获取到网络发送过来的内核及启动文件,计算机在获得操作系统内核时,会加载到内存运行,然后内存中的内核会驱动计算机的硬件,启动文件则会启动相关的服务。然后通过nfs网络传输协议,加载网络硬盘中的完整操作系统文件。整个过程就这样结束了。
本文参照网络上的配置过程,编写了一个交互式的配置脚本,方便以后再次配置,虽然是交互的脚本,但由于知识水平所限,目前还无法做到一键启用的效果,该脚本在使用之前,还有一些必要的准备操作要进行,因而,使用说明就是必要的了,防止以后遗忘了该脚本的用法,又得重新配置一遍。是必要的了,防止以后遗忘了该脚本的用法,又得重新配置一遍。
点击该仓库链接,可获取到该脚本。
使用该脚本需要nfs-server,dnsmasq,syslinux,若有提示缺失命令,这需要安装相应的软件包。
若提供网络引导的服务器,硬盘空间太小,比如Openwrt软路由系统,则配置前需要在另一台硬件配置较好的主机上提供nfs服务,该部分配置没在脚本中体现,所以使用前需将操作系统文件使用nfs共享出来,vim /etc/exports
,编辑exports文件,添加共享文件路径,并附加访问权限。
¶搭建步骤
bash pxec.sh -i
,执行该代码,进行搭建的初始化工作,该过程会提示输入提供nfs服务的主机地址和共享文件路径,如果网络引导服务器性能够强,则这两个参数可以任意填,并无视出错信息。bash pxe.sh -n
,执行该代码,在网络引导服务器本机提供nfs文件服务。bash pxe.sh -s
,执行该代码开始配置pxe,该代码依赖syslinux软件包,需要到https://www.kernel.org 网站上下载该软件包,或者在脚本中取消下载软件包的注释,该步骤会提示需要输入操作系统文件路径,内核文件名称,启动文件名称,根目录文件夹名称等参数。bash pxe.sh -d
,执行该代码配置dnsmasq,及dhcp服务
¶相关截图与网络引导启动的效果
初始化
引导效果:
仅有网卡,无硬盘存储的虚拟主机
192.168.2.210为DHCP服务分配该带引导计算机的地址
虚拟主机ipxe客户端启动界面
内核及启动文件加载到虚拟主机之后的引导界面
操作系统界面,这里使用的是debian安装盘的操作系统