kexec是一种可以让 Linux 从当前运行的内核引导进入另一内核的工具,支持在不执行任何硬件初始化的情况下加快系统重引导速度,本文介绍如何使用
使用场景
工具的特点
- 加快系统重引导速度
- 避免不可靠的固件和硬件
- 保存崩溃内核的转储
- 无需 GRUB 2 配置即可引导
安装
- 命令行工具
# ubuntu
apt install kexec-tools
# fedora
dnf install kexec- tools- 内核配置时,必须启用 kexec 支持,如下
[*] kexec system call检查命令如下:
$ uname -r
5.15.0-46-generic
$ grep CONFIG_KEXEC /boot/config-5.15.0-46-generic
CONFIG_KEXEC=y # 内核启动 kexec 的标志
CONFIG_KEXEC_FILE=y
CONFIG_KEXEC_SIG=y
# CONFIG_KEXEC_SIG_FORCE is not set
CONFIG_KEXEC_BZIMAGE_VERIFY_SIG=y
CONFIG_KEXEC_JUMP=y
CONFIG_KEXEC_CORE=y- 启动 kexec 服务
sudo systemctl enable kexec-load.service
systemctl status kexec-load.service- 检查 kexec 是否正常
systemctl kexec示例
-
先执行
apt upgrade尝试获取新的内核 -
动态加载内核,包括两个步骤
$ ls /boot/ | grep config
config-5.13.0-25-generic
config-5.15.0-46-generic
config-5.15.0-56-generic
config-5.15.0-57-generic
$ ls /boot/ | grep vmlinuz
vmlinuz
vmlinuz-5.13.0-25-generic
vmlinuz-5.15.0-46-generic
vmlinuz-5.15.0-56-generic # 当前加载的
vmlinuz-5.15.0-57-generic # 期望切换的- 步骤一:设置内核版本
kexec -l /boot/vmlinuz-5.15.0-57-generic --append="`cat /proc/cmdline` ro quiet splash" --initrd=/boot/initrd.img-5.15.0-57-generic
# kexec --append="ro quiet splash" --initrd=xxx- 步骤二:切换,切换时屏幕可以看到相关信息
kexec -e- 切换后
$ uname -a
kexec -l /boot/vmlinuz-5.15.0-57-generic --append="`cat /proc/cmdline` ro quiet splash" --initrd=/boot/initrd.img-5.15.0-57-genericF&Q
fork: Cannot allocate memory
sysctl kernel.pid_max
sysctl -w kernel.pid_max=65535
echo "kernel.pid_max = 65535" >> /etc/sysctl.conf- 上一页: KServe 机器学习模型服务框架介绍
- 下一页: Linux Capabilities 介绍
最近更新
相关文章
- parallel 并行命令
- systemd-timesyncd Linux 时间同步服务介绍
- systemd-cgtop 显示 cgroups 资源使用情况
- systemd-cgls 显示 cgroups 内容
- systemd-resolved: Linux DNS 解析服务介绍
- systemd-resolved、systemd-networkd、NetworkManager、netplan 的关系和联系
- systemd-journald/journalctl Linux 日志管理介绍
- systemd-sysctl 服务介绍
- Linux timeout 命令
- dmesg Linux故障工具:显示内核信息
最新评论