使用 PXE 启动自定义 Linux 映像

使用 PXE 启动自定义 Linux 映像

是否可以使用 PXELINUX 使用自定义 Linux 映像通过 PXE 启动客户端?

背景

我们使用各种使用 Linux 作为操作系统(具体来说是 Ubuntu)的物联网设备(基于 Intel 的处理器)。但我们根据需要定制了操作系统(例如添加我们自己的应用程序、系统配置等)。现在,我们正在研究是否可以使用 PXE 来启动这些设备,作为本地存储损坏的故障保护(或者只是摆脱这种情况)。

我可以使用 TFTPD64(在 Windows 上)和 PXELINUX 使用标准 Ubuntu 映像来实现此目的。我可以根据不同设备的 MAC ID 有选择地启动映像。但我很难让它符合我们的形象。

所以我的问题是,如何创建自定义映像(或使用任何其他方式)来使用 PXE 启动 Linux 系统?

我使用 DD 实用程序创建了 ISO(大小超过 4GB)。但 PXELINUX 引导加载程序甚至无法下载该 ISO。

答案1

这些步骤可帮助您启动自定义映像:

1)你需要决定你未来的定位根 (/)(完全位于网络资源中(即网络文件系统)或者它会在启动期间加载到 RAM 中。

2) 准备你的初始化程序取决于步骤 1)。

3)放置你的核心初始化程序TFTP服务器。

4) 更改您/etc/fstab的系统映像(可能是 iso 或南瓜文件系统或在网络资源上完全解压)。


结果启动顺序:

1) 内核解压initrd并将控制权传递给它。

2)initrd挂载网络资源(或复制到RAM(临时文件系统)如果加载的系统将完全位于 RAM 中)。

3) initrd 将控制权返回给内核,并init/systemd从挂载准备好的内核加载根 (/)。

相关内容