![使用 PXE 启动自定义 Linux 映像](https://linux22.com/image/130788/%E4%BD%BF%E7%94%A8%20PXE%20%E5%90%AF%E5%8A%A8%E8%87%AA%E5%AE%9A%E4%B9%89%20Linux%20%E6%98%A0%E5%83%8F.png)
是否可以使用 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
从挂载准备好的内核加载根 (/)。