是否有默认的 conf 文件来构建 pxe 启动的内核

是否有默认的 conf 文件来构建 pxe 启动的内核

概括:

我正在尝试构建一个内核来 pxe 启动 Clonezilla。我认为 live CD 附带的内核在 pxe 启动方面存在问题。所以我需要构建一个内核,到目前为止,我的所有尝试都以崩溃告终。我希望有人可以分享一个我可以尝试构建的基本配置。有这样的事吗?

对这个问题稍微多一点背景....

尝试 pxe 启动 Clonezilla。此链接https://bugs.busybox.net/show_bug.cgi?id=1963解释了我看到的情况。但经过一番研究,我认为这不是问题所在。我的接口没有获取 IP 地址。如果我从命令行运行它,它会说选择地址,但永远不会设置接口。我试过 pxelinux.0(2009 年 2 月 9 日)、pxelinux.0(2014 年 10 月 6 日)和 gpxelinux.0(2014 年 10 月 6 日),都出现了同样的问题。

由于没有 IP,因此启动过程无法继续,因为它无法拉取 squashfs 文件。

当我问Clonezilla 和 udchpd 不工作有建议说问题可能出在内核,那时我开始构建一个新的并看到 DHCP 参数。

我认为这些与我的问题有关,但不是我的问题。如果获取正确的内核构建参数,那么它可能会解决他们的问题......

在 PXE 启动期间无法从 WDS 的 TFTP 服务器传输 TFTP clonezilla 文件

将 squashFS 和 initrd 合并为一个文件(PXE 启动)

答案1

不,PXE 启动没有默认的内核配置。可以编译一个单片内核,该内核将自动尝试使用基本 BOOTP/DHCP 获取 IP 地址,但这不是通常的做法。

现代方法是使用引导加载程序(例如 pxelinux 或 iPXE),它将下载两个文件:内核和 initramfs/initrd 文件。 initramfs/initrd 文件可以包含内核模块(在检测到匹配的硬件时根据需要加载)和初始化关键硬件所需的实用程序,以便引导可以继续进行。 如果从网络引导,这包括初始化网络接口。 之后发生的事情取决于 initramfs/initrd 文件中内置的代码/脚本以及引导加载程序为内核提供的引导选项(最常用的是使用 APPEND 关键字)。

我对 udhcpd 不是很熟悉,但它似乎是一个非常简单的 DHCP 客户端。因此它可能具有以下属性: - 它可能希望提前启动网络接口(例如“ifconfig eth0 up”或“ip link set eth0 up”,具体取决于旧的“ifconfig”配置命令或较新的“ip”是否可用) - 在收到 DHCP 参数后,它可能无法处理实际的接口设置:相反,它会将它们传递给脚本,该脚本将使用“ifconfig”、“ip”和/或“route”等命令根据收到的参数设置网络接口。

我认为你可能不必要地执着于构建内核的想法;这不太可能是问题的根源。你指的是https://bugs.busybox.net/show_bug.cgi?id=1963这些信息已经有 7 年历史了。(在功能齐全的 Linux 发行版中,“ifup -a” 是用于初始化所有网络接口的常见高级命令;在 Clonezilla 等紧凑型设置中,通常不存在 ifup 命令。)

您说您的尝试到目前为止都以崩溃告终。这意味着内核无法访问根文件系统 - 而对于 Clonezilla,根文件系统位于 filesystem.squashfs 文件中,该文件应该在网络接口配置完成后由 initrd 下载。

那么,您知道您的尝试究竟出了什么问题吗?您是否使用 Wireshark 或类似工具监控过网络流量?

排除网络启动故障的问题是,当启动时出现问题时,Linux 内核和相关实用程序通常会输出大量信息,以至于第一个错误消息会从屏幕上滚出。通常第一个错误消息是最重要的:所有后续错误很可能都是第一次故障的结果。

通过监控网络流量,您可以获得一些确凿的事实: - 引导加载程序是否会从 TFTP 服务器成功下载内核和 initrd 文件? - 引导加载程序启动内核后,您是否可以看到另一个 DHCP 查询?那将是 udhcpd 获取网络参数。 - 之后,应该有一个针对 filesystem.squashfs 文件的 TFTP 请求。它成功了吗?如果没有,实际发送的 TFTP 请求是什么,它在 TFTP 服务器的文件系统中映射到哪个路径名?该文件是否存在于正确的路径名中,并且 TFTP 服务器是否允许发送它?

您是否尝试过 Clonezilla Live(这是 Clonezilla 的一个明确用于 PXE 网络启动的版本)? http://clonezilla.org/livepxe.php

相关内容