Linux下搭建PXE服务器

Linux下搭建PXE服务器

一、PXE服务器简介

PXE,预启动执行环境(Preboot eXecution Environment,PXE,也被称为预执行环境)提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。
PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中并执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。

1.1、原理

1.PXE client从自己的PXE网卡启动,向本网络中的DHCP服务器请求ip地址
2.DHCP服务器收到dhcp请求后,分配dhcp地址池中ip给PXE client
3.PXE client向本网络中的TFTP服务器索取bootstarp文件
4.PXE client取得bootstarp文件后之执行pxelinux.0文件引导,使用pxelinux环境来引导os安装程序。
5.PXE client然后读取pxelinux.cfg文件夹中的default(isolinux.cfg)引导文件,通过TFTP服务器加载内核vmlinuz和根文件系统(boot.msg,vesamenu.c32,initrd.img,splash.jpg),通过http服务器加载ks.cfg引导文件。
6.启动linux内核完成安装
在这里插入图片描述

1.2、搭建思路

1、关闭防火墙
2、安装dhcp
3、安装tftp-sever,xinetd,syslinux
4、挂载镜像ISO
5、配置内核及引导文件

二、搭建教程

关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

2.1、配置dhcp

安装dhcp

yum install  dhcp -y 

配置dhcp文件

vi /etc/dhcp/dhcpd.conf
subnet 192.168.2.0 netmask 255.255.255.0 {         #定义子网网段和掩码
	range 192.168.2.30 192.168.2.254;              #子网IP地址范围
	option domain-name-servers 8.8.8.8,8.8.4.4;    #子网DNS
	option domain-name "internal.example.org";     #子网域名
	option routers 192.168.2.1;                    #子网网关
	option broadcast-address 192.168.2.255;        #子网广播地址
	default-lease-time 3600 ;                      #默认租约时间,单位为s
	max-lease-time 7200;                           #最大的租约时间,单位为s
	next-server 192.168.2.11;                      #pxe服务器的ip
	#filename "pxelinux.0";                        #pxe服务器引导文件,legacy模式
    filename "bootx64.efi";                        #efi模式为bootx64.efi

重启dhcp服务并开机自启

systemctl restart dhcpd
systemctl enable dhcpd
systemctl status dhcpd
systemctl is-enabled dhcpd

2.2、配置tftp,xinetd

安装tftp,xinetd

yum install -y tftp tftp-server xinetd

配置tftp,xinetd(修改tftp参数:)
把disable参数修改为no

vim /etc/xinetd.d/tftp
“””
service tftp
{     socket_type            =dgram
       protocol              =udp
       wait                  =yes
       user                  =root
       server                =/usr/sbin/in.tftpd
       server_args           =-s /home/mike/tftpboot -c
       disable               =no
       per_source            =11
       cps                   =100 2
       flags                 =IPv4
}
“””

重启tftp、xinetd服务并开机自启

systemctl restart tftp.socket
systemctl enable tftp.socket
systemctl status tftp.socket
systemctl is-enabled tftp.socket
systemctl restart tftp.service
systemctl enable tftp.service
systemctl status tftp.service
systemctl is-enabled tftp.service
systemctl restart xinetd
systemctl enable xinetd
systemctl status xinetd
systemctl is-enabled xinetd

2.3、配置httpd

安装httpd

yum install -y httpd

配置httpd,挂载镜像到http文件夹

创建挂载镜像目录

mkdir /var/www/html/RHEL

挂载镜像

mount -o loop /root/rhel-server-7.8-x86_64-dvd.iso  /var/www/html/RHEL

浏览器中验证:
输入:http://x.x.x.x/RHEL
查看是否可以看到镜像文件内容

2.4、配置内核、引导

安装syslinux

yum install -y syslinux
2.4.1、legacy模式
2.4.1.1、文件详解

1.引导文件:pxelinux.0
2.内核文件:vmlinuz、 initrd.img
3.系统自带的两种窗口模块之一:vesamenu.c32
4.窗口提示信息文件:boot.msg
5.窗口背景图片:splash.png
6.引导菜单配置文件:isolinux.cfg

2.4.1.2、复制文件
cp /usr/share/syslinux/pxelinux.0   /var/lib/tftpboot/
cp /var/www/html/Rhel/images/pxeboot/{vmlinuz,initrd.img}  /var/lib/tftpboot/
cp /var/www/html/Rhel/isolinux/{vesamenu.c32,boot.msg,splash.png}  /var/lib/tftpboot/

将/usr/share/syslinux/目录下的一下文件也复制到/var/lib/tftpboot/

cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} 	 /var/lib/tftpboot/

在/var/lib/tftpboot/下新建pxelinux.cfg文件夹:

mkdir /var/lib/tftpboot/pxelinux.cfg

复制引导菜单配置文件:isolinux.cfg并修改名称为default文件:

cp /var/www/html/Rhel/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

修改default文件

vim /var/lib/tftpboot/pxelinux.cfg/default
“””
default linux
label linux
  kernel vmlinuz
  append initrd=initrd.img inst.repo=http://192.168.2.11/Rhel7.8 devfs=nomount ip=dhcp
“””

至此,legacy模式pxe服务器完毕,开始前检查dhcpd、tftp、xinetd和httpd服务状态,然后进行pxe部署

2.4.2、EFI模式
2.4.2.1、文件详解

1.引导文件:bootx64.efi
2.内核文件:vmlinuz、 initrd.img
3.系统自带的两种窗口模块之一:vesamenu.c32
4.窗口提示信息文件:boot.msg
5.窗口背景图片:splash.png
6.引导菜单配置文件:isolinux.cfg
注意:引导文件使用bootx64.efi文件 而不是 pxelinux.0

2.4.2.2、复制文件

复制内核文件到/var/lib/tftpboot/

cp /var/www/html/Rhel/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
cp /var/www/html/Rhel/isolinux/{vesamenu.c32,boot.msg,splash.png} 	  /var/lib/tftpboot/

将/usr/share/syslinux/目录下的一下文件也复制到/var/lib/tftpboot/

cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} 	 	 /var/lib/tftpboot/

查看文件复制结果

ls /var/lib/tftpboot/
2.4.2.3、制作bootx64.efi引导文件

安装bootx64.efi引导文件制作工具

yum -y install grub2-efi-modules

执行制作指令

grub2-mkstandalone -d /usr/lib/grub/x86_64-efi/ -O x86_64-efi  --modules="tftp net efinet linux part_gpt efifwsetup" -o bootx64.efi

复制到 /var/lib/tftpboot/
把 grub.cfg 也拷贝到 /var/lib/tftpboot/下面

cp  bootx64.efi  /var/lib/tftpboot/
cp  /var/www/html/Rhel/EFI/BOOT/grub.cfg  /var/lib/tftpboot/
2.4.2.4、修改grub.cfg文件
vim /var/lib/tftpboot/grub.cfg
Linuxefi  (tftp)/vmlinuz inst.repo=http://192.168.2.11/Rhel7.8/
initrdefi  (tftp)/initrd.img
2.4.2.5、重启dhcp服务
systemctl restart dhcpd 

至此,EFI模式pxe服务器完毕,开始前检查dhcpd、tftp、xinetd和httpd服务状态,然后进行pxe部署

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值