更新Linux内核后是否需要重启服务器(已解决)更新Linux内核后是否需要重启服务器(已解决)更新Linux内核后是否需要重启服务器(已解决)更新Linux内核后是否需要重启服务器(已解决)
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

更新Linux内核后是否需要重启服务器(已解决)

与 Windows 不同,在 Windows 中必须没有运行程序才能更新此程序,在 Linux 中,您可以毫无问题地更新正在运行的程序——这不会导致任何错误。在 Linux 中,你可以删除正在使用的文件(包括可执行文件),当它们在使用时,它们会被保存在缓存中,当系统停止使用它们时,它们才会真正被删除。也就是说,当更新正在运行的程序时,将在您关闭并重新打开该程序后使用新版本的文件。

更新 Linux 内核也不例外——您可以在正在运行的系统上更新内核并继续使用它。

这就提出了一个问题,Linux 内核更新后是否真的需要重新启动系统?此问题与在重新启动期间变得不可用的 Web 服务器尤其相关。这在使用缓存(Varnish 或 NGINX)时也很重要,因为缓存通常存储在 RAM 中并在重启时丢失,导致需要重新填充网页缓存。

那么更新Linux内核后是否需要重启电脑呢?

简而言之,是的,绝对。为了使系统开始使用新内核,需要重新启动计算机(服务器)。

更新内核后,无需重启即可继续使用服务器,但除了新内核的好处尚未生效外,还有几点需要注意。

1.避免后续包更新,直到重启

由于内核头包(linux-headers、kernel-headers)随着内核一起更新,使用dkms(动态内核模块系统)构建模块可能会出现问题。使用旧内核时会出现一种情况,内核头文件(linux-headers)可能已经被删除,导致系统无法正常构建dkms模块。

即使保留了内核头文件并且可以为过时的内核构建内核模块,但在重新启动后这些模块将立即与新内核发生冲突并且由于当前内核版本之间的差异而无法工作以及构建它们的内核。

2. dkms 模块在内核更新之前可能无法工作

更新内核时,将重建所有使用 dkms 的内核模块。使用 dkms 内核模块的软件包示例包括 Wi-Fi 适配器驱动程序、VirtualBox 来宾添加、其他驱动程序和内核模块。

因此,更新内核时会重建新的内核模块,但在使用旧内核时不能使用。也就是说,为了让它们工作,需要重新启动。在这种情况下,某些发行版中的旧内核模块会立即被删除。

3.意外重启会导致意想不到的结果

请记住,您的系统尚未使用新内核进行测试。因此,如果服务器在您不注意的情况下重新启动,那么一旦出现问题,您将无法快速响应。

如何在内核更新后不重启 Linux

1. 可执行

Kexec 是一个系统调用,它使您能够从当前运行的内核加载并引导到另一个内核。这对于内核开发人员或其他需要快速重启而无需等待整个 BIOS 引导过程完成的人非常有用。请注意,由于使用此方法时设备未完全重新初始化,kexec 可能无法正常工作,但这种情况很少见。

简而言之,Kexec 是跳过硬件部分(您从 BIOS 开始看到的)重新启动计算机。

2. Linux 4.0 内核是否不再需要重启电脑?

在 Linux 4.0 变更日志中,据说从这个版本开始,不再需要重新启动内核。但它要么不能,要么不能开箱即用。至少,这需要实施额外的步骤。

概括

需要在更新 Linux 内核后重新启动计算机。可能会推迟,但实际上推迟内核更新比更新后推迟重启更好。

作为减少重启造成的停机时间的一种选择,您可以减少更新次数,只使用更新来修复漏洞。

©2015-2025 艾丽卡 support@alaica.com