也想出现在这里? 联系我们

详解Linux系统下PXE服务器的部署过程

作者 : 小编 本文共5393个字,预计阅读时间需要14分钟 发布时间: 2022-10-31 共413人阅读
也想出现在这里? 联系我们

在大规模安装服务器时,需要批量自动化方法来安装服务器,来减少日常的工作量. 但是批量自动化安装服务器的基础是网络启动服务器(bootserver). 下面我们就介绍一下 网络启动服务器的 安装和配置方法,供大家实践之用!1. 本文用到的术语解释PXEPXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络而不是从本地硬盘、光驱等设备启动。现代的网卡,一般都内嵌支持PXE的ROM芯片。当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行.DHCPDHCP(Dynamic Host Control Protocol) 动态主机控制协议.用于集中、动态的给客户机分配IP地址.TFTPTFTP(trivial file transfer protocol),一种开销很小的文件传输协议,语法类似ftp.因简单、高效,常用于网络设备的OS和配置更新.2. PXE 原理2.1. PXE Client Api (架构)20151120111318615.gif (600×501)

图 PXE API架构图。(图片来源:PXE Specification Version 2.1)上图说明: 当BIOS把PXE Client载入记忆体,此时便具有DHCP Client及TFTP Client的能力。PXE Client具备DHCP Client能力,可以透过DHCP Server来取得IP位址。 PXE Client具备TFTP Client能力”,可通过TFTP来下载kernel image等文件。2.2. PXE启动流程图(pxe boot)20151120111347530.png (750×343)

上图启动流程说明如下:PXE Client 向 UDP 67端口 广播 DHCPDDISCOVER 消息.DHCP SERVER 或者 DHCP Proxy 收到广播消息后,发送DHCPOFFER(包含ip地址)消息 到 PXE Client的 68 端口.PXE Client 发送 DHCPREQUEST 消息到 DHCP SERVER ,获取启动文件(boot file name).DHCP SERVER 发送DHCPACK(包含Network Bootstrap Program file name)消息 到PXE Client.PXE Client 向 Boot Server 获取 NBP(Network Bootstrap Program) 文件.PXE Client 从TFTP SERVER 下载 NBP,然后在客户端执行NBP文件注意: 在NBP执行初始化后,NBP会按照自己默认的方式从TFTP SERVER中下载其他所需的配置文件. 这个时候 PXE 启动流程已经完成了,剩下的工作都是有NBP来执行完成的. 例如: pxelinux.0(NBP) 他会下载 default 配置文件,来显示菜单,根据需要启动不同的kernel image. 如果是RIS(window安装)的NBP,会启动 Windows boot loader 来执行安装部署widows任务.3. PXE BOOT Server 配置过程以下配置和测试 都是在 Centos5 上完成的,其他系统请酌情参考!3.1. DHCP的安装与配置在PXE引导过程中,PXE Client通过DHCP Server 获取ip地址,NBP文件名称,然后从TFTP SERVER 下载NBP文件并在客户端执行,从而启动计算机。请确认系统中安装 dhcp 软件包编辑 /etc/dhcpd.conf 配置文件,配置文件内容如下

复制代码

代码如下:

[root@linux]# cat /etc/dhcpd.conf ddns-update-style interim; allow booting; #定义能够PXE启动 allow bootp; #定义支持bootp next-server 192.168.0.1; #TFTP Server的IP地址 filename \”pxelinux.0\”; #bootstrap 文件(NBP) default-lease-time 1800; max-lease-time 7200; ping-check true; option domain-name-servers 192.168.0.1; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.128 192.168.0.220; option routers 192.168.0.1; option broadcast-address 192.168.0.255; }

注意:在 /etc/dhcpd.conf 配置文件中 filename "pxelinux.0"; 文件目录是相对于 tftp 的根目录(默认是 /tftpboot),所以文件的绝对路径就是: /tftpboot/pxelinux.0";当然也可以指定为其它的路径.配置完成后,重启DHCP服务,并将它设为开机自启动

复制代码

代码如下:

[root@linux]# /etc/init.d/dhcpd start 启动 dhcpd: [确定] [root@linux]# chkconfig –level 35 dhcpd on

3.2. 安装配置TFTP服务器在PXE引导过程中,PXE Client 使用TFTP协议从TFTP服务器下载bootstrap文件并执行.请确认系统中安装 tftp-server 软件包配置tftp服务,tftp 服务由xinetd服务管理 编辑 /etc/xinetd.d/tftp 文件,将 disable = yes 改为:disable = no .配置文件内容如下:

复制代码

代码如下:

[root@linux]# cat /etc/xinetd.d/tftp # default: off # description: The tftp server serves files using the trivial file transfer \\ # protocol. The tftp protocol is often used to boot diskless \\ # workstations, download configuration files to network-aware printers, \\ # and to start the installation process for some operating systems. # default: off # description: The tftp server serves files using the trivial file transfer \\ # protocol. The tftp protocol is often used to boot diskless \\ # workstations, download configuration files to network-aware printers, \\ # and to start the installation process for some operating systems. service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }

注意:TFTP服务器的根目录是 /tftpboot,配置完成后重启xinetd服务,使TFTP服务器生效.

复制代码

代码如下:

[root@linux]# /etc/init.d/xinetd restart

bootstrap 文件配置 (NBP),这里使用 pxelinux.0bootstrap文件由syslinux软件包提供,我们只要安装了syslinux,将 pxelinux.0 这个文件复制到 /tftpboot 目录即可:

复制代码

代码如下:

[root@linux]# rpm -ql syslinux | grep \”pxelinux.0\” /usr/lib/syslinux/pxelinux.0 [root@linux]# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/

配置 pxelinux.0(NBP) 使用的配置文件接下来创建/tftpboot/pxelinux.cfg/ 目录,该目录用于存放客户端的配置文件

复制代码

代码如下:

[root@linux]# mkdir /tftpboot/pxelinux.cfg

默认配置文件default,文件内容如下、

复制代码

代码如下:

[root@linux]# cat /tftpboot/pxelinux.cfg/default default linux # 默认启动的是 \’label linux\’ 中标记的启动内核 prompt 1 # 显示 \’boot: \’ 提示符 timeout 60 # 等待超时时间,单位为 1/10 秒,超时后自动启动 默认指定的label display boot.msg # 显示boot.msg的内容,文件路径是相对tftp server 的根目录(默认 /tftpboot),所以boot.msg文件绝对路径在 /tftpboot/boot.msg . F1 boot.msg # 按下\’F1\’ 键后显示的文件 F2 options.msg F3 general.msg F4 param.msg F5 rescue.msg label 1 # \’label\’ 指定你在 \’boot:\’ 提示符下输入的关键字。 kernel linux/rh44-x86-32/vmlinuz append initrd=linux/rh44-x86-32/initrd.img ramdisk_size=8192 ks=http://install.test.com/conf/ks_module.cfg ksdevice=link label 2 kernel linux/rh44-x86-64/vmlinuz append initrd=linux/rh44-x86-64/initrd.img ramdisk_size=8192 ks=http://install.test.com/conf/ks_module.cfg ksdevice=link label 3 kernel linux/rh46-x86-64/vmlinuz append initrd=linux/rh46-x86-64/initrd.img ramdisk_size=8192 ks=http://install.test.com/conf/ks_module.cfg ksdevice=link label 4 kernel linux/rh46-x86-32/vmlinuz append initrd=linux/rh46-x86-32/initrd.img ramdisk_size=8192 ks=http://install.test.com/conf/ks_module.cfg ksdevice=link label 5 kernel image/linux/rh38-x86-32/vmlinuz append initrd=image/linux/rh38-x86-32/initrd.img ramdisk_size=8192 ks=http://install.test.com/conf/ks_module.cfg ksdevice=link label 6 kernel linux/rh38-x86-64/vmlinuz append initrd=linux/rh38-x86-64/initrd.img ramdisk_size=8192 ks=http://install.test.com/conf/ks_module.cfg ksdevice=link

注意事项: 默认 pxelinux.0 和 pxelinux.cfg 一定要在同一个目录下3.3. pxelinx.0(NBP)程序配置文件搜索顺序由于多个客户端可以从一个PXE服务器引导,PXE引导映像使用了一个复杂的配置文件搜索方式来查找针对客户机的配置文件. 假设 客户端服务器的网卡的MAC地址为 88:99:AA:BB:CC:DD ,对应的IP地址为192.168.1.195,那么客户端的pxelinux.0 程序 搜索顺序如下:首先以MAC地址为文件名匹配的配置文件,如果不存在,继续查找.其次以IP地址来查找.根据IP地址16进制命名的配置文件查找,从小范围到打大分为查找(子网掩码由小到大),如果不存在,继续查找.最后尝试default文件总体来说,pxelinux.0 搜索的文件的顺序是(可以通过tcpdum得到结果):

复制代码

代码如下:

/tftpboot/pxelinux.cfg/01-88-99-aa-bb-cc-dd /tftpboot/pxelinux.cfg/C0A801C3 /tftpboot/pxelinux.cfg/C0A801C /tftpboot/pxelinux.cfg/C0A801 /tftpboot/pxelinux.cfg/C0A80 /tftpboot/pxelinux.cfg/C0A8 /tftpboot/pxelinux.cfg/C0A /tftpboot/pxelinux.cfg/C0 /tftpboot/pxelinux.cfg/C /tftpboot/pxelinux.cfg/default

4. 总结(Summary)20151120111412229.png (642×159)

1. 本站所提供的源码模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: rayer@88.com),我们会及时删除,给您带来的不便,我们深表歉意!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码为"www.zyfx8.cn",如遇到无法解压的请联系管理员!
本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。免责声明
资源分享吧 » 详解Linux系统下PXE服务器的部署过程

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
织梦模板使用说明
你下载的织梦模板并不包括DedeCMS使用授权,根据DedeCMS授权协议,除个人非盈利站点外,均需购买DedeCMS商业使用授权。购买地址: http://www.desdev.cn/service-dedecms.html

发表评论

Copyright 2015-2020 版权所有 资源分享吧 Rights Reserved. 蜀ICP备14022927号-1
开通VIP 享更多特权,建议使用QQ登录