lfaraone Asked: 2009-05-20 13:03:48 +0800 CST2009-05-20 13:03:48 +0800 CST 2009-05-20 13:03:48 +0800 CST 内核更新后重启 Linux 重要吗? 772 我有一些生产 Fedora 和 Debian 网络服务器来托管我们的网站以及用户 shell 帐户(用于 git vcs 工作、一些 screen+irssi 会话等)。 有时,新的内核更新会在yum/apt-get中出现,我想知道大多数修复是否严重到需要重新启动,或者我是否可以在不重新启动的情况下应用修复。 我们的主要开发服务器目前有 213 天的正常运行时间,我不确定运行这么旧的内核是否不安全。 linux update kernel 8 个回答 Voted Best Answer Zoredache 2009-05-20T13:37:24+08:002009-05-20T13:37:24+08:00 正常运行时间长并没有什么特别之处。通常最好有一个安全的系统。所有系统都需要在某个时候更新。您可能已经在应用更新,您是否在应用这些更新时安排中断?您可能应该以防万一出现问题。重新启动真的不应该那么多时间。 如果您的系统对中断非常敏感,您可能应该考虑某种集群设置,这样您就可以更新集群的单个成员,而不会导致一切都停止。 如果您不确定某个特定更新,安排重新启动并应用它可能更安全(最好在另一个类似系统上测试之后)。 如果您有兴趣了解更新是否重要,请花时间阅读安全通知,并点击链接返回CVE或描述问题的帖子/列表/博客。这应该可以帮助您确定更新是否直接适用于您的情况。 即使您认为它不适用,您仍然应该考虑最终更新您的系统。安全性是一种分层方法。您应该假设在某个时间点其他层可能会失败。此外,您可能会忘记您有一个易受攻击的系统,因为您在稍后更改配置时跳过了更新。 无论如何,如果您想忽略或等待基于 Debian 的系统的更新,您可以暂停该软件包。我个人喜欢保留所有内核包以防万一。 在基于 Debian 的系统上设置一个包的 CLI 方法。 dpkg --get-selections | grep 'linux-image' | sed -e 's/install/hold/' | sudo dpkg --set-selections Brent 2009-05-20T15:22:29+08:002009-05-20T15:22:29+08:00 大多数更新不需要重新启动,但内核更新需要(如果不重新启动就无法真正替换正在运行的内核)。 我发现的一件事是,如果您的服务器已经运行了很长时间而没有重新启动,那么您更有可能在重新启动时进行磁盘检查 (fsck),这会显着增加恢复所需的时间重新启动并运行。最好预见到这一点并为此做好计划。 我还发现配置更改有时会被遗漏,并且在重新启动之前不会被注意到(例如添加新的 IP 地址/iptables 规则等)这也增加了不经常重新启动时的“停机风险”。 最好在重新启动时计划一些停机时间 - 或者如果这不是一个理想的选择,请将您的服务器设置在集群中,以便在必要时可以重新启动。 Tim 2009-05-20T17:32:50+08:002009-05-20T17:32:50+08:00 如果您只需要安全更新而不是全新的内核,您可能会对Ksplice感兴趣- 它可以让您将某些内核更新修补到正在运行的内核中。 theotherreceive 2009-06-22T09:40:10+08:002009-06-22T09:40:10+08:00 对此没有简单的答案,有些内核升级与安全性无关,有些可能会修复不影响您的安全问题,而另一些可能会影响您。 最好的方法 imo 是注册相关的安全邮件列表,比如ubuntu 的安全公告,这样你就可以看到安全补丁何时发布,以及它们如何影响你。 我还会考虑使用 apticron或类似工具来获取任何其他软件包更新的详细信息和变更日志。 Avery Payne 2009-05-20T13:07:14+08:002009-05-20T13:07:14+08:00 这是更新的功能 - 如果它修复了 priv。升级导致 root 访问,那么您可能想要应用它。 mibus 2009-06-22T16:14:58+08:002009-06-22T16:14:58+08:00 如果您不重新启动,则应确保新内核不是在启动时启动的默认内核。 您想要的最后一件事是在计划外重启后将未经测试的内核用于生产。 Kamil Kisiel 2009-06-22T21:27:34+08:002009-06-22T21:27:34+08:00 正如 mibus 所提到的,如果您安装内核并且不重新启动,请确保它不是默认设置。您不知道您的服务器是否会恢复或处于什么状态,因此请确保它已经过测试。 话虽如此,我认为在可能的情况下养成定期重启机器的习惯是件好事。许多硬件和软件故障只会在重新启动时出现,最好在计划重新启动时而不是在计划外中断期间找出这些故障。 MikeyB 2009-05-20T13:10:30+08:002009-05-20T13:10:30+08:00 请注意,某些 debian 内核更新需要(强烈推荐)在应用它们后尽快重新启动。 当差异不足以保证模块目录更改时会出现这种情况,但模块可能会有所不同。 当您安装此类内核软件包时,Debian 会警告您。
正常运行时间长并没有什么特别之处。通常最好有一个安全的系统。所有系统都需要在某个时候更新。您可能已经在应用更新,您是否在应用这些更新时安排中断?您可能应该以防万一出现问题。重新启动真的不应该那么多时间。
如果您的系统对中断非常敏感,您可能应该考虑某种集群设置,这样您就可以更新集群的单个成员,而不会导致一切都停止。
如果您不确定某个特定更新,安排重新启动并应用它可能更安全(最好在另一个类似系统上测试之后)。
如果您有兴趣了解更新是否重要,请花时间阅读安全通知,并点击链接返回CVE或描述问题的帖子/列表/博客。这应该可以帮助您确定更新是否直接适用于您的情况。
即使您认为它不适用,您仍然应该考虑最终更新您的系统。安全性是一种分层方法。您应该假设在某个时间点其他层可能会失败。此外,您可能会忘记您有一个易受攻击的系统,因为您在稍后更改配置时跳过了更新。
无论如何,如果您想忽略或等待基于 Debian 的系统的更新,您可以暂停该软件包。我个人喜欢保留所有内核包以防万一。
在基于 Debian 的系统上设置一个包的 CLI 方法。
大多数更新不需要重新启动,但内核更新需要(如果不重新启动就无法真正替换正在运行的内核)。
我发现的一件事是,如果您的服务器已经运行了很长时间而没有重新启动,那么您更有可能在重新启动时进行磁盘检查 (fsck),这会显着增加恢复所需的时间重新启动并运行。最好预见到这一点并为此做好计划。
我还发现配置更改有时会被遗漏,并且在重新启动之前不会被注意到(例如添加新的 IP 地址/iptables 规则等)这也增加了不经常重新启动时的“停机风险”。
最好在重新启动时计划一些停机时间 - 或者如果这不是一个理想的选择,请将您的服务器设置在集群中,以便在必要时可以重新启动。
如果您只需要安全更新而不是全新的内核,您可能会对Ksplice感兴趣- 它可以让您将某些内核更新修补到正在运行的内核中。
对此没有简单的答案,有些内核升级与安全性无关,有些可能会修复不影响您的安全问题,而另一些可能会影响您。
最好的方法 imo 是注册相关的安全邮件列表,比如ubuntu 的安全公告,这样你就可以看到安全补丁何时发布,以及它们如何影响你。
我还会考虑使用 apticron或类似工具来获取任何其他软件包更新的详细信息和变更日志。
这是更新的功能 - 如果它修复了 priv。升级导致 root 访问,那么您可能想要应用它。
如果您不重新启动,则应确保新内核不是在启动时启动的默认内核。
您想要的最后一件事是在计划外重启后将未经测试的内核用于生产。
正如 mibus 所提到的,如果您安装内核并且不重新启动,请确保它不是默认设置。您不知道您的服务器是否会恢复或处于什么状态,因此请确保它已经过测试。
话虽如此,我认为在可能的情况下养成定期重启机器的习惯是件好事。许多硬件和软件故障只会在重新启动时出现,最好在计划重新启动时而不是在计划外中断期间找出这些故障。
请注意,某些 debian 内核更新需要(强烈推荐)在应用它们后尽快重新启动。
当差异不足以保证模块目录更改时会出现这种情况,但模块可能会有所不同。
当您安装此类内核软件包时,Debian 会警告您。