将自定义内核部署到多个主机的有效方法

将自定义内核部署到多个主机的有效方法

我最近必须从 Linux 内核的源代码进行定制构建。该自定义内核现在已安装在我用来构建它的机器上并且工作正常。

现在还有其他的类似的系统(即硬件方面)我希望它们运行相同的内核。我并不是特别想在每台机器上再次重建内核,据我所知,如果一台机器的硬件与另一台机器相似,则不需要重建内核。

如果这个假设成立,那么将现有内核版本部署到类似机器上的最有效方法是什么?

我想到了几个选项:

  1. /boot/从和复制自定义构建文件/lib/modules/
  2. 使用自定义内核生成 rpm,以便轻松部署它,同时跟踪所有已安装的文件(因此也易于删除)

其他选择?有人有这方面的经验吗?

答案1

我不知道如何相似的你的机器是,但我已经致力于将内核部署到许多相同的系统。选项 1 通常是我执行此操作的方式 - 只需通过网络推送新内核和模块。不过,如果系统上有包管理器,那么 rpm 包也不失为一个好方法。

如果系统中存在一些硬件差异,则内核可能会出现问题。就像一台机器上有不同的以太网 MAC 一样,您可能需要启用对该特定硬件的支持。

基本上,您可以启用内核必须提供的所有功能,以获得支持每个系统的臃肿内核,或者您可以准确地找出您正在使用的硬件并仅启用对该硬件的支持 - 生成更精简的内核。

答案2

假设所有系统都运行相同的发行版,生成 RPM(假设这是您的发行版使用的包格式)并部署它。这有很多好处,而且基本上没有坏处。

  • 按照发行版的过程生成包可确保一切就位 - 不仅仅是内核,还有 initramfs(如果使用)、模块、引导加载程序更新脚本、文档、调试和模块构建信息等。
  • 生成包可以让您进行版本跟踪。即使在部署升级时计算机已关闭或磁盘已满,您也可以找出现在安装的内容。
  • 使用包管理器,您可以部署任何软件,而不仅仅是内核。您无需为每个要部署的软件重新发明轮子。
  • 如果您的发行版没有记录的方法来制作您自己的内核包,那么就会产生前期成本。但如果确实如此,而且我认为大多数人都这样做,那么前期成本并不比手动收集所有必要的部分大。

相关内容