自动内核升级

自动内核升级

我正在编写一个 BASH 脚本,可以自动配置、构建和安装最新的内核映像。生成的内核应包含网络安全补丁集。它将使用之前的配置/proc/config.gz,该配置是我在计算机上编译第一个自定义内核时手动创建的。

完全自动化该过程是否安全?它看起来像这样:

  1. grsecurity检查可用的最新内核
  2. 下载grsecurity补丁集和匹配的内核源代码树
  3. 给内核打补丁
  4. 将之前的内核配置文件复制到内核源码目录中
  5. 运行make olddefconfig根据之前的配置来配置内核
  6. 编译内核fakeroot make deb-pkg
  7. 安装生成的软件包并更改引导加载程序优先级
  8. 给我发邮件表明需要重新启动

主要问题:如果之前的配置工作正常,那么编译的内核是否可能olddefconfig包含错误,导致系统无法启动?这非常重要,因为它是通过 SSH 访问的远程服务器,手动救援需要花费大量精力。

答案1

如果你无法承受失败,那就进行测试。
即使你可以承受失败,测试也是好的。如果可能的话,在专用测试环境中运行构建。在许多情况下,虚拟访客可以构成足够的测试系统。当您重新启动到更新的内核并且任何后续测试也成功完成时,才将新软件包复制并部署到远程系统。

现在回答您的主要问题:您的计划是否make olddefconfig包含会导致启动失败的错误?
只有白痴才会相信任何系统都是完全万无一失的。当你想运行最近的内核,正如您所说,您将处于最前沿,并拥有与之相关的所有优势和风险。降低风险是选择一个长期版本,其中功能集被冻结,并且仅引入错误/安全修复。

无论如何:任何重新启动都有很小的失败风险。

旁注:过去我在数据中心花费了太多时间来修复服务器中的问题/配置错误,因此我建议每个人始终添加合适的远程管理选项(例如 HP ILO、Dell 的 DRAC、Oracle 的 ILOM 等或 KVM)通过 IP 网关)连接到远程服务器,使您可以在舒适的办公桌上解决大多数问题。

相关内容