内容简介:PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的网络启动技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivialfile transfer protocol)或MTFTP(multicasttrivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成
一、PXE简介
PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的网络启动技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivialfile transfer protocol)或MTFTP(multicasttrivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。
严格来说,PXE 并不是一种安装方式,而是一种引导方式
二、PXE的工作原理流程介绍及示意图
PXE的工作原理流程主要分为如下几步
(1)PXEClient向DHCP发送请求
PXEClient从自己的PXE网卡启动,通过PXE BootROM(自启动芯片)会以UDP协议发送一个广播请求,向本网络中的DHCP服务器索取IP。
(2)DHCP服务器提供信息
DHCP服务器收到客户端的请求,验证是否是合法的PXE Client的请求,验证通过它将给客户端一个提供相应,这个提供相应中包含了为客户端分配的IP地址、pxelinux启动程序(TFTP)位置,以及配置文件所在位置。
(3)PXE客户端请求下载启动文件
客户端收到服务器的回应后,会回应一个帧,以请求传送启动所需文件。这些文件包括:pxelinux.0、pxelinux.cfg/default、initrd.img等文件。
(4)BootServer响应客户端请求并传送文件
当服务器收到客户端的请求后,他们之间之后将有更多的信息在客户端与服务器之间作应答,用以决定启动参数。BootROM由TFTP通讯协议从Boot Server下载启动安装程序所必须的文件(pxelinux.0、pxelinux.cfg/default)。default文件下载完成后,会根据该文件中定义的引导顺序,启动Liunx安装程序的引导内核。
(5)请求下载自动应答文件
客户端通过pxelinux.cfg/default文件成功的引导 Linux 安装内核后,安装程序首先必须确定你通过什么介质来安装linux
如果通过网络安装(NFS.FTP.HTTP),则会在这个时候初始化网络,并定位安装源位置。
接着会读取default文件中指定的自动应答文件ks.cfg所在位置,根据该位置请求下载该文件。
(6)客户端将开始安装操作系统
将ks.cfg文件下载回来后,通过该文件找到OS Server,并安装该文件的配置请求下载安装过程需要的软件包。
OSServer和客户端建立连接后,将开始传输软件包,客户端将开始安装操作系统。安装完成后,将提示重新引导计算机。
三、CentOS系统下PXE服务器的搭建与部署
接下来结合下面的拓扑,用VMWare Workstation模拟PXE服务器的搭建与部署
具体操作步骤
1、安装DHCP服务
[root@CentOSPXEServer~]# yum install -y dhcp
编辑vi dhcpd.conf DHCP服务配置文件/etc/dhcp/dhcpd.conf
#新增如下dhcp配置
next-server10.112.105.253;
filename"pxelinux.0";
subnet10.112.105.0 netmask 255.255.255.0 {
range 10.112.105.2 10.112.105.250;
option subnet-mask 255.255.255.0;
option routers 10.112.105.254;
option domain-name-servers 114.114.114.114;
default-lease-time 600;
max-lease-time 7200;
}
启动dhcpd服务并设置为开机自启动
[root@CentOSPXEServer~]# /etc/rc.d/init.d/dhcpd start Startingdhcpd: [ OK ] [root@CentOSPXEServer~]# chkconfig dhcpd on [root@CentOSPXEServer~]#
2、安装TFTP服务
[root@CentOSPXEServer~]#yum install tftp-server xinetd
TFTP服务使用Xinetd服务管理,编辑/etc/xinetd.d/tftp,将文件中disable的参数由yes改为no
[root@CentOSPXEServer~]# /etc/rc.d/init.d/xinetd start Startingxinetd: [ OK ] [root@CentOSPXEServer~]# chkconfig xinetd on [root@CentOSPXEServer~]# chkconfig xinetd --list xinetd 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@CentOSPXEServer~]#
3、接下来配置支持PXE引导启动程序
PXE启动映像文件由syslinux软件提供,只要安装了syslinux,就会生成一个pxelinux.0文件,将这个文件复制到TFTP默认路径即可。syslinux是一个功能强大的引导加载程序
[root@CentOSPXEServer~]# yum install syslinux [root@CentOSPXEServer~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ [root@CentOSPXEServer~]# [root@CentOSPXEServer~]# cd /var/lib/tftpboot/ [root@CentOSPXEServertftpboot]# [root@CentOSPXEServertftpboot]# ll -trh total28K -rw-r--r--.1 root root 27K Oct 20 19:24 pxelinux.0
接下来挂载CentOS6.9的启动DVD镜像到/mnt/cdrom目录
[root@CentOSPXEServer~]# mkdir /mnt/cdrom [root@CentOSPXEServer~]# mount -t iso9660 -o loop /dev/cdrom /mnt/cdrom/
[root@CentOSPXEServer~]# mkdir /var/lib/tftpboot/PXEServer [root@CentOSPXEServer~]# cp /mnt/cdrom/images/pxeboot/vmlinuz /var/lib/tftpboot/PXEServer/ [root@CentOSPXEServer~]# cp /mnt/cdrom/images/pxeboot/initrd.img /var/lib/tftpboot/PXEServer/ [root@CentOSPXEServer~]# cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/
[root@CentOSPXEServer~]# mkdir /var/lib/tftpboot/pxelinux.cfg [root@CentOSPXEServer~]# cp /mnt/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
修改default文件
[root@CentOSPXEServer~]# chmod 644 /var/lib/tftpboot/pxelinux.cfg/default [root@CentOSPXEServer~]# [root@CentOSPXEServer~]# vi /var/lib/tftpboot/pxelinux.cfg/default defaultmenu.c32 timeout100 menutitle Welcome to CentOS 6.9 PXE! menucolor border 0 #ffffffff #00000000 menucolor sel 7 #ffffffff #ff000000 menucolor title 0 #ffffffff #00000000 menu colortabmsg 0 #ffffffff #00000000 menucolor unsel 0 #ffffffff #00000000 menucolor hotsel 0 #ff000000 #ffffffff menucolor hotkey 7 #ffffffff #ff000000 menucolor scrollbar 0 #ffffffff #00000000 labellinux menu label ^1)Install CentOS 6.9 From PXEServer kernel PXEServer/vmlinuz append initrd=PXEServer/initrd.imgmethod=http://10.112.105.253/PXEServer devfs=nomount labellocal menu label ^2)Boot from local drive localboot 0xffff #可作为模板
4、安装HTTP服务并配置httpd服务
先把镜像中文件全部复制到/var/lib/tftpboot/PXEServer/目录下
接下里安装并配置httpd服务
[root@CentOSPXEServer~]# yum install httpd [root@CentOSPXEServer~]# cd /etc/httpd/conf.d/ [root@CentOSPXEServerconf.d]# ll -trh total8.0K -rw-r--r--.1 root root 299 Feb 19 2018 welcome.conf -rw-r--r--.1 root root 392 Jun 19 23:45 README [root@CentOSPXEServerconf.d]# mv welcome.conf welcome.conf_bak [root@CentOSPXEServerconf.d]# vi pxeboot.conf Alias/PXEServer /var/lib/tftpboot/PXEServer <Directory/var/lib/tftpboot/PXEServer> Options Indexes FollowSymLinks Order Allow Allow from all </Directory>
[root@CentOSPXEServerconf.d]# service httpd restart [root@CentOSPXEServerconf.d]# chkconfig httpd on [root@CentOSPXEServerconf.d]# [root@CentOSPXEServerconf.d]# chkconfig httpd --list httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
测试httpd服务是否部署成功,能否正常访问
5、接下来PXEClient开机启动测试验证
1)新建的虚拟机PXEClient进行测试,开机选择从网络启动
2、这时出现之前自定义的菜单
3)选择从PXE启动后开始加载vmlinuz initrd.img等启动文件
4)接下来选择语言键盘,设置IP
5)就进入熟悉的系统安装界面了
PXE服务器的搭建与部署先简单介绍到这里,后续再介绍重点PXE+Kickstart无人值守安装
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 「实战篇」开源项目docker化运维部署-借助dockerSwarm搭建集群部署(九)
- 三周学会小程序(三):服务端搭建和免费部署
- 记录一次自己使用jenkins搭建自动部署
- next + koa + mongodb 从搭建到部署(一)
- Jenkins + Github + Nginx搭建前端项目自动部署
- Jenkins+SVN+Maven自动化部署环境搭建
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Rationality for Mortals
Gerd Gigerenzer / Oxford University Press, USA / 2008-05-02 / USD 65.00
Gerd Gigerenzer's influential work examines the rationality of individuals not from the perspective of logic or probability, but from the point of view of adaptation to the real world of human behavio......一起来看看 《Rationality for Mortals》 这本书的介绍吧!