Linux PXE详解

服务器运维 专栏收录该内容
47 篇文章 3 订阅

今天我们继续给大家介绍Linux相关内容,本文主要内容是PXE系统的部署,并且通过实战,完成PXE环境的实战部署。
由于PXE环境牵扯到的服务众多,因此,您需要了解FTP、DHCP等服务的原理、安装、部署等知识。如果您对此还存在困惑,欢迎查阅下列文章:
Linux DHCP服务详解
Linux vsFTPd服务详解——vsFTPd基础知识
Linux vsFTPd服务详解——本地用户登录实战

一、PXE环境介绍

PXE,即Pre-boot Execution Environment,即预引导执行环境,通过PXE,可以实现网络引导与安装操作系统。
对于目前计算机而言,大都默认配置有支持PXE功能,当启动计算机时,如果我们设置网络启动,则就会运行PXE客户端程序,企图寻找局域网中的PXE环境。
PXE环境需要与DHCP和TFTP环境配合使用,PXE客户端启动后,由于没有操作系统引导,因此首先需要运行DHCP客户端程序,在局域网中寻找本地的DHCP服务器,并获取自身的IP地址和下一条IP地址。下一条地址指向的是一个FTP服务器或HTTP服务器或NFS服务器,PXE客户端会从下一条服务器上下载系统安装所必须的文件,包括系统安装文件和ks.cfg文件。
ks.cfg文件是Kickstart生成的一个记录文件,在该文件中记录在手动安装系统时必须人工操作干预的选项,如root用户密码,磁盘分区等等。正是因为有了ks.cfg文件,在进行操作系统安装的时候,我们才完全不需要手动干预,最后在ks.cfg文件的指引下完成操作系统的安装。

二、PXE系统架构

PXE系统架构如下所示:
在这里插入图片描述
在上述架构中,TFTP服务器用于存放PXE相关的文件,FTP、HTTP或者是NFS存放系统安装文件。

三、PXE系统辅助服务安装与配置

接下来,我们来进行PXE配置的实战,在本例中,PXE环境中DHCP、vsFTPd、TFTP、PXE等环境全部位于一台服务器上,为192.168.136.101,PXE客户端为一个全新的虚拟机,与192.168.136.101处于同一网段内。
接下来,我们首先来进行PXE辅助服务的安装与配置。

(一)DHCP服务安装与配置

DHCP服务主要是为PXE客户端在启动时提供IP地址,以及下一条信息。DHCP服务安装如下:

yum install -y dhcp

安装完成后,我们需要修改DHCP服务的配置文件,可以借助/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example文件模板,熟悉其配置文件写法的同学也可以直接写DHCP配置文件,不管如何配置,/etc/dhcp/dhcpd.conf文件最终如下所示:
在这里插入图片描述
其中,next-server是vsFTPd服务的IP地址,filename为PXE文件的文件名,该文件名必须与后文中PXE文件名完全一致。这两处配置旨在告诉PXE客户端,当拿到可用的IP地址后,应到与192.168.136.101寻找系统安装文件pxelinux.0。
完成上述配置后,就可以启动DHCP服务了,该服务启动命令如下:

syetemctl start dhcpd

(二)TFTP服务安装与配置

TFTP服务主要是为PXE客户端提供一些小文件下载服务,与FTP服务的区别在于,TFTP在小文件传输上更有优势,TFTP服务安装命令如下:

yum install -y xinetd tftp tftp-server

在TFTP服务的安装过程中,由于TFTP服务依赖于xinetd,因此在安装前需要首先安装xinetd。
TFTP服务在运行前,需要修改配置文件,该服务配置文件为/etc/xientd.d/tftp,主要是将第14行disable处由yes该为no,修改完成后的配置文件如下所示:
在这里插入图片描述
在上述配置文件的第13行,server_args后面的是TFTP服务的主目录,我们在后面的配置中,需要把一些PXE启动文件放在该目录下。
上述修改完成后,就可以启动tftp服务了,需要注意,我们应该首先启动xinetd服务,然后再启动tftp服务,启动命令如下:

systemctl start xinetd
systemctl start tftp

启动完成后,TFTP服务会监听UDP的69端口,如下所示:
在这里插入图片描述

(三)vsFTPd服务安装与配置

vsFTPd服务实际上就是FTP服务,vsFTP服务安装命令如下:

yum install -y vsftpd

在本次实战中,我们使用vsFTPd服务的默认目录——/var/ftp/pub,我们在这里不对vsFTPd服务进行配置,因为在默认情况下,vsFTPd服务允许匿名用户登录,因此,我们只需要开启vsFTPd服务即可,vsFTPd服务开启命令如下:

systemctl start vsftpd

三、PXE和kickstart安装与配置

安装PXE和kickstart,我们要首先安装两个软件,分别是syslinux和system-config-kickstart,第一个用于用于pxelinux.0文件的生成,第二个用于以图形化的方式生成ks.cfg文件。安装命令如下:

yum install -y syslinux system-config-kickstart

接下来,我们要开始正式部署PXE和kickstart环境了,首先,我们把系统启动的关键文件复制到TFTP的目录中,TFTP的目录为/var/lib/tftpboot/(默认),有些文件是在Linux的安装盘内,有些文件是在安装syslinux软件后才有的,假设我们把Linux的安装盘挂载到了/mnt/目录下,则相关命令如下:

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/
cp /mnt/images/pxeboot/vmlinux /var/lib/tftpboot/
mkdir -p /var/lib/tftpboot/pxelinux.cfg/
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
chmod 644 /var/lib/tftpboot/pxelinux.cfg/default

接下来,我们还需要对/var/lib/tftpboot/pxelinux.cfg/default文件进行修改,该文件打开后,修改第一行default vesamenu.c32为default linux,然后修改第64行
append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet为 append initrd=initrd.img inst.repo=ftp://192.168.136.210:/pub inst.ks=ftp://192.168.136.210/ks.cfg。修改部分的内容如下所示:
在这里插入图片描述
在这里插入图片描述
注意,在上图中,64行的inst.repo必须与FTP服务的系统镜像挂载目录相一致,inst.ks必须与ks.cfg文件位置相一致,这两点后期我们都会进行配置。
完成上述所有操作后,我们需要做的是ks文件的生成,由于是system-config-kickstart是图形化界面,因此如果我们运行该命令,要求启动必须安装了图形化桌面,但是,由于图形化桌面过于复杂,且过于消耗系统资源,因此我们也可以采取使用gdm软件配合xstart软件的方式来代替。
如果我们采用gdm+xstart软件配合的方式,则在虚拟机上需要安装gdm软件,安装命令如下:

yum install -y gdm

在客户端上,我们需要安装xmanager,该软件内就含有xstart,该软件可以自行搜索下载。
在运行该软件前,我们最好先把系统镜像盘挂载到pub目录下,且本地的yum源只保留指向该pub目录的repo文件,否则在该软件启动后的软件包选择会提示路径错误。
上述两个软件安装完成后,我们打开xstart,并采用如下配置:
在这里插入图片描述
点击运行后,就可以在本地计算机上模拟图形化页面进行配置了,成功打开后页面如下所示:
在这里插入图片描述
在这里,我们需要对ks文件进行一些参数上的配置,在PXE环境中,ks文件主要作用是指定在系统安装过程中,需要人为干预的内容,因此,在ks文件的配置过程中,我们要配置的就是系统安装过程中的一些参数,必要配置如下,其他配置感兴趣的同学可以自行探索:
1、设置root用户密码
在这里插入图片描述
2、设置FTP服务器的IP地址和目标目录
在这里插入图片描述
3、设置引导记录
在这里插入图片描述
4、设置分区
在这里插入图片描述
5、添加网卡设备
在这里插入图片描述
6、设置安装系统
在这里插入图片描述
上述所有步骤完成后,点击右上角文件,就可以保存生成ks.cfg文件了,只要我们生成了一个ks文件,我们就可以把该ks文件保存下来,以后在配置时就可以不使用该软件,直接复制修改该ks文件即可。
最后,我们把生成的ks文件放在/var/ftp/目录下即可,此处必须和前文default文件处的文件名称对应。
在完成上述所有操作后,我们就可以尝试启动全新的没有系统的PXE客户端,观察其网络安装操作系统的现象了。

四、注意事项

在完成上述配制后,如果您的PXE系统运行出现问题,可以查阅本部分,进行排错。
1、防火墙问题
PXE系统在运行时,最好关闭防火墙,以防止防火墙拒绝客户端的链接从而导致出错,防火墙关闭命令:

systemctl stop firewalld
iptables -F
setenforc 0

2、system-config-kickstart运行问题
在system-config-kickstart搭配xstart运行时,可能在软件包选择部分出现问题,找不到可用的软件包,该问题的出现是system-config-kickstart文件找不到系统镜像中的软件包,因此最好在该软件运行前,配置好系统安装镜像的挂载,并且在本地yum源中,移除其他的YUM源,只保留指向该镜像的YUM源。此外,该repo文件的名称最好为base,并且在完成上述操作后,最好执行命令:

yum cleanall
yum makecache

刷新一下YUM缓存。
3、PXE客户端内存问题
在实验中,我还发现了一个有趣的现象,如果是使用系统安装盘安装Linux系统,则在虚拟机中给1个G的内存是完全足够的,但是如果采用PXE安装系统,则1个G的内存却不足,导致在安装时报错,因此,我们在使用Vmware虚拟机在进行本次实验时,为了保证实验成功,PXE客户端可以考虑给2个G的内存。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

  • 4
    点赞
  • 0
    评论
  • 1
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页

打赏作者

永远是少年啊

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值