<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>GRUB2 on Liangweidong's blog</title><link>https://liangweidonggood.github.io/tags/grub2/</link><description>Recent content in GRUB2 on Liangweidong's blog</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Sun, 15 Mar 2015 00:00:00 +0800</lastBuildDate><atom:link href="https://liangweidonggood.github.io/tags/grub2/index.xml" rel="self" type="application/rss+xml"/><item><title>CentOS 7 内核升级：ELRepo 与 GRUB2 实战</title><link>https://liangweidonggood.github.io/p/centos-7-nei-he-sheng-ji-elrepo/</link><pubDate>Sun, 15 Mar 2015 00:00:00 +0800</pubDate><guid>https://liangweidonggood.github.io/p/centos-7-nei-he-sheng-ji-elrepo/</guid><description>&lt;img src="https://liangweidonggood.github.io/p/centos-7-nei-he-sheng-ji-elrepo/image/cover.jpg" alt="Featured image of post CentOS 7 内核升级：ELRepo 与 GRUB2 实战" /&gt;&lt;h2 id="一为什么-2015-年要升级-centos-7-内核"&gt;一、为什么 2015 年要升级 CentOS 7 内核
&lt;/h2&gt;&lt;p&gt;CentOS 7 默认内核是 &lt;code&gt;3.10.0-1160.el7.x86_64&lt;/code&gt;——RHEL 7 的&amp;quot;长期维护&amp;quot;线，&lt;strong&gt;稳定性极高但新硬件支持差&lt;/strong&gt;。到 2018-2019 年以后，新出的 Intel 网卡（&lt;code&gt;i40e&lt;/code&gt;/&lt;code&gt;ice&lt;/code&gt;）、AMD EPYC、新 NVMe 控制器都靠这个老内核打补丁勉强支持，性能也跑不满。&lt;/p&gt;
&lt;p&gt;2015 年开始国内运维圈开始批量给生产机升级内核，标准做法是 &lt;strong&gt;ELRepo 仓库 + GRUB2&lt;/strong&gt;——ELRepo 提供 &lt;code&gt;kernel-ml&lt;/code&gt;（mainline，主线最新版）和 &lt;code&gt;kernel-lt&lt;/code&gt;（longterm，长期维护版）两套线，按需选。&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;包&lt;/th&gt;
					&lt;th&gt;来源&lt;/th&gt;
					&lt;th&gt;适用&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;kernel-lt&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;linux-stable&lt;/td&gt;
					&lt;td&gt;服务器、追求稳定&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;kernel-ml&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;linux-mainline&lt;/td&gt;
					&lt;td&gt;新硬件支持、想用 Btrfs/OverlayFS 新特性&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;kernel-ml-devel&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;linux-mainline&lt;/td&gt;
					&lt;td&gt;编译 DKMS 模块&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;本文写于 2015-03-15&lt;/strong&gt;，示例基于 CentOS 7.9（2020-09 发布），但 ELRepo 流程在 7.x 全版本通用。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="二查清当前内核"&gt;二、查清当前内核
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uname -r
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 3.10.0-1160.el7.x86_64&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="三装-elrepo-仓库"&gt;三、装 ELRepo 仓库
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 导入公钥&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 装仓库（7.x 通用）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;坑提醒&lt;/strong&gt;：如果 &lt;code&gt;rpm --import&lt;/code&gt; 报 SSL 错误，先 &lt;code&gt;yum update nss&lt;/code&gt;（NSS 库太老）。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="四查可用版本"&gt;四、查可用版本
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;yum --disablerepo&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;*&amp;#34;&lt;/span&gt; --enablerepo&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;elrepo-kernel&amp;#34;&lt;/span&gt; list available
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;会列出当前 elrepo 仓库里可装的全部 kernel 系列。&lt;/p&gt;
&lt;h2 id="五安装新版内核"&gt;五、安装新版内核
&lt;/h2&gt;&lt;h3 id="51-装最新稳定版mainline"&gt;5.1 装最新稳定版（mainline）
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;yum install -y kernel-ml kernel-ml-devel --enablerepo&lt;span class="o"&gt;=&lt;/span&gt;elrepo-kernel
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="52-装指定版本"&gt;5.2 装指定版本
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;yum install -y kernel-lt-5.4.171-1.el7.elrepo --enablerepo&lt;span class="o"&gt;=&lt;/span&gt;elrepo-kernel
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;kernel-ml-devel&lt;/code&gt; 是配套的内核头文件，装 Docker / VirtualBox Guest Additions / NVIDIA 驱动时要用。&lt;/p&gt;
&lt;h2 id="六查启动项"&gt;六、查启动项
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 看默认启动项&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;grub2-editenv list
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nv"&gt;saved_entry&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;CentOS Linux &lt;span class="o"&gt;(&lt;/span&gt;3.10.0-1160.el7.x86_64&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="m"&gt;7&lt;/span&gt; &lt;span class="o"&gt;(&lt;/span&gt;Core&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 看所有已装内核&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;awk -F&lt;span class="se"&gt;\&amp;#39;&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;$1==&amp;#34;menuentry &amp;#34; {print i++ &amp;#34; : &amp;#34; $2}&amp;#39;&lt;/span&gt; /etc/grub2.cfg
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 0 : CentOS Linux (5.15.4-1.el7.elrepo.x86_64) 7 (Core)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 1 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;坑提醒&lt;/strong&gt;：&lt;code&gt;/etc/grub2.cfg&lt;/code&gt; 在某些机器上是&lt;strong&gt;符号链接&lt;/strong&gt;到 &lt;code&gt;/boot/grub2/grub.cfg&lt;/code&gt; 的。如果 &lt;code&gt;awk&lt;/code&gt; 命令报&amp;quot;找不到文件&amp;quot;，就先重建：&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;grub2-mkconfig -o /boot/grub2/grub.cfg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="七设置默认启动版本"&gt;七、设置默认启动版本
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;grub2-set-default &lt;span class="m"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 也可以直接用名称&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# grub2-set-default &amp;#34;CentOS Linux (5.15.4-1.el7.elrepo.x86_64) 7 (Core)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;再 &lt;code&gt;grub2-editenv list&lt;/code&gt; 确认已切换。&lt;/p&gt;
&lt;h2 id="八重启验证"&gt;八、重启验证
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;reboot
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;启动后：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;uname -r
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 5.15.4-1.el7.elrepo.x86_64&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;强烈建议&lt;/strong&gt;：第一次升级新内核&lt;strong&gt;先别删旧内核&lt;/strong&gt;。生产机保留 1-2 个老内核作为回退，至少观察一周再清理。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="九清理旧内核"&gt;九、清理旧内核
&lt;/h2&gt;&lt;p&gt;确认新内核稳定后，可以清理：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 列出现有内核&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rpm -qa &lt;span class="p"&gt;|&lt;/span&gt; grep kernel
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 删除老内核（注意只删自己确认要删的版本）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;yum remove kernel-3.10.0-1160.el7.x86_64 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; kernel-tools-libs-3.10.0-1160.102.1.el7.x86_64 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; kernel-3.10.0-1160.102.1.el7.x86_64 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; kernel-tools-3.10.0-1160.102.1.el7.x86_64
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;坑提醒&lt;/strong&gt;：&lt;code&gt;kernel-tools&lt;/code&gt; / &lt;code&gt;kernel-tools-libs&lt;/code&gt; 是系统工具包，&lt;strong&gt;别全删&lt;/strong&gt;，保留一个版本对应你当前启动的内核。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="十uefi-环境的特殊处理"&gt;十、UEFI 环境的特殊处理
&lt;/h2&gt;&lt;p&gt;如果你的机器是 UEFI 启动（云主机 / 物理机新硬件），&lt;code&gt;grub2-set-default&lt;/code&gt; 之外还要&lt;strong&gt;重建 EFI 启动项&lt;/strong&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;yum install -y grub2-efi shim
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;否则升级完内核可能直接卡在 UEFI 启动界面。&lt;/p&gt;
&lt;h2 id="十一典型坑速查"&gt;十一、典型坑速查
&lt;/h2&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;现象&lt;/th&gt;
					&lt;th&gt;原因&lt;/th&gt;
					&lt;th&gt;处理&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;重启后还是老内核&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;grub2-set-default&lt;/code&gt; 没生效 / UEFI 启动项没更新&lt;/td&gt;
					&lt;td&gt;检查 &lt;code&gt;grub2-editenv list&lt;/code&gt;、重建 EFI 启动项&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Docker 启动报 &amp;ldquo;kernel too old&amp;rdquo;&lt;/td&gt;
					&lt;td&gt;容器 runtime 要求内核 ≥ 3.10 部分特性&lt;/td&gt;
					&lt;td&gt;升到 &lt;code&gt;kernel-ml&lt;/code&gt; 5.x&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;编译模块找不到头文件&lt;/td&gt;
					&lt;td&gt;没装 &lt;code&gt;kernel-ml-devel&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;装对应版本的 &lt;code&gt;kernel-ml-devel&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;升级后 K8s kubelet 启动失败&lt;/td&gt;
					&lt;td&gt;内核 cgroup driver 跟 systemd 不一致&lt;/td&gt;
					&lt;td&gt;kubelet 加 &lt;code&gt;--cgroup-driver=systemd&lt;/code&gt; 或编辑 &lt;code&gt;/etc/sysconfig/kubelet&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;网络断流 / 驱动 panic&lt;/td&gt;
					&lt;td&gt;新内核不识别老硬件&lt;/td&gt;
					&lt;td&gt;进老内核（grub 选上一项），回退&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="十二下一步"&gt;十二、下一步
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;装新内核后想开 Btrfs / OverlayFS 高级特性 → 见 &lt;code&gt;2015-09-15 CentOS 7 全面实战&lt;/code&gt; 的 Docker 部分&lt;/li&gt;
&lt;li&gt;想给老机器回退到 3.10 内核 → 删 &lt;code&gt;kernel-ml&lt;/code&gt;，重启在 GRUB 选老内核，重设 &lt;code&gt;grub2-set-default 1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;批量升级多台机器 → 用 Ansible 推 yum + reboot + 验证三件套&lt;/li&gt;
&lt;li&gt;已经上了 K8s 1.22+ → 注意 cgroup driver 必须是 &lt;code&gt;systemd&lt;/code&gt;（Docker 19.03+ 默认识别）&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="参考资料"&gt;参考资料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://www.elrepo.org/" target="_blank" rel="noopener"
 &gt;ELRepo 官网&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://www.gnu.org/software/grub/manual/grub/html_node/" target="_blank" rel="noopener"
 &gt;GRUB2 官方手册&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://wiki.centos.org/About/Product" target="_blank" rel="noopener"
 &gt;CentOS 7 EOL 时间表&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://lwn.net/Kernel/" target="_blank" rel="noopener"
 &gt;kernel-ml 5.x Changelog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="2024-视角elrepo-仍是-7x-时代的老朋友9x-时代要换思路"&gt;2024 视角：ELRepo 仍是 7.x 时代的&amp;quot;老朋友&amp;quot;，9.x 时代要换思路
&lt;/h2&gt;&lt;p&gt;本文写于 &lt;strong&gt;2015-03-15&lt;/strong&gt;——2015 那时候升级 CentOS 7 内核是&amp;quot;激进动作&amp;quot;。&lt;strong&gt;2024 视角下&lt;/strong&gt;，CentOS 7 已经 EOL，&lt;strong&gt;新机器直接上 Rocky / Alma 9 + ELRepo 9&lt;/strong&gt; 即可。&lt;/p&gt;
&lt;h3 id="一centos-7-升级到-kernel-ml-5x-已成非主流"&gt;一、CentOS 7 升级到 kernel-ml 5.x 已成&amp;quot;非主流&amp;quot;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;2015-2019 年代生产服务器升到 5.x 是&amp;quot;前沿&amp;quot;。&lt;/li&gt;
&lt;li&gt;2024 视角下：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CentOS 7 / Rocky 7 默认内核&lt;/strong&gt;仍是 3.10（但 7 已 EOL，&lt;strong&gt;不应该再升&lt;/strong&gt;）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rocky / Alma 9&lt;/strong&gt;默认内核是 &lt;strong&gt;5.14 LTS&lt;/strong&gt;（基于 RHEL 9），&lt;strong&gt;直接是 5.14+&lt;/strong&gt;，&lt;strong&gt;不需要 ELRepo 升级&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ELRepo 的角色变化&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;2015：唯一可靠的&amp;quot;主线内核&amp;quot;仓库&lt;/li&gt;
&lt;li&gt;2024：仍是&amp;quot;主线 / 长期支持&amp;quot;仓库，但&lt;strong&gt;新机器默认内核已够用&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="二kernel-ml-5x-升到-6x-lts2024-推荐"&gt;二、kernel-ml 5.x 升到 6.x LTS（2024 推荐）
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;2024 主流 LTS 内核&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;5.15 LTS&lt;/strong&gt;（EOL 2026-10，&lt;strong&gt;RHEL 9 的基础内核&lt;/strong&gt;）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;5.10 LTS&lt;/strong&gt;（EOL 2026-12，&lt;strong&gt;长期支持&lt;/strong&gt;）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;6.1 LTS&lt;/strong&gt;（EOL 2028-12，&lt;strong&gt;新机器推荐&lt;/strong&gt;）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;6.6 LTS&lt;/strong&gt;（EOL 2026-12，&lt;strong&gt;Ubuntu 24.04 默认&lt;/strong&gt;）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;6.10&lt;/strong&gt;（&lt;strong&gt;非 LTS&lt;/strong&gt;，2024-07 发布，2025-07 EOL）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2024 推荐&lt;/strong&gt;：&lt;strong&gt;kernel-ml-6.1 LTS&lt;/strong&gt; 或 &lt;strong&gt;6.6 LTS&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 装 6.6 LTS&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;yum --enablerepo&lt;span class="o"&gt;=&lt;/span&gt;elrepo-kernel install -y kernel-ml-6.6.*
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 自动加 GRUB 启动项、保留老内核&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="三centos-stream-9--elrepo-9-的玩法"&gt;三、CentOS Stream 9 + ELRepo 9 的玩法
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CentOS Stream 9 / Rocky Linux 9 / AlmaLinux 9&lt;/strong&gt; 用 ELRepo 9 仓库：&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;span class="lnt"&gt;7
&lt;/span&gt;&lt;span class="lnt"&gt;8
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;yum install https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 看可用版本&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;yum --disablerepo&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;*&amp;#39;&lt;/span&gt; --enablerepo&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;elrepo-kernel&amp;#39;&lt;/span&gt; list available
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 装 kernel-ml（最新主线）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;yum --enablerepo&lt;span class="o"&gt;=&lt;/span&gt;elrepo-kernel install -y kernel-ml kernel-ml-devel
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;grub 配置同 7.x&lt;/strong&gt;：&lt;code&gt;grub2-set-default 0&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="四cgroup-v2-时代的内核选择"&gt;四、cgroup v2 时代的内核选择
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;2015 那篇&lt;/strong&gt;升级内核主要为了&amp;quot;新硬件支持&amp;quot;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2024 升级内核的另一个理由&lt;/strong&gt;：&lt;strong&gt;cgroup v2&lt;/strong&gt;（systemd 244+ 默认）。&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;cgroup v1&lt;/th&gt;
					&lt;th&gt;cgroup v2&lt;/th&gt;
					&lt;th&gt;2024 推荐&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;CentOS 7 默认&lt;/td&gt;
					&lt;td&gt;需内核 4.5+&lt;/td&gt;
					&lt;td&gt;升 5.10+&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;CentOS 8 / Rocky 8 默认&lt;/td&gt;
					&lt;td&gt;默认 v1&lt;/td&gt;
					&lt;td&gt;升 5.14+ 改 v2&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Rocky 9 / Alma 9&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;默认 v2&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;直接用&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 看当前 cgroup 版本&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;cat /sys/fs/cgroup/cgroup.controllers
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# cgroup2 才有这个文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="五btrfs-时代的新选择"&gt;五、Btrfs 时代的&amp;quot;新选择&amp;quot;
&lt;/h3&gt;&lt;p&gt;2015 那篇升内核为了&amp;quot;用 Btrfs / OverlayFS&amp;quot;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;2024 视角&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Btrfs&lt;/strong&gt; 在 Fedora 33+ / openSUSE 是默认 FS，&lt;strong&gt;RHEL 9 不默认&lt;/strong&gt;（保守策略）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OverlayFS&lt;/strong&gt;（容器基础）&lt;strong&gt;所有现代内核都支持&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;新文件系统&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;EROFS&lt;/strong&gt;（华为 2018+）：只读压缩 FS，&lt;strong&gt;华为云 / 鸿蒙 OS 大量用&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;bcachefs&lt;/strong&gt;（2023 推出）：&lt;strong&gt;Kent Overstreet 设计&lt;/strong&gt;，对标 Btrfs / ZFS，&lt;strong&gt;Linux 6.7+ 实验支持&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="六kpatch--livepatch免重启升级"&gt;六、kpatch / livepatch：免重启升级
&lt;/h3&gt;&lt;p&gt;2015 那篇&lt;strong&gt;所有升级都需要重启&lt;/strong&gt;。&lt;strong&gt;2024 有&amp;quot;livepatch&amp;quot;&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Canonical Livepatch&lt;/strong&gt;（Ubuntu）：内核安全更新&lt;strong&gt;不重启&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kpatch&lt;/strong&gt;（Red Hat / RHEL）：kpatch-build 编译 + livepatch 应用。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;KernelCare&lt;/strong&gt;（CloudLinux 商业）：CentOS / RHEL 全系列支持。&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;span class="lnt"&gt;5
&lt;/span&gt;&lt;span class="lnt"&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# RHEL 9 / Rocky 9 安装 kpatch&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dnf install kpatch
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;dnf install kpatch-patch-X.X.X
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 应用（不重启）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kpatch load
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;kpatch list
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;生产环境升级内核&lt;/strong&gt;的&amp;quot;零停机&amp;quot;姿势。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="七安全启动--内核模块签名"&gt;七、安全启动 + 内核模块签名
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;2015 那篇没提 UEFI Secure Boot。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2024 视角&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Secure Boot 默认开启&lt;/strong&gt;（云厂商、Win11 PC）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;自编译内核模块&lt;/strong&gt;（DKMS）需要签名&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NVIDIA 驱动&lt;/strong&gt; / &lt;strong&gt;VirtualBox&lt;/strong&gt; 必须用 distro 签名的版本&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 装 mokutil（管理 MOK 密钥）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;mokutil --import /path/to/MOK.der
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# 重启后进 UEFI 确认&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id="八内核升级的安全策略"&gt;八、内核升级的&amp;quot;安全策略&amp;quot;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;生产服务器&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;只升 LTS 内核&lt;/strong&gt;（5.15 / 5.10 / 6.1 / 6.6）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;保留至少 1 个老内核&lt;/strong&gt;（回退用）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;重大版本升级&lt;/strong&gt;（如 5.10 → 6.1）先在&lt;strong&gt;测试机&lt;/strong&gt;跑 2 周&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;kernel-ml 慎用生产&lt;/strong&gt;（主线，非 LTS）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;开发机 / 容器&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;可以激进（kernel-ml 6.10+）&lt;/li&gt;
&lt;li&gt;容器化场景内核升级&lt;strong&gt;对应用透明&lt;/strong&gt;（应用跑在用户态）&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>