千家信息网

如何解决PXE服务器环境搭建流程中遇到的问题

发表于:2025-02-13 作者:千家信息网编辑
千家信息网最后更新 2025年02月13日,这篇文章主要介绍"如何解决PXE服务器环境搭建流程中遇到的问题",在日常操作中,相信很多人在如何解决PXE服务器环境搭建流程中遇到的问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希
千家信息网最后更新 2025年02月13日如何解决PXE服务器环境搭建流程中遇到的问题

这篇文章主要介绍"如何解决PXE服务器环境搭建流程中遇到的问题",在日常操作中,相信很多人在如何解决PXE服务器环境搭建流程中遇到的问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"如何解决PXE服务器环境搭建流程中遇到的问题"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

环境准备中遇到的问题

首先需要将系统镜像挂载到 /mnt:

#mount /dev/sdd2 /mnt/usb_disk 将U盘挂载

#cp rhel-server-7.6-x86_64-dvd.iso /home 系统镜像拷到本地

#mount -o loop rhel-server-7.6-x86_64-dvd.iso /mnt

问题:ifconfig命令未找到

解决:#cd /sbin 查看此目录下是否有ifconfig,若没有,则需要安装

安装:#sudo yum install net-tools

问题:vim命令未找到

解决:#rpm -qa |grep vim

vim-enhanced-7.0.109-7.el5

vim-minimal-7.0.109-7.el5

vim-common-7.0.109-7.el5

若缺少上面任意一条(如vim-enhanced-7.0.109-7.el5),则执行

#yum -y install vim-enhanced来安装

若三条都没返回,则执行

#yum -y install vim*

问题:如何根据ifconfig显示网口名定位服务器上网口位置

#ethtool -p enp24s0

问题:解决yum源配置

#cd /etc/yum.repos.d

#vim base.repo

[base]

name=redhat

baseurl=file:///mnt

gpgcheck=0

enabled=1

:wq

#yum clean all

#yum makecache

#yum -y install

若有Python版本问题,查看解释器路径:

#whereis python

#/usr/lib/python2.6 /usr/lib64/python2.7

#vim /usr/bin/yum

#! /usr/bin/python 改为 #! /usr/bin/python2.7

#yum -y install

PXE引导的步骤:

1、开机后选择网络启动,client端向server端的dhcpd发起获取IP地址的dhcp请求。

2、server端分配IP后,dhcpd会同时根据其配置文件,通过TFTP协议发送引导文件给client端,即bootloader。

3、对于传统Legacy BIOS,一般使用syslinux提供的pxelinux.0来引导。对于EFI BIOS,需要使用efi文件引导,一般可使用Grub2。为实现UEFI SecureBoot,大多数Linux使用shim.efi嵌套调用grub.efi来引导。

4、传统Legacy BIOS引导,在pxelinux.0引导后,它会请求并加载server端tftpboot目录中,与pxelinux.0同目录下的pxelinux.cfg目录里的default文件,这个文件就是syslinux的引导配置文件,相当于grub2的grub.cfg。

5、EFI BIOS引导,在shim.efi嵌套引导了grubx64.efi之后,它会请求grubx64.efi同目录下的grub.cfg配置文件,同时加载显示引导菜单。而对于RHEL6来说,它并不支持SecureBoot,所以必须要使用grub-efi 0.97来引导,一般是BOOTX64.efi,同时它会请求同目录下的efidefault配置文件,加载并显示引导菜单。

6、在pxelinux.0/grub加载了引导配置之后,就可以选择引导项安装了,引导项必须要包含内核以及initrd,还可以包含其它的一些引导选项,比如键盘、语言、远程repo、kickstart配置文件等等。

7、内核和initrd加载之后,就可以进到安装界面正常安装了。

一、[首先将]找两台服务器,将两台服务器的IPMI端口同时连接到同一交换机,方便PC端管理:

1、将IPMI的IP adress改为动态分配,目的是让三台机器的IP在同一网段;

2、进入BIOS,Server Mgmt--Configuration address source [DHCP]

Server Mgmt--Configuration address source [DynamicBmcDhcp]

保存重启,进入BIOS,BMC Network Configuration下的Station IP adress为交换机分配的IP;

PC端登录Client 和Server的BMC IP,管理界面。

二、开始搭建,Server端使用redhat7.3系统:rhel-server-7.3-x86_64-dvd.iso,通过Legacy模式安装

1、首先找一块Server端的网卡,用作dhcpd,给Client分配IP;

#cd /etc/sysconfig/network-scripts

#vim ifcfg-enp24s0

TYPE=Ehernet

DEVICE=enp24s0

BOOTPROTO=static

IPADDR=1.1.1.2

NETMASK=255.255.255.0

ONBOOT=yes

实际操作图:

2、关闭防火墙及清空策略

#systemctl stop firewalld.service

#systemctl disable firewalld.service

#iptables -F

#iptables -L -n

3、为防止操作过程中缺少相应的安装包,将redhat7.3系统镜像拷贝到系统下,并挂载到本机

#cp rhel-server-7.3-x86_64-dvd.iso /mnt

#mkdir /mnt/rhel7

#mount -o loop rhel-server-7.3-x86_64-dvd.iso /mnt/rhel7

4、Server端安装软件包

#yum install xinetd tftp tftp-server dhcp syslinux

#rpm -qa xinetd tftp tftp-server dhcp syslinux

#yum install xinetd tftp tftp-server dhcp syslinux

5、配置好Server网卡的IP,网段即DHCP服务器的网段,编辑dhcpd.conf文件

#cd /etc/dhcp/

#vim dhcpd.conf

option architecture-type code 93 = unsigned integer 16;

subnet 192.168.3.0 netmask 255.255.255.0

{

range 192.168.3.10 192.168.3.20;

option routers 192.168.3.3;

next-server 192.168.3.3;

class "pxeclients" {

match if substring

(option vendor-class-identifier, 0, 9) = "PXEClient";

if option architecture-type = 00:07 or option architecture-type = 00:09 {

# EFI BIOS

filename "images/shim.efi";

# filename "images/BOOTX64.efi";

} else {

# Legacy non-EFI BIOS

filename "pxelinux.0";

}

}

}

实际操作图:

6、dhcp根据配置文件,通过tftp发送引导文件给Client,将引导文件全部放入tftpboot文件包下:

pxelinux启动(tftp):配置文件

#mkdir -p /var/lib/tftpboot/pxelinux.cfg #用于存放系统镜像里的default引导文件

#mkdir -p /var/lib/tftpboot/images/rhel7 #用于存放系统镜像里的initrd.img和vmlinuz文件

#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot #对于传统的LegacyBIOS一般用syslinux提供的pxelinux.0引导

#cp /mnt/rhel7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #pxelinux.0引导后,请求加载server端tftpboot目录中,与pxelinux.0同目录下的pxelinux.cfg目录里的default文件,这个文件就是syslinux的引导配置文件,相当于grub2的grub.cfg。

#cp /mnt/rhel7/isolinux/boot.msg /mnt/rhel7/isolinux/vesamenu.c32 /var/lib/tftpboot #pxelinux.0/grub加载了引导配置后,就可以选择引导项安装,引导项必须要包含内核以及initrd等

#cp /mnt/rhel7/isolinux/vmlinuz /mnt/rhel7/isolinux/initrd.img /var/lib/tftpboot/images/rhel7/

#touch /var/lib/tftpboot/images/gurb.cfg #为实现UEFI Secureboot,大多数Linux使用shim.efi嵌套调用gurb.cfg来引导

#touch /var/lib/tftpboot/images/efidefault #BOOTX64.efi引导的同时会请求同目录下的efidefault配置文件,加载并显示引导菜单

#cp /mnt/rhel7/EFI/BOOT/BOOTX64.EFI /var/lib/tftpboot/images/ #RHEL6来说,它不支持SecureBoot,所以必须要使用gurb-efi 0.97来引导,一般是BOOTX64.efi

#cp /boot/efi/EFI/redhat/shim.efi /var/lib/tftpboot/images/ #为实现UEFI SecureBoot,大多数Linux使用shim.efi嵌套调用gurb.efi来引导

#cp /boot/efi/EFI/redhat/grubx64.efi /var/lib/tftpboot/images/ #EFI BIOS引导,在shim.efi嵌套引导了grubx64.efi之后,它会请求grubx64.efi同目录下的grub.cfg配置文件,同时加载显示引导菜单

若当前server不是RHEL7的EFI模式安装,则需从RHEL7光盘中提取shim.efi和gurbx64.cfg

#cp /mnt/rhel7/Packages/gurb2-efi-2.02-0.44.el7.x86_64.rpm /tmp/

#cp /mnt/rhel7/Packages/shim-0.9-2.el7.x86_64.rpm /tmp/

#rpm2cpio /tmp/gurb2-efi-2.02-0.44.el7.x86_64.rpm | cpio -dimv

#rpm2cpio /tmp/shim-0.9-2.el7.x86_64.rpm | cpio -dimv

#cp /tmp/boot/efi/EFI/redhat/shim.efi /var/lib/tftpboot/images/

#cp /tmp/boot/efi/EFI/redhat/gurbx64.efi /var/lib/tftpboot/images/

#tree /var/lib/tftpboot

实际操作图:

7、编辑xinted的tftp配置文件,使tftp server生效

#vim /etc/xinted.d/tftp

将disable = yes 改成disable = no,保存并退出

实际操作图:

8、将RHEL安装光盘的挂载目录使用NFS export出去

#vim /etc/exports

/mnt/rhel7 *(ro)

/mnt/ *(ro)

实际操作图:

9、重启必须的服务

#systemctl restart dhcpd

#systemctl restart xinetd

#systemctl restart nfs

#systemctl status dhcpd #同时查看xinetd和nfs,是否为active

10、对于Legacy BIOS模式PXE引导安装,client端通过DHCP获取到地址后,会通过TFTP协议get pxelinux.0这个引导文件,然后继续get pxelinux.cfg目录下的default文件,加载之后显示引导菜单,下面为/pxelinux.cfg/default引导配置文件的详例,原配置基础上在 menu end前添加下面label即可:

#vim /var/lib/tftpboot/pxelinux.cfg/default

label rhel7+pxe

menu label ^Install RHEL7.3 via PXE+Kickstart

menu default

kernel images/rhel7/vmlinuz

append initrd=images/rhel7/initrd.img inst.repo=nfs:192.168.3.3:/mnt/rhel7/

实际操作图:

上述为PXE+NFS引导手动安装,若想使用Kickstart全自动安装,则需对上述配置做修改:

#vim /var/lib/tftpboot/pxelinux.cfg/default

label rhel7+pxe

menu label ^Install RHEL7.3 via PXE+Kickstart

menu default

kernel images/rhel7/vmlinuz

append initrd=images/rhel7/initrd.img inst.ks=nfs:192.168.3.3:/mnt/rhel7/

11、对于EFI模式下的RHEL7 PXE引导,需dhcpd.conf指定filename "images/shim.efi",以支持UEFI SecureBoot。通过TFTP把shim.efi加载后会继续嵌套加载引导通目录下的gurbx64.efi,然后gurb会获取同目录下的grub.cfg以显示引导菜单。下面为/var/lib/tftpboot/images/gurb.cfg配置详例:

#vim /var/lib/tftpboot/images/gurb.cfg

menuentry 'Install RHEL 7.3 via [UEFI] PXE+Kickstart' {

linuxefi images/rhel7/vmlinuz inst.repo=nfs:192.168.3.3:/mnt/rhel7/ #切记等号两边无空格

initrdefi images/rhel7/initrd.img

}

实际操作图:

若想使用Kickstart全自动安装RHEL7,可参考

#vim /var/lib/tftpboot/images/gurb.cfg

menuentry 'Install RHEL 7.3 via [UEFI] PXE+Kickstart' {

linuxefi images/rhel7/vmlinuz inst.ks=nfs:192.168.3.3:/mnt/rhel7/

initrdefi images/rhel7/initrd.img

}

对于redhat6的系统安装,需要

12、对于EFI模式下RHEL6 PXE引导,需要dhcpd.conf指定filename "image/BOOTX64.efi",它其实是grub 0.97。通过TFTP加载了BOOTX64.efi之后它会继续加载同目录下的efidefault引导配置文件,并显示引导菜单。下面为/var/lib/tftpboot/images/efidefault配置详例:

#vim /var/lib/tftpboot/images/efidefault

default=0

timeout=3

title Install RHEL 6.8 via [UEFI] PXE+Kickstart

root (nd)

kernel /rhel6/vmlinuz repo=nfs:192.168.3.3:/mnt/rhel6/ ip=dhcp lang=en keymap=us

initrd /rhel6/initrd.img

实际操作图:

若想使用Kickstart全自动安装RHEL7,可参考

default=0

timeout=3

title Install RHEL 6.8 via [UEFI] PXE+Kickstart

root (nd)

kernel /rhel6/vmlinuz ks=nfs:192.168.3.3:/mnt/rhel6/ ip=dhcp lang=en keymap=us

initrd /rhel6/initrd.img

13、启动Client端机器,使之和server端网络能通。正常情况下,Client端应该能获取到IP地址,并根据TFTP获取到相应的引导文件,引导到RHEL默认的安装界面,或通过kickstart自动开始安装。

14、若整个过程中有问题,可查看server端的日志,/var/log/messages,dhcpd每次给PXE分配地址、tftp发送文件给Client端,以及Client端挂载NFS的目录,都会在这个文件里有记录。

到此,关于"如何解决PXE服务器环境搭建流程中遇到的问题"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

文件 配置 目录 问题 服务 服务器 实际 系统 同时 菜单 环境 模式 镜像 分配 流程 地址 学习 传统 全自动 内核 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 软件开发文档引言 数据库怎么查找两个表重复的值 麦迅互联网科技有限公司 软件开发项目 质量管理制度 玄鸟互联网科技公司 徐州市经开区法院网络安全进校园 为什么光遇测试服显示服务器错误 软件开发企业岗位 苏州嵌入式软件开发价钱是多少 网络安全管理体系证书认证有哪些 网络安全小报a3模版 蔡甸区信息网络安全维护要多少钱 民国 图书 数据库 更改服务器ip 超市商品数据库免费下载 焦点科技互联网小贷 平谷区正规软件开发配置 湖北子航网络技术有限公司 金融p2p软件开发 电子商务应用软件开发 深信服软件开发笔试 北京应用软件开发大概要多少钱 南京电商软件开发产品介绍 数据库2019版本密钥 雷达网络技术有限公司 上海驰在互联网科技有限公司官网 springboot租户数据库 趣秒荟互联网科技有限公司 数据库建立的根本目标 软件开发各模块分析设计
0