DNSmasq – 配置PXE

PXE(Preboot eXecution Environment)预启动执行环境提供了一种使用网络接口(Network Interface)启动计算机的引导方式。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。PXE server服务通过dhcp和tftp两个服务提供—DHCP Server来取得IP位址,通过TFTP来获得kernel image等文件。而PXE client通过PXE protocol和NBP(network bootstrap program)来完成通过网络的引导。下面是使用PXE引导的流程(这部分内容来自linux下网路启动服务器安装和配置方法(pxe+tftp+dhcpd))下面是使用PXE引导的流程(这部分内容来自linux下网路启动服务器安装和配置方法(pxe+tftp+dhcpd))上图启动流程说明如下:a). PXE Client 向 UDP 67端口 广播 DHCPDDISCOVER 消息.b). DHCP SERVER 或者 DHCP Proxy 收到广播消息后,发送DHCPOFFER(包含ip地址)消息 到 PXE Client的 68 端口.c).PXE Client 发送 DHCPREQUEST 消息到 DHCP SERVER ,获取启动文件(boot file name).d).DHCP SERVER 发送DHCPACK(包含Network Bootstrap Program file name)消息 到PXE Client.e).PXE Client 向 Boot Server 获取 NBP(Network Bootstrap Program) 文件.f).PXE Client 从TFTP SERVER 下载 NBP,然后在客户端执行NBP文件注意: 在NBP执行初始化后,NBP会按照自己默认的方式从TFTP SERVER中下载其他所需的配置文件.这个时候 PXE 启动流程已经完成了,剩下的工作都是有NBP来执行完成的.例如: pxelinux.0(NBP) 他会下载 default 配置文件,来显示菜单,根据需要启动不同的kernel image。

配置tftp

DNSmasq提供了PXE和tftp的功能,配置也十分简单,在前配置好DHCP服务(DNSmasq – 配置DHCP和DNS)的基础上添加下面选项:

# Enable dnsmasq's built-in TFTP serverenable-tftp# Set the root directory for files availble via FTPtftp-root=/tftp# 配置要使用的pxe程序# Set the boot filename for netboot/PXE. You will only need # this is you want to boot machines over the network and you will need# a TFTP server; either dnsmasq's built in TFTP server or an# external one. (See below for how to enable the TFTP server.)dhcp-boot=pxelinux.0

重启dnsmasq服务,tftp服务(udp 69)的监听已经启用。

[root@server] netstat -ulnp| grep dnsmasqudp        0      0 0.0.0.0:53                  0.0.0.0:*                               38189/dnsmasq       udp        0      0 0.0.0.0:67                  0.0.0.0:*                               38189/dnsmasq       udp        0      0 0.0.0.0:69                  0.0.0.0:*                               38189/dnsmasq

安装syslinux

yum install syslinux

syslinux是一个功能强大的引导加载程序,而且兼容各种介质。SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。安装完成后,使用rpm -ql syslinux来查看包中相关文件,可以看到启动所需要的文件已经放在了/usr/share/syslinux下。首先将这些文件拷贝到TFTP服务的root目录中,检查启动所需的内核引导镜像文件。

[root@server] cp -rf /usr/share/syslinux/* /tftp/[root@server] ll vmlinuz initrd.img -r--r--r--. 1 root root 33392971 May 24 18:39 initrd.img-r-xr-xr-x. 1 root root  4128368 May 24 18:40 vmlinuz

创建配置文件目录tftp-root/pxelinux.cfg,拷贝isolinux.cfg为pxelinux.cfg/default,这是PXE默认配置文件的路径名。

[root@server] mkdir /tftp/pxelinux.cfg[root@server] cp isolinux.cfg pxelinux.cfg/default

接下来在客户端测试:客户机在启动后,根据ROM中的PXE Client启动获得了IP地址、加载了pxelinux.0启动程序并读取了pxelinux.cfg/default配置,启动界面已经成功显示出来。到此为止,一个可用的PXE环境已经准备就绪。下一篇将使用kickstart安装和配置系统。^^

DNSmasq – 配置PXE

相关文章:

你感兴趣的文章:

标签云: