网络PXE启动是啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络PXE启动是啥相关的知识,希望对你有一定的参考价值。

pxe(pre-boot
execution
environment)是由intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,pxe
client在网卡的rom中,当计算机引导时,bios把pxe
client调入内存执行,并显示出命令菜单,经用户选择后,pxe
client将放置在远端的操作系统通过网络下载到本地运行。
pxe协议的成功运行需要解决以下两个问题:
既然是通过网络传输,那么计算机在启动时,它的ip地址由谁来配置;
通过什么协议下载linux内核和根文件系统
对于第一个问题,可以通过dhcp
server解决,由dhcp
server来给pxe
client分配一个ip地址,dhcp
server是用来给dhcp
client动态分配ip地址的协议,不过由于这里是给pxe
client分配ip地址,所以在配置dhcp
server时,需要增加相应的pxe特有配置。
至于第二个问题,在pxe
client所在的rom中,已经存在了tftp
client。pxe
client使用tftp
client,通过tftp协议到tftp
server上下载所需的文件。
这样,pxe协议运行的条件就具备了,
参考技术A PXE(preboot
execute
environment)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial
file
transfer
protocol)或MTFTP(multicast
trivial
file
transfer
protocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。

pxe(预启动执行环境)

                                                                # pxe服务器

pxe:(preboot execute environment,预启动执行环境)。是inter公司推出的一款通过网络来引导操作系统的协议。广泛应用于网吧无盘系统。只需要将无盘服务器维护好,就能保证网络中的无盘工作站(客户机能正常运行。)
pxe本讲目标
用centos系统部署一台pxe服务器,实现通过pxe网络来给pxe客户机手动或自动安装centos7操作系统。
pxe服务器需要的支撑软件:DHCP、TFTP、syslinux(提供pxe引导程序文件pxelinux.0)、文件共享(nfs、ftp、http、samba)等

 pxe服务器和客户机的工作过程:
 1.pxe客户机发出DHCP请求,向服务器申请ip地址。
 2.DHCP服务器响应PXE客户机的请求,自动从ip地址池中分配一个ip地址给pxe客户机,并且告知pxe客户机TFTP(简单文件传输协议)服务器的ip地址和pxe引导程序文件pxelinux.0。
 3.pxe客户机向TFTP服务器发起获取pxelinux.0引导程序文件的请求。
 4.TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0文件传输给pxe客户机。
 5.pxe客户机通过网络来启动到系统安装主页面。
 6.pxe客户机向文件共享服务器发起获取centos或window系统安装的请求。
 7.文件共享服务器进去到安装提示向导页面,将共享的系统安装文件传输给pxe客户机。
 8.pxe客户机进入到安装提示向导界面,用户需要手动来完成系统的安装。

技术图片
pxe中各服务器软件否功能:
DHCP:用来给pxe客户机自动分配TCP/IP设置(包括IP地址、子网掩码、网关、DNS等)。告知pxe客户机“TFTP服务器的IP地址和pxe启动文件名”。
TFTP:是一个迷你的FTP共享协议软件,用来给pxe客户机提供网络启动的引导程序文件pxelinux.0。
syslinux:用来提供pxelinux.0网络引导程序文件。
文件共享:可以是vsftpf、nfs、samba、http等软件来实现文件共享。用来给pxe客户机提供系统安装文件。

PXE服务器的部署:
关闭selinux和防火墙:
setenforce 0 && getenforce
systemctl stop firewalld && systemctl disable firewalld

部署DHCP服务器
1.查软件是否安装:rpm -q dhcp
2.安装dhcp服务器软件:yum -y install dhcp
3.查配置文件列表:rpm -qc dhcp

/etc/dhcp/dhcpd.conf **是dhcp服务器的主配置文件(实现DHCP的ipv4功能)
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd是dhcp服务器的辅助配置文件(用于多网卡环境)
/var/lib/dhcpd/dhcpd.leases是dhcp服务器的租约文件(记录客户机从服务器获取的IP地址信息)
/var/lib/dhcpd/dhcpd6.leases

4.编辑dhcpd.conf配置文件
rpm -qc dhcp
cat /etc/dhcp/dhcpd.conf
可以看到

技术图片
cat /usr/share/doc/dhcp/dhcpd.conf.example
技术图片
把这几行贴到下面的主配置文件中
vim /etc/dhcpd/dhcpd.conf
改成去下所示
技术图片
最后2行是自己加上去的
技术图片
5.启动dhcp服务允许服务开机自动启动。
systemctl restart dhcpd
systemctl enable dhcpd
systemctl status dhcpd
netstat -atunlp |grep :67查67号端口的网络进程序

pxe客户机测试
1.在VMware虚拟机软件中新建一台名称为PXE的centos7_64位系统的虚拟机。
2.给pxe虚拟机的内存设置为1324M(内存小了会报错)
3.给PXE虚拟机创建一个名称为NOS的快照。
4.启动pxe虚拟机,会发现它自动获到了ip地址,并卡在看下图的界面。
next-server 在哪台服务器上做的就写哪个ip地址
技术图片

部署tftp-server服务器
1.查软件是否安装:rpm -q tftp-server
2.安装tftp-srever服务器软件yum -y isntall tftp-server
3.查配置文件列表:rpm -qc tftp-server
/etc/xinetd.d/tftp
4.编辑tftp配置文件
cat /etc/xinetd.d/tftp

技术图片
将disable的yes改成no就行了

5.启动tftp服务,允许服务开机自动启动。
systemctl restart tftp
systemctl enable tftp
netstat -atunlp |grep :69 查网络进程中关于69号端口关键字的信息

6.安装提供pxelinux.0的syslinux软件,共享pxe引导程序文件。

rpm -q syslinux mlocate
yum -y install syslinux mlocate
updatedb 更新locate文件查找数据库
locate pxelinux.0 查找pxelinux.0文件
技术图片
可以看到有2个文件
共享指定的文件到/var/lib/tftpboot目录中
cd /var/lib/tftpboot 切换到tftp-server的默认共享目录
cp -v /usr/share/syslinux/pxelinux.0 ./复制指定的文件到当前目录中
df -hT查看磁盘空间使用状态
cp -v /dvd/isolinux/* ./复制光盘挂载点目录中指定的文件到当前目录中
mkdir -v pxelinux.cfg在当前目录中创建pxelinux.cfg目录
cp -v isolinux.cfg pxelinux.cfg/default 复制指定的文件到指定目录中并改名为default

 /var/lib/tftpboot    tftp服务的默认共享目录

├── boot.cat
├── boot.msg
├── grub.conf
├── initrd.img linux系统镜像文件(即迷你版的linux系统)
├── isolinux.bin
├── isolinux.cfg
├── memtest
├── pxelinux.0 pxe的引导程序文件
├── pxelinux.cfg pxe启动菜单的配置文件目录
│?? └── default PXE启动菜单(即centos的安装界面菜单)
├── splash.png 安装界面的黑色背景图片
├── TRANS.TBL
├── vesamenu.c32 pxe的32位菜单管理程序
└── vmlinuz pxe启动的linux内核文件

pxe客户机测试:
重启pxe虚拟机,会发现它自动获到了引导程序文件,并卡在了下图的界面
技术图片

文件共享服务器部署
可用软件:vsftpd、nfs、samba、httpd

 以vsftpd为列来部署:
 1.查软件是否已安装:rpm  -q  vsftpd
 2.安装tftp-server服务器软件:yum  -y  install  vsftpd
 3.查配置文件列表:rpm  -qc  vsftpd
 4.启动vsftpd服务,允许开机自动启动服务

systemctl restart vsftpd
systemctl enable vsftpd
systemctl status vsftpd
netstat -atunlp |grep :21 或lsof -i :21

5.共享centos的系统镜像到/var/ftp/dvd
mkdir -v /var/ftp/dvd
mount /dev/sr0 /var/ftp/dvd最好用自动挂载

6.修改/var/lib/tftpboot/pxelinux.cfg/default启动菜单文件内容

vim  /var/lib/tftpboot/pxelinux.cfg/default 修改内容如下

61 label linux

62 menu label ^Install CentOS 7
63 kernel vmlinuz
64 append initrd=initrd.img inst.stage2=hd:LABEL=CentOSx207x20x86_64 quiet 找到此行
修改64行内容为append initrd=initrd.img method=ftp://192.168.11.11/dvd

重启服务 systemctl restart tftp

在第一个菜单界面上直接按回车键,等待安装程序的启动,知道进到下图所示的界面

以上是关于网络PXE启动是啥的主要内容,如果未能解决你的问题,请参考以下文章

网络启动二:之PXE:企业应用

如何用PXE网络启动装系统和维护系统?

pxe(预启动执行环境)

CentOS使用PXE网络启动自动安装操作系统

PXE预启动执行环境简介

网络克隆 主要是 PXE网卡启动 随笔