kexec是Linux内核的一种机制,它允许从当前运行的内核启动新内核。kexec会跳过由系统固件执行的引导加载程序阶段和硬件初始化阶段,直接将新内核加载到主内存并立即开始执行。这避免了与完全重新启动相关的漫长时间,并且可以通过最小化停机时间来帮助系统满足高可用性要求。

Debian默认支持kexec,所以在Debian下我们只要安装kexec-tools就行了。

apt install kexec-tools

检查当前的内核banb

root@jp:~# uname -r
5.10.0-17-amd64

查找目前可用的内核版本

root@jp:~# ls /boot/vmlinuz-*
/boot/vmlinuz-5.10.0-16-amd64  /boot/vmlinuz-5.10.0-17-amd64  /boot/vmlinuz-5.10.0-18-amd64

这里最新的是 /boot/vmlinuz-5.10.0-18-amd64

先查看当前内核5.10.0-17-amd64的引导参数

root@jp:~# cat /boot/grub/grub.cfg | grep 5.10.0-17-amd64
                echo    'Loading Linux 5.10.0-17-amd64 ...'
                linux   /boot/vmlinuz-5.10.0-17-amd64 root=UUID=f4d01b88-6693-437c-b63a-60631182ae60 ro  quiet
                initrd  /boot/initrd.img-5.10.0-17-amd64

用kexec加载最新内核5.10.0-18-amd64

kexec -l /boot/vmlinuz-5.10.0-18-amd64 --initrd=/boot/initrd.img-5.10.0-18-amd64 --append="root=UUID=f4d01b88-6693-437c-b63a-60631182ae60 ro"

执行当前加载的最新内核。

kexec -e

完成执行后重新登录SSH控制台并检查内核版本。

root@debian:~# uname -r
5.10.0-18-amd64

标签: Debian, kexec

添加新评论