pxe装机的原理

pxe装机的原理

原理图

请添加图片描述

第一步 获取pxe启动

  1. 当设备通过pxe获取地址时,它会进入一个嵌入在网卡固件中的小型操作系统(PXE ROM)来执行DHCP通信。PXE ROM会发送DHCP Discover(dhcp发现)广播消息,使用随机端口和DHCP服务器的67号端口通信,以获取网络配置信息
    请添加图片描述
    可以看到,pxe rom发送一个dhcp发现报文到广播中,15.135收到了这个报文,并回包给pxe rom,其中包含可用地址,pxe rom收到报文后,从这里面的IP地址挑选一个,并且回包给15.135(包含pxe rom挑选的地址),让他确认地址时候可用,15.135确认可用后,把IP、网关、掩码等关键信息发送给pxe rom,同时dhcp服务器告诉pxe rom,tftp服务器有pxelinux.0文件。

第二步 加载pxelinux.0-→ldlinux.c32-→default

请添加图片描述

开始传输pxelinux.0文件

PXE客户端下载完pxelinux.0文件后,会在RAM(可以理解在内存中)加载,然后让客户端请求ldlinux.c32文件并加载,加载完成后,使用轮询的方式加载pxelinux.cfg下的文件

请添加图片描述

pxelinux.cfg/default内容

root@Master-01:/srv/tftp/debian-installer/amd64/pxelinux.cfg# cat default
DEFAULT debian
LABEL debian
KERNEL debian-installer/amd64/linux
APPEND vga=788 fb=false initrd=/debian-installer/amd64/initrd.gz netcfg/choose_interface=auto auto=true priority=critical url=http://192.168.15.135/preseed.cfg console=tty0 selinux=0 biosdevname=0
IPAPPEND 2

DEFAULT #默认引导
LABEL #引导选项名称
KERNEL #指定内核文件
APPEND #要传递给内核的启动参数

其中debian-installer/amd64/linux它主要负责引导和初始化安装程序,同时向内核传递APPEND的内容,其中主要有:

initrd.gz文件,它主要是加载一个临时的文件系统和驱动程序,当加载完成后,initrd.gz将被卸载

preseed.cfg文件,应答文件。

决定系统版本的是netboot.tar.gz,debian官网下载的网络装机文件

自己总结

首先服务器启动,运行网卡固件中的pxe rom(提供DHCP功能),发送dhcp请求,dhcp服务器分配IP并指定tftp地址和pxelinux.0文件,加载pxelinux.0(网络引导加载程序)文件后加载ldlinux.c32文件(syslinux引导文件,提供了额外的功能和库支持),他们两个的功能组合起来功能加载并运行pxelinux.cfg下的default文件中指定的kernel和initrd.gz,当加载完毕后,pxelinux.0和ldlinux.c32将被卸载并释放空间。之后按照应答文件,自动安装。以上步骤都在内存中进行

ChatGpt总结

根据您提供的信息,这是一种典型的基于PXE(Preboot Execution Environment)的网络引导过程。下面是对每个步骤的解释:

1. 服务器启动并加载网卡固件中的PXE ROM:在服务器启动时,网卡固件中的PXE ROM会被加载。PXE ROM是一段固件代码,它提供了网络引导所需的功能,包括DHCP(动态主机配置协议)。

2. 发送DHCP请求:一旦服务器启动并加载了PXE ROM,它会发送一个DHCP请求广播,以获取网络配置信息,包括IP地址、子网掩码、网关等。

3. DHCP服务器分配IP并提供TFTP地址和pxelinux.0文件:DHCP服务器接收到服务器的DHCP请求后,会为服务器分配一个IP地址,并返回给服务器一个TFTP(Trivial File Transfer Protocol)服务器的地址以及一个名为"pxelinux.0"的文件。

4. 加载pxelinux.0文件:服务器接收到TFTP服务器地址和"pxelinux.0"文件名后,使用TFTP协议从TFTP服务器下载该文件。pxelinux.0是一个网络引导加载程序,它负责进一步的引导过程。

5. 加载ldlinux.c32文件:一旦pxelinux.0加载完毕,它会加载ldlinux.c32文件。ldlinux.c32是Syslinux引导文件,它提供了额外的功能和库支持,以便在引导过程中执行更复杂的操作。

6. 加载并运行pxelinux.cfg下的default文件中指定的kernel和initrd.gz:ldlinux.c32加载完毕后,它会根据pxelinux.cfg目录下的default文件中的配置,加载指定的kernel(内核)和initrd.gz(初始内存盘)文件。这些文件包含了操作系统的核心组件和初始文件系统,用于启动和安装操作系统。

7. 卸载pxelinux.0和ldlinux.c32:一旦kernel和initrd.gz文件加载完毕,pxelinux.0和ldlinux.c32将被卸载并释放内存空间,因为它们的任务已经完成。

8. 自动安装:加载完kernel和initrd.gz后,根据预先配置的应答文件,自动安装过程开始。应答文件包含了安装过程中的配置选项和参数,使得安装过程可以在没有人工干预的情况下进行。

总结:以上步骤描述了基于PXE的网络引导过程,通过网络从服务器启动并自动安装操作系统。这些步骤都在服务器的内存中进行,而不需要使用本地存储设备。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值