news 2026/3/19 21:05:55

Linux命令-kexec(从当前正在运行的内核引导到一个新内核)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux命令-kexec(从当前正在运行的内核引导到一个新内核)

kexec是 Linux 系统中一项强大的功能,从当前正在运行的内核直接引导到一个新内核,而无需经过耗时的 BIOS/UEFI 硬件初始化过程。这在需要频繁重启(如内核开发、系统测试)或构建高可用性系统时特别有用。

⚙️ 使用前提

在开始使用kexec前,请确保系统满足以下两个基本条件:

  1. 内核支持:当前运行的内核必须编译时启用了CONFIG_KEXEC选项。可以通过以下命令检查:

    grep-F CONFIG_KEXEC /boot/config-`uname-r`

    如果返回CONFIG_KEXEC=y,则表示支持。如果结果是CONFIG_KEXEC=n,则需要重新编译内核并启用该选项。

  2. 安装工具:系统需要安装kexec-tools软件包,它提供了用户空间的kexec命令。

    • 在基于 Debian/Ubuntu 的系统上:
      sudoapt-getinstallkexec-tools
    • 在基于 RHEL/CentOS 的系统上:
      sudoyuminstallkexec-tools

📝 基本使用方法

kexec的典型使用流程分为两步:加载新内核和切换到新内核。

1. 加载新内核

使用kexec -l(或--load)命令将新内核及其初始RAM磁盘(initrd)和命令行参数加载到当前内核中。

基本语法

sudokexec -l<新内核的路径>--initrd=<新initrd的路径>--append="<内核命令行参数>"

参数详解

  • -l:指定要加载的新内核映像文件路径,例如/boot/vmlinuz-x.x.x-xx-generic
  • --initrd:指定新内核对应的初始内存文件系统(initramfs)映像文件路径。
  • --append:传递给新内核的启动参数。一个稳妥的做法是直接使用当前内核的参数,即--append="$(cat /proc/cmdline)"。也可以在此基础上修改或使用全新的参数。

示例
假设想加载/boot/vmlinuz-5.15.0-60-generic这个内核,并保持启动参数与当前内核一致:

sudokexec -l /boot/vmlinuz-5.15.0-60-generic --initrd=/boot/initrd.img-5.15.0-60-generic --append="$(cat/proc/cmdline)"
2. 切换到新内核

加载完成后,使用以下命令立即切换到已加载的新内核:

sudokexec -e

执行此命令后,系统会立即重新启动到新内核,不会正常关闭现有应用程序和服务。因此,在执行前请务必保存好所有工作。

🛠️ 其他常用参数

参数功能说明
-l/--load加载一个新内核。
-e/--exec执行(切换)到已加载的内核。
-p/--load-panic专用于kdump场景,加载一个在系统崩溃(panic)时自动启动的捕获内核。
-u/--unload卸载当前已加载的 kexec 内核。
-f/--force强制立即调用 kexec,而不正常关闭系统(慎用)。
-t指定新内核的类型(如elfbzImage等)。

💡 重要注意事项

  • 快速但非安全关闭kexec -e触发的重启不会正常停止系统服务或卸载文件系统。它旨在追求速度,因此请在切换前手动终止应用程序并同步文件系统,以避免数据损坏。
  • 内核兼容性:新加载的内核本身最好也支持kexec系统调用。如果新内核不支持,那么切换后将无法再次使用kexec进行快速重启。
  • 与 kdump 的关系kdump是一种官方的内核崩溃转储机制,它的核心正是依赖于kexeckdump会在系统启动时,预先使用kexec -p加载一个轻量级的“捕获内核”。当生产内核崩溃时,会自动切换到捕获内核来收集崩溃信息(vmcore),以供后续分析。

💎 总结

kexec命令是 Linux 系统管理员和开发者工具箱中一个用于实现快速重启和内核崩溃转储的强大工具。核心用法就是kexec -l加载后,再kexec -e切换。请务必在测试环境中熟练操作后再应用于生产环境,并始终牢记其“非安全关闭”的特性。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/16 8:28:50

‌如何测试AI的“长上下文记忆”?

长上下文记忆测试的本质是“信息持久性验证”‌ AI的“长上下文记忆”并非真正记忆&#xff0c;而是模型在单次推理中对输入序列的‌上下文窗口内信息的保持与推理能力‌。测试目标不是验证“记住”&#xff0c;而是验证‌关键信息在超长对话链中是否可被准确召回、正确引用、…

作者头像 李华
网站建设 2026/3/13 6:33:52

批量解密神器,没有限制

有的时候在网上下载了PDF文档&#xff0c;发现都没有办法进行任何的操作&#xff0c;就连打印权限都没有。今天给大家介绍的这款软件可以一键帮你进行PDF解密&#xff0c;非常方便&#xff0c;完全免费&#xff0c;有需要的小伙伴可以下载收藏。 PDF智能助手 批量解密PDF文件 …

作者头像 李华
网站建设 2026/3/7 11:14:40

性能测试与代码覆盖率联动方案

1. 背景与重要性 在软件开发周期中&#xff0c;性能测试和代码覆盖率分析是两大核心质量保障手段。性能测试评估系统在高负载下的响应时间、吞吐量等指标&#xff0c;确保软件在真实环境中的稳定性&#xff1b;代码覆盖率则衡量测试用例对源代码的覆盖程度&#xff0c;包括语句…

作者头像 李华