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

发布时间:2021-07-07 14:43:30 作者:chen
来源:亿速云 阅读:222

这篇文章主要介绍“如何解决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

实际操作图:

如何解决PXE服务器环境搭建流程中遇到的问题 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";

}

}

}

实际操作图:

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

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

实际操作图:

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

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

#vim /etc/xinted.d/tftp

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

实际操作图:

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

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

#vim /etc/exports

/mnt/rhel7 *(ro)

/mnt/ *(ro)

实际操作图:

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

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服务器环境搭建流程中遇到的问题

上述为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

}

实际操作图:

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

若想使用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

实际操作图:

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

若想使用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服务器环境搭建流程中遇到的问题”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

推荐阅读:
  1. 解决Python连接Hadoop数据中遇到的问题
  2. 如何解决MySQL使用中遇到的问题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

pxe服务器

上一篇:C语言编程规范有哪些

下一篇:Mysql主从复制原理及搭建方法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》