我应该更新 Linux 机器上的内核吗?

我应该更新 Linux 机器上的内核吗?

据我了解,更新到新内核(使用普通linux-image...软件包,而不是自己动手)需要重新启动服务器。

但是,我们的一台服务器(Ubuntu 10.04)正在运行多个大型screen会话。重新启动会终止这些会话,这对服务器所有者来说总是一件大麻烦(主要是因为丢失了会话历史记录)。

我该怎么办?我看到了几种可能性:

  • 不做任何事情,即仅更新非内核包(也许使用 apt-pinning?)
  • 更新内核,但不重启。(这很聪明吗?我似乎记得加载内核模块可能会出现一些问题。)
  • 更新内核并重新启动。
    • 是否有某种方法可以保存screen会话?

我想最终可以归结为这个问题: 更新内核有多重要?

我在这里而不是 askubuntu.com 发布这个问题,因为我认为这不是 Ubuntu 特有的问题,尽管该服务器运行的是 Ubuntu。

答案1

您可以使用以下命令避免内核更新后重新启动拼接除此之外,没有一般规则来回答是否真的需要更新的问题,因为这取决于许多因素:

  • 补丁修复的缺陷的性质。许多更新仅针对某些模块、硬件驱动程序或平台,或者它们涉及系统中不会发生的情况。
  • 您运行的系统类型:它提供什么服务,如何连接,您的用户是否值得信赖(对于可能出现用户权限提升错误的情况)?
  • 触发该漏洞后会产生什么影响?它会破坏文件或让每个人都成为 root 还是会让一些未使用的子系统停止工作?

最终,只有您可以决定某个更新是否重要到需要重新启动,但当然有一个经验法则:如有疑问,请进行更新。

答案2

我认为更新系统以修复漏洞是值得的,但我不会仅仅为了更新系统而更新内核。但是,如果你确实更新了内核,我肯定会重新启动。当你运行更新时,它将更新引导加载程序,因此下次重新启动时,它无论如何都会加载内核(除非你事先修改了它)。如果你的服务器因为电源事件或某人滥用 sudo 而重新启动,却发现一个关键应用程序无法运行,因为你需要为新内核重新编译某些东西,那么这不是一个好日子。

我确实认为系统需要以允许更新和重新启动的方式运行。如果您有一堆应用程序需要用户在屏幕内启动服务,那么您的系统就不十分强大。我会努力弄清楚这些屏幕会话存在的原因,以及它们是否真的需要从 init 启动,或者是否是因为有人偷懒。

答案3

当内核更新来自主要供应商时,人们通常可以假设它将包含安全补丁。有时这些补丁适用于你,有时不适用。在决定是否安装该更新或推迟时,你确实需要查看供应商的发行说明,以确定什么已经改变。只有这样你才能开始决定什么适合你,什么不适合你。

一般情况下,我始终建议定期运行自动更新。为此,您应该采取以下措施。

  • 指定一个固定维护时段,例如每周六 0000-0200 时。
  • 在此期间执行所有更新。
  • 如果更新需要,请重新启动系统。

当然,如何完成此类计划的设置/批准/等等将取决于您的组织。无论如何,请务必发布您的计划,以便所有用户都知道会发生什么,并坚持执行。发布计划然后不遵守甚至比根本没有计划更糟糕。

如何安装和重启系统取决于你,但我建议尽可能自动化。这样你就不用担心忘记更新了,如果用户抱怨,你总是可以指着他们说:“不,我没有看到你在系统上工作。这是一个常驻窗口,你知道可能会发生重启自动地“”。

只需谨慎地表达需求,以及如何对用户做出反应什么时候会发生这种情况。你最不想看到的就是看起来像 BOFH。

答案4

我认为你应该/想象一下你继续升级内核。稍后你会看到有多少使用屏幕会话的用户真的在抱怨。我的意思是你是 root 还是不是?告诉他们谁在控制。

相关内容