<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>内核 on Liangweidong's blog</title><link>https://liangweidonggood.github.io/tags/%E5%86%85%E6%A0%B8/</link><description>Recent content in 内核 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/%E5%86%85%E6%A0%B8/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><item><title>CentOS 6.5 时代：内核升级与 ELRepo 实战</title><link>https://liangweidonggood.github.io/p/centos-6-5-nei-he-sheng-ji-elrepo/</link><pubDate>Tue, 15 Jun 2010 00:00:00 +0800</pubDate><guid>https://liangweidonggood.github.io/p/centos-6-5-nei-he-sheng-ji-elrepo/</guid><description>&lt;img src="https://liangweidonggood.github.io/p/centos-6-5-nei-he-sheng-ji-elrepo/image/cover.jpg" alt="Featured image of post CentOS 6.5 时代：内核升级与 ELRepo 实战" /&gt;&lt;h2 id="一为什么-2010-年还要升级-centos-65-的内核"&gt;一、为什么 2010 年还要升级 CentOS 6.5 的内核
&lt;/h2&gt;&lt;p&gt;CentOS 6.5（2013-12-01 发布，是 CentOS 6 系列的最后一个主要版本）跑的是 &lt;code&gt;2.6.32-431.el6.x86_64&lt;/code&gt;——一个 RHEL/CentOS 维护了 10 年的&amp;quot;长青&amp;quot;内核，对应 RHEL 的&amp;quot;zk 内核&amp;quot;分支。这套内核的好处是&lt;strong&gt;极其稳定&lt;/strong&gt;，几乎所有服务器场景都能跑；坏处是&lt;strong&gt;新硬件支持差&lt;/strong&gt;——比如后期出来的 Intel &lt;code&gt;e1000e&lt;/code&gt; 网卡的某些固件 bug、SSD 控制器新特性、新 CPU 微码补丁等，都得靠&lt;strong&gt;第三方仓库&lt;/strong&gt;才能拿到。&lt;/p&gt;
&lt;p&gt;2010 年代初的运维圈子里，给生产服务器升级内核的标准动作就是：&lt;strong&gt;接 ELRepo&lt;/strong&gt;。ELRepo（&lt;a class="link" href="https://www.elrepo.org" target="_blank" rel="noopener"
 &gt;elrepo.org&lt;/a&gt;）是 RHEL/CentOS 生态最知名的第三方内核仓库，提供两套主线：&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;长期维护版（Long Term），稳定性优先&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;主线最新版，新特性优先&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;当时给生产服务器升级的常见选择是 &lt;code&gt;kernel-lt&lt;/code&gt;——本文以 6.x 时代最常见的 &lt;code&gt;kernel-lt-3.10.x&lt;/code&gt; 路线为例。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;本文写于 2010 年&lt;/strong&gt;，主要面向 CentOS 6.x 时代服务器。CentOS 6 已经在 2020-11-30 EOL，CentOS 7 已经在 2024-06-30 EOL，&lt;strong&gt;新机器建议直接上 Rocky / Alma / Ubuntu LTS&lt;/strong&gt;。本篇留作&amp;quot;那个时代&amp;quot;的运维档案。&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;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&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;&lt;span class="o"&gt;[&lt;/span&gt;root@centos6 ~&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# lsb_release -a&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Distributor ID: CentOS
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Description: CentOS release 6.5 &lt;span class="o"&gt;(&lt;/span&gt;Final&lt;span class="o"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Release: 6.5
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Codename: Final
&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;&lt;span class="o"&gt;[&lt;/span&gt;root@centos6 ~&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# uname -r&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;2.6.32-431.el6.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;p&gt;&lt;code&gt;lsb_release&lt;/code&gt; 在最小化安装的机器上默认没装，可以改用 &lt;code&gt;cat /etc/redhat-release&lt;/code&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;cat /etc/redhat-release
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# CentOS release 6.5 (Final)&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="三解决-yum-下载-elrepo-公钥时的-ssl-错误"&gt;三、解决 yum 下载 ELRepo 公钥时的 SSL 错误
&lt;/h2&gt;&lt;p&gt;直接 &lt;code&gt;rpm --import&lt;/code&gt; ELRepo 的 GPG 公钥，6.x 时代很容易遇到：&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;/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="o"&gt;[&lt;/span&gt;root@centos6 ~&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl: &lt;span class="o"&gt;(&lt;/span&gt;35&lt;span class="o"&gt;)&lt;/span&gt; SSL connect error
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;error: https://www.elrepo.org/RPM-GPG-KEY-elrepo.org: import &lt;span class="nb"&gt;read&lt;/span&gt; failed&lt;span class="o"&gt;(&lt;/span&gt;2&lt;span class="o"&gt;)&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;nss&lt;/code&gt;（Network Security Services）太老，跟不上 TLS 协议。&lt;strong&gt;解决方法就一条：先升级 nss&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;/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 update nss
&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;rpm --import&lt;/code&gt; 就正常了。&lt;/p&gt;
&lt;h2 id="四安装-elrepo-仓库"&gt;四、安装 ELRepo 仓库
&lt;/h2&gt;&lt;p&gt;ELRepo 提供按大版本分发的 release RPM，直接装就能拿到 repo 文件：&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;/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 -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.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;p&gt;这一步会生成 &lt;code&gt;/etc/yum.repos.d/elrepo.repo&lt;/code&gt;，里面有两个仓库：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;elrepo&lt;/code&gt;（主仓库，ELRepo 自有驱动）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;elrepo-kernel&lt;/code&gt;（&lt;strong&gt;内核专用&lt;/strong&gt;）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;elrepo-extras&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="五安装-kernel-lt-内核"&gt;五、安装 kernel-lt 内核
&lt;/h2&gt;&lt;p&gt;只启用 &lt;code&gt;elrepo-kernel&lt;/code&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;/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 --enablerepo&lt;span class="o"&gt;=&lt;/span&gt;elrepo-kernel install kernel-lt -y
&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;/boot/&lt;/code&gt; 下，同时 grub 也会自动加入对应的启动项。但&lt;strong&gt;grub 默认从序号 0 开始启动，新内核一般被装在最后&lt;/strong&gt;，所以下一步要改默认启动顺序。&lt;/p&gt;
&lt;h2 id="六修改-grub-引导顺序"&gt;六、修改 grub 引导顺序
&lt;/h2&gt;&lt;p&gt;CentOS 6 时代的 grub 还是 legacy grub 1，配置文件是 &lt;code&gt;/etc/grub.conf&lt;/code&gt;（实际软链接到 &lt;code&gt;/boot/grub/grub.conf&lt;/code&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;/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;vi /etc/grub.conf
&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;default=N&lt;/code&gt; 改成新内核对应的序号（一般是 0）。文件里长这样：&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;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&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-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;default=0 # ← 改这个
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;timeout=5
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;splashimage=(hd0,0)/grub/splash.xpm.gz
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;hiddenmenu
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;title CentOS (3.10.0-1.el6.elrepo.x86_64)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; root (hd0,0)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; kernel /vmlinuz-3.10.0-1.el6.elrepo.x86_64 ro root=/dev/mapper/...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; initrd /initramfs-3.10.0-1.el6.elrepo.x86_64.img
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;title CentOS (2.6.32-431.el6.x86_64)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; root (hd0,0)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; initrd /initramfs-2.6.32-431.el6.x86_64.img
&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;title&lt;/code&gt; 列表的最上面时，&lt;code&gt;default=0&lt;/code&gt; 就指向它；放后面就改对应的序号。&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;坑提醒&lt;/strong&gt;：改完一定要&lt;strong&gt;重启验证&lt;/strong&gt;，别留在原内核就以为升级成功了。&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;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;code&gt;uname -r&lt;/code&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;# 3.10.0-1.el6.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;p&gt;确认已经是新内核，老的内核包先&lt;strong&gt;别删&lt;/strong&gt;——留一两周观察稳定再清理。&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;code&gt;rpm --import&lt;/code&gt; 报 SSL error&lt;/td&gt;
					&lt;td&gt;nss 库太老&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;yum update nss&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;安装后还是老内核启动&lt;/td&gt;
					&lt;td&gt;grub &lt;code&gt;default&lt;/code&gt; 没改&lt;/td&gt;
					&lt;td&gt;编辑 &lt;code&gt;/etc/grub.conf&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;启动到一半 &lt;code&gt;dracut&lt;/code&gt; panic&lt;/td&gt;
					&lt;td&gt;initramfs 没生成或磁盘驱动没编进&lt;/td&gt;
					&lt;td&gt;用 &lt;code&gt;dracut --force&lt;/code&gt; 重生成 initramfs&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;第三方软件（如 VMware Tools）装不上&lt;/td&gt;
					&lt;td&gt;内核头文件路径变了&lt;/td&gt;
					&lt;td&gt;装对应 &lt;code&gt;kernel-lt-devel&lt;/code&gt;&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;kernel-ml&lt;/code&gt;，但&lt;strong&gt;绝不要在生产环境直接上&lt;/strong&gt;——6.x 时代的 ml 包出过几次 initramfs 兼容事故&lt;/li&gt;
&lt;li&gt;想再稳一点（保留老内核回退）→ 升级前用 &lt;code&gt;df&lt;/code&gt;/&lt;code&gt;mount&lt;/code&gt; 拍个快照，VPS 用户用服务商控制台做 system snapshot&lt;/li&gt;
&lt;li&gt;配套的 &lt;code&gt;kernel-lt-devel&lt;/code&gt;、&lt;code&gt;kernel-lt-headers&lt;/code&gt; 也要一并装，否则后面编译 DKMS 模块（如 VirtualBox Guest Additions）会失败&lt;/li&gt;
&lt;li&gt;真要彻底升级大版本（6.x → 7.x）→ 走 &lt;code&gt;redhat-upgrade-tool&lt;/code&gt;（已废弃）或重新装机，跨大版本升级从来都只适合&lt;strong&gt;有完整快照的测试机&lt;/strong&gt;&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://wiki.centos.org/About/Product" target="_blank" rel="noopener"
 &gt;CentOS 6 EOL 公告&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;RHEL 6.5 Release Notes（kernel 章节）&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="2024-视角centos-6-时代已彻底过去迁移方案汇总"&gt;2024 视角：CentOS 6 时代已彻底过去，迁移方案汇总
&lt;/h2&gt;&lt;p&gt;本文写于 &lt;strong&gt;2010-06-15&lt;/strong&gt;（实际是后人补档的&amp;quot;老运维回忆&amp;quot;），距今已 14 年。&lt;strong&gt;2024 视角下&lt;/strong&gt;：&lt;/p&gt;
&lt;h3 id="一centos-6-已经是老古董"&gt;一、CentOS 6 已经是&amp;quot;老古董&amp;quot;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;2020-11-30&lt;/strong&gt;：CentOS 6 EOL（End of Life）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2020-12 至 2024-06&lt;/strong&gt;：CentOS Linux 6 走&amp;quot;extended EOL&amp;quot;（付费支持）。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2024-06-30&lt;/strong&gt;：&lt;strong&gt;CentOS Linux 6 全面停止维护&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;2024 视角&lt;/strong&gt;：&lt;strong&gt;仍然跑 CentOS 6 的服务器&lt;/strong&gt;已经&lt;strong&gt;无安全更新&lt;/strong&gt;——&lt;strong&gt;强烈建议迁出&lt;/strong&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="二centos-6-迁到哪里"&gt;二、CentOS 6 迁到哪里
&lt;/h3&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;th&gt;适用&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;CentOS 7&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;90%&lt;/td&gt;
					&lt;td&gt;低&lt;/td&gt;
					&lt;td&gt;不推荐（7 已 2024-06 EOL）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;CentOS 8&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;95%&lt;/td&gt;
					&lt;td&gt;低&lt;/td&gt;
					&lt;td&gt;不推荐（8 已 2021-12 EOL）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;CentOS Stream 8/9&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;100%&lt;/td&gt;
					&lt;td&gt;低&lt;/td&gt;
					&lt;td&gt;滚动版，&lt;strong&gt;生产慎用&lt;/strong&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Rocky Linux 9&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;100%&lt;/td&gt;
					&lt;td&gt;低&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;首选&lt;/strong&gt;（社区驱动，CIQ 维护）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;AlmaLinux 9&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;100%&lt;/td&gt;
					&lt;td&gt;低&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;首选&lt;/strong&gt;（CloudLinux 维护）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Oracle Linux 9&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;100%&lt;/td&gt;
					&lt;td&gt;低&lt;/td&gt;
					&lt;td&gt;大企业 / 商业支持&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Ubuntu 22.04 LTS&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;80%&lt;/td&gt;
					&lt;td&gt;中&lt;/td&gt;
					&lt;td&gt;桌面 / 开发机&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;strong&gt;Debian 12&lt;/strong&gt;&lt;/td&gt;
					&lt;td&gt;80%&lt;/td&gt;
					&lt;td&gt;中&lt;/td&gt;
					&lt;td&gt;服务器 / 容器&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="三migrate2rocky-脚本一键迁移"&gt;三、&lt;code&gt;migrate2rocky&lt;/code&gt; 脚本一键迁移
&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;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;# CentOS 6/7/8 → Rocky Linux 9&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;chmod +x migrate2rocky.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;sudo bash migrate2rocky.sh -r
&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;sudo 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;ul&gt;
&lt;li&gt;&lt;strong&gt;注意&lt;/strong&gt;：必须&lt;strong&gt;先做完整备份&lt;/strong&gt;（快照 / tar 全量），迁移过程会替换核心包。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;不兼容情况&lt;/strong&gt;：&lt;strong&gt;自定义编译的内核模块&lt;/strong&gt;（如 NVIDIA 驱动、VirtualBox）需要重新编译。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="四centos-6-时代的运维遗物清单"&gt;四、CentOS 6 时代的&amp;quot;运维遗物&amp;quot;清单
&lt;/h3&gt;&lt;p&gt;2010 年代 CentOS 6 跑的常见服务，2024 都有现代替代：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;老服务&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;MySQL 5.1&lt;/td&gt;
					&lt;td&gt;MySQL 8.0 / MariaDB 10.11&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Apache 2.2&lt;/td&gt;
					&lt;td&gt;Apache 2.4 / Nginx 1.27&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;PHP 5.3&lt;/td&gt;
					&lt;td&gt;PHP 8.3&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;iptables&lt;/td&gt;
					&lt;td&gt;&lt;strong&gt;nftables&lt;/strong&gt;（CentOS 7 后）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;OpenSSH 5.3&lt;/td&gt;
					&lt;td&gt;OpenSSH 9.x（强制 ed25519 / rsa-sha2-256）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;ntpd&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;chronyd&lt;/code&gt;（CentOS 7+）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;ifconfig&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;ip&lt;/code&gt;（iproute2）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;netstat&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;ss&lt;/code&gt;（iproute2）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;service&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;systemctl&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;chkconfig&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;systemctl enable/disable&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;ifupdown&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;NetworkManager / &lt;code&gt;nmcli&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;route&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;ip route&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;arp&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;ip neigh&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;traceroute&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;mtr&lt;/code&gt;（更现代）&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;wget&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;curl&lt;/code&gt;（更通用）&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="五centos-6--9-的陷阱清单"&gt;五、CentOS 6 → 9 的&amp;quot;陷阱&amp;quot;清单
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;systemd 全面接管&lt;/strong&gt;：&lt;code&gt;init.d&lt;/code&gt; 脚本不再被自动识别——必须写 &lt;code&gt;*.service&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;firewalld 取代 iptables&lt;/strong&gt;：老 &lt;code&gt;iptables -A INPUT ...&lt;/code&gt; 命令仍兼容（底层是 nftables），但&lt;strong&gt;推荐用 &lt;code&gt;firewall-cmd&lt;/code&gt;&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SELinux 强制开启&lt;/strong&gt;：从 CentOS 7 起默认开启，&lt;strong&gt;老脚本不写 SELinux context 会失败&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python 2.7 EOL&lt;/strong&gt;（2020-01-01）：所有 &lt;code&gt;#!/usr/bin/python&lt;/code&gt; 必须改成 &lt;code&gt;python3&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;OpenSSL 1.1+ / TLS 1.3 强制&lt;/strong&gt;：老证书可能不再受信任。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GLIBC 2.28+&lt;/strong&gt;（CentOS 9）：老二进制（如 tcpcopy 1.2.0 预编译版）会报&amp;quot;GLIBC_2.34 not found&amp;quot;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="六centos-6-的真实价值归档"&gt;六、CentOS 6 的&amp;quot;真实价值&amp;quot;：归档
&lt;/h3&gt;&lt;p&gt;2024 视角下，&lt;strong&gt;CentOS 6 的真正价值是&amp;quot;运维历史档案&amp;quot;&lt;/strong&gt;——很多老脚本、老软件、老硬件驱动都跑在上面。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;vmware-tools&lt;/strong&gt;：CentOS 6 用&lt;strong&gt;老版 VMware Tools&lt;/strong&gt;（kernel 2.6.32 兼容），CentOS 9 改用 &lt;strong&gt;open-vm-tools&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Realtek 网卡驱动&lt;/strong&gt;：CentOS 6 时代手动编译 r8168，CentOS 9 内核已自带。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NFS v3&lt;/strong&gt;：CentOS 6 默认 NFSv3，CentOS 9 默认 NFSv4.2。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;32 位库&lt;/strong&gt;：CentOS 6 装 &lt;code&gt;glibc.i686&lt;/code&gt; 跑 32 位应用，CentOS 9 已经不默认装 i686 仓库。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="七2024-仍在跑-centos-6-的现实方案"&gt;七、2024 仍在跑 CentOS 6 的&amp;quot;现实方案&amp;quot;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;方案 A（推荐）&lt;/strong&gt;：迁移到 Rocky / Alma 9&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;方案 B&lt;/strong&gt;：用 Vault 仓库 + &lt;code&gt;--enablerepo&lt;/code&gt; 让 yum 继续用（但&lt;strong&gt;无安全更新&lt;/strong&gt;）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;方案 C&lt;/strong&gt;：用 &lt;strong&gt;docker 容器&lt;/strong&gt;包老 OS：&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;/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;# 用 Docker 跑 CentOS 6 容器（保留老应用）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;docker run -it --rm centos:6 bash
&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 update
&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;/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;方案 D&lt;/strong&gt;：上 K8s + 老 OS Pod（&lt;strong&gt;生产慎用&lt;/strong&gt;）&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>