kylin-patch --list 是麒麟v10唯一能直接关联补丁与内核版本的命令,输出中installed状态且含kernel/vmlinuz的条目,其target kernel version字段值若与uname -r一致,表明该补丁已生效于当前内核。

kylin-patch --list 是麒麟V10唯一能直接关联补丁与内核版本的命令
其他发行版没有 kylin-patch,但麒麟V10必须依赖它才能确认“哪个补丁打在哪个内核上”。rpm -qa | grep kernel 只显示包名,uname -r 只显示当前运行版本,二者无法交叉验证补丁是否生效。
执行 kylin-patch --list 后重点关注三列:
- 状态为
installed的条目 - 包含
kernel或vmlinuz的补丁名称 - 对应行的
Target Kernel Version字段(如4.19.90-102.5.v2403.ky10.x86_64)
若该字段值与 uname -r 输出一致,说明该补丁已作用于当前内核;若不一致,说明该补丁是为其他已安装但未启动的内核准备的。
/var/log/patch/patch_history.log 记录每次补丁操作的原始时间戳和内核目标
这个日志比 kylin-patch --list 更底层,适合排查“明明装了补丁却没生效”的问题。它不依赖工具状态,只记录实际写入磁盘的操作。
用 cat /var/log/patch/patch_history.log 查看时注意:
- 找含
[INFO] Patch ID:且后跟applied to kernel的行 - 成功记录末尾一定是
status: success - 同一补丁ID可能多次出现,需比对时间戳和内核版本字段是否匹配当前需求
例如:[INFO] Patch ID: KPL-2024-0872 applied to kernel 4.19.90-102.5.v2403.ky10.x86_64 status: success —— 这条就明确告诉你补丁生效对象。
对比 uname -r 和 nkvers 才能判断内核是否真被补丁升级过
uname -r 显示当前运行内核,nkvers 显示系统出厂预置内核基线。两者差异不是“有没有补丁”,而是“补丁是否导致内核版本号变更”。
典型情况:
- 若
uname -r输出为4.19.90-102.5.v2403.ky10.x86_64,而nkvers中Kernel:行是4.19.90-89.11.v2401.ky10.x86_64,说明内核已被补丁升级 - 若两者完全一致,补丁可能只是修复模块或驱动,未改动内核镜像本身
-
nkvers不是所有麒麟V10都预装,缺失时可跳过此项
别把 rpm -qa kernel 当作补丁历史,它只反映内核包快照
rpm -qa | grep kernel 列出的是已安装的内核包快照,不是补丁操作记录。它无法告诉你:
- 某个
kernel-4.19.90-102.5.v2403.ky10.x86_64是通过补丁升级来的,还是手动安装的独立内核包 - 该包是否带安全修复(比如 CVE-2024-XXXX 的修复可能藏在
kernel-firmware或kernel-modules-extra里) - 补丁是否被回滚或部分失效(
rpm不记录卸载动作)
真正要追溯“谁、何时、为什么装了这个补丁”,必须回到 /var/log/patch/patch_history.log 或 kylin-patch --list 输出。
补丁历史不是版本列表,而是操作链。漏掉 patch_history.log 里的时间戳和状态字段,就等于只看到结果,没看到过程。











