程序锅

  • 首页
  • 分类
  • 标签
  • 归档
  • 关于

  • 搜索
基础知识 Etcd LeetCode 计算机体系结构 Kubernetes Containerd Docker 容器 云原生 Serverless 项目开发维护 ELF 深入理解程序 Tmux Vim Linux Kernel Linux numpy matplotlib 机器学习 MQTT 网络基础 Thrift RPC OS 操作系统 Clang 研途 数据结构和算法 Java 编程语言 Golang Python 个人网站搭建 Nginx 计算机通用技术 Git

网络基础 | PXE

发表于 2021-09-26 | 分类于 网络 | 0 | 阅读次数 1676

PXE(预启动执行环境)

网络管理员在 DHCP 协议的基础之上,还可以帮网络中的机器自动安装操作系统。帮网络中的机器自动安装操作系统的需求,在普通的笔记本电脑上一般不会有这种需求,但是在数据中心中往往有这种需求,因为数据中心的管理员可能一下子就拿到几百万台空的机器,一个个安装操作系统将会很繁琐。这个时候管理员希望的不仅仅是自动分配 IP 地址了,而是自动安装操作系统。

一般安装操作系统的过程是这样:首先,启动 BIOS。这是一个特别小的小系统,只能干特别小的一件事情。其实就是读取硬盘的 MBR 启动扇区,将 GRUB 启动起来;然后将权力交给 GRUB,GRUB 加载内核、加载作为根文件系统的 initramfs 文件;然后将权力交给内核;最后内核启动,初始化整个操作系统。

那么,想要通过网络的方式自动安装操作系统的话,也得是在 BIOS 启动之后。而这个这个过程叫做预启动执行环境(Pre-boot Execution Environment),简称 PXE。因为在 BIOS 之前啥都没有。而在 BIOS 之后,有了启动扇区,那么 PXE 可以先将操作系统拉取到本地,然后将其加载起来。

PXE 协议分为客户端和服务器端,由于还没有操作系统,只能先把客户端放在 BIOS 里面。当计算机启动时,BIOS 把 PXE 客户端调入内存里面,就可以连接到服务端做一些操作了。

  • 首先 PXE 的客户端启动起来之后,第一步是发送一个 DHCP 的请求,让 DHCP Server 给它分配一个地址。除此之外,DHCP Server 还会给它返回 PXE 服务器的地址、启动文件 pxelinux.0。
  • PXE 客户端知道 PXE 服务端的地址之后,就可以去 PXE 服务器下载启动文件。下载的时候使用的是 TFTP 协议。所以 PXE 服务器上,往往还需要有一个 TFTP 服务器。所以 PXE 就会向 PXE 服务器请求启动文件 pxelinux.0。
  • PXE 客户端下载到这个文件之后,就开始执行这个文件了。这个文件会指示 PXE 客户端向 TFTP 服务请求计算机的配置信息 pxelinux.cfg。这个文件里头会说明内核在哪里、initramfs 在哪里。接下去 PXE 客户端会请求这些文件。
  • 最后,启动 Linux 内核。当内核启动之后,还会再通过 DHCP 协议请求分配一个 IP 地址。

想要使用 PXE,那么 DHCP Server 除了配置 IP 地址段、子网掩码、网关地址、租期之外。还需要配置 next-server,指向 PXE 服务器的地址,同时配置初始化启动文件的名字。如下所示:


ddns-update-style interim;
ignore client-updates;
allow booting;
allow bootp;
subnet 192.168.1.0 netmask 255.255.255.0
{
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option time-offset -18000;
default-lease-time 21600;
max-lease-time 43200;
range dynamic-bootp 192.168.1.240 192.168.1.250;
filename "pxelinux.0";
next-server 192.168.1.180;
}
卷死我
dawnguo 微信支付

微信支付

dawnguo 支付宝

支付宝

  • 本文作者: dawnguo
  • 本文链接: /archives/78
  • 版权声明: 本博客所有文章除特别声明外,均采用CC BY-NC-SA 3.0 许可协议。转载请注明出处!
# 网络基础
网络基础 | 应用层-http/https
Etcd 整体介绍
  • 文章目录
  • 站点概览
dawnguo

dawnguo

215 日志
24 分类
37 标签
RSS
Creative Commons
© 2018 — 2025 程序锅
0%