恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

龙蜥Anolis OS内核升级全攻略:从环境查询到GRUB启动配置

  • 首页
  • 资讯中心
  • /
  • 龙蜥Anolis OS内核升级全攻略:从环境查询到GRUB启动配置

相关资讯

告别Modern Standby假睡眠:手把手教你强制切回S3睡眠 2026/9/16 23:53:37
储能BMS充电电流限值的动态计算逻辑 2026/9/16 23:48:37
UR5机械臂Simulink仿真与运动控制实践 2026/9/16 23:48:37

最新资讯

基于Vue3的PSD解析在线设计器:拖入浏览器即可编辑图层
上下文腐化(Context Rot)?让 Codex 走 TaoToken 做 Context Reset
量子安全通信:融合QKD与PQC的未来加密方案
Agent技能化封装:让智能体能力可复用、可编排、更稳定
读芯片手册就是上硬件课:原始资料精读方法论
OpenClaw与腾讯文档自动化交互实战指南

今日推荐

每日热评|13% 的 Agent 技能带严重漏洞,这个注册表想用“验证+签名”解决信任危机
即梦AI保姆级教程:从生图到数字人,一站式搞定AI视频创作
BERT+LLM混合架构:突破NER长尾实体抽取瓶颈的工程实践

本周热门

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化
Flutter应用改名全指南:从Android到iOS的配置与工具实践

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

龙蜥Anolis OS内核升级全攻略:从环境查询到GRUB启动配置

发布时间:2026/9/16 23:53:38
龙蜥Anolis OS内核升级全攻略:从环境查询到GRUB启动配置 1. 为什么需要升级龙蜥内核以及这篇指南能解决什么问题做服务器运维的朋友都知道Linux系统的稳定性和性能上限很大程度上取决于内核版本。Anolis OS龙蜥操作系统作为国内主流的开源服务器操作系统默认自带的内核通常已经很稳定但遇到新硬件支持不足、需要用到更高版本的网络协议栈、或者要启用某些容器相关的特性时光靠默认内核是撑不住的。这时候就需要把内核升级到更新的版本。不过内核升级在服务器上是个敏感操作搞不好就是起不来机器、网卡驱动丢失、文件系统识别不了严重的时候只能去机房或者带外管理口抢救。所以我一直强调一个观点内核升级不是“装个新包重启一下”这么简单从查询当前环境到配置好启动项每一步都要心里有数。这篇指南就围绕“查询”和“配置”两个关键词展开把Anolis龙蜥内核升级的全流程拆开讲清楚。内容包括怎么查当前内核版本和硬件兼容性、升级前要做哪些准备、用yum/dnf源安装新内核、升级之后如何配置默认启动项、以及常见问题的排查方法。适合三类人看刚接手龙蜥服务器想了解内核升级流程的运维新手、准备在生产环境做内核变更但心里没底的系统管理员、以及出于学习目的想在虚拟机里折腾内核的实验党。我在实际操作中用的是Anolis OS 8.8默认内核版本是5.10这套流程在龙蜥8和龙蜥7上都适用只是包管理器命令略有差异后面会单独说明。2. 升级前的环境查询不知道现状就别谈升级2.1 内核版本与系统发行版信息查询很多人在升级前第一反应就是直接装新内核这是最容易出事的地方。正确做法是先摸清楚当前系统的底细至少得知道三件事当前内核版本、操作系统大版本、系统架构。查询当前内核版本核心命令就一条uname -r输出类似这样5.10.134-16.1.an8.x86_64这一行信息量很大。5.10是内核主版本an8表示这是龙蜥针对Anolis OS 8编译的内核x86_64是架构。如果你看到的是4.18或者3.10说明系统内核偏老有升级空间。查询操作系统发行版信息用这个cat /etc/os-release输出内容会包含NAMEAnolis OS、VERSION8.8这样的字段。这一步很重要因为龙蜥的内核仓库是按系统版本来区分的8系和7系的镜像源不一样用错源会导致依赖解析失败。架构信息用这个命令确认arch服务器基本上都是x86_64但如果是ARM架构的服务器比如倚天710或者其他ARM平台后面装内核包的时候要选择对应的aarch64版本千万不能混用。2.2 查询已安装内核包与当前启动项除了系统信息还要查一下系统里已经装了哪些内核包。这能帮你确认两件事当前用的内核是哪个rpm包提供的、系统里是否留存了旧内核以便回滚。查询已安装内核包rpm -qa | grep kernel输出会列出kernel、kernel-core、kernel-devel、kernel-modules等一系列包。注意看kernel-core的版本号和uname -r输出的版本应该一一对应。如果看不到对应关系说明当前启动的内核可能不是通过rpm包安装的比如手动编译的内核这种情况下升级策略要调整。同时还要查看当前默认启动项和GRUB菜单里的所有内核条目grubby --default-kernel这个命令直接输出默认内核的完整路径比如/boot/vmlinuz-5.10.134-16.1.an8.x86_64。查看GRUB菜单里有多少内核可选grubby --infoALL | grep -E ^kernel|^index输出会列出每个内核的索引号和对应的内核文件。这一步可以帮你判断系统里有多少个可用的内核版本方便升级后对照。2.3 硬件兼容性预检升级前最容易被忽略的一步内核升级最大的风险不是内核本身而是硬件兼容性。新内核仓库里包含的驱动模块和当前硬件配合不好轻则某些功能异常重则直接启动失败。所以升级之前花几分钟做一次硬件兼容性预检很有必要。查看当前CPU信息lscpu重点看Model name和Flags。如果CPU比较新比如Intel 12代之后的大小核架构或者AMD Zen 3/4架构老内核3.10、4.18可能缺少对应的调频和调度优化。这种情况下升级内核的收益最大。查看网卡型号和驱动lspci | grep -i ethernet再看当前网卡用的是哪个内核模块lsmod | grep -E ixgbe|i40e|mlx|e1000|igb这里有个实操经验升级内核之后网卡驱动模块名可能变化比如从ixgbe变成iavf。如果你用的是操作系统自带驱动新内核大概率能自动加载但如果你是手动安装过厂商提供的网卡驱动升级内核后驱动模块很可能加载失败因为DKMS模块需要针对新内核重新编译。查看存储设备信息lsblk另外还要查一下root文件系统的类型df -T /比如输出显示ext4或者xfs这个信息用于判断升级后是否需要处理文件系统兼容性问题。xfs在较新内核上有日志格式升级的机制跨大版本升级时偶尔会遇到。提示如果服务器上有硬件RAID卡建议提前到阵列卡厂商官网确认其驱动是否适配目标内核版本。RAID卡驱动出问题系统直接找不到启动盘这是生产环境升级时最常见的翻车场景之一。3. 升级方案的选型与仓库配置3.1 三种升级路径对比选对方案省一半的事查询完现状之后接下来要决定用哪种方式升级内核。我总结下来基本有三条路第一条路使用龙蜥官方软件仓库的增量更新。这条路径最简单就是通过dnf update把内核小版本往上升。比如从5.10.134-16升级到5.10.134-17或者跨小版本升级到5.10的更高patch版本。这种方式风险最小因为所有驱动和依赖都是龙蜥官方验证过的适合只想修bug和补安全漏洞的场景。第二条路启用龙蜥的内核plus仓库或备用内核仓库装新版本内核。龙蜥官方除了默认的基础仓库还有一个名为plus的扩展仓库里面提供更新版本的内核比如从5.10升级到5.15或者6.x。这种方式可以拿到更新的内核特性同时仍然通过rpm包管理方便卸载和回滚。缺点是这些内核经过的测试周期比默认内核短生产环境需要谨慎评估。第三条路手动编译内核。这条路只推荐给有特殊需求的场景比如需要启用特定的调度器、需要自定义内核参数、或者需要打特定补丁。手动编译的好处是灵活但缺点也明显维护成本高、升级麻烦、出了问题官方不背锅。在服务器场景下能用包管理解决的尽量别自己编译。说句实话90%的龙蜥用户升级内核走第二条路就够了。既能用上较新的内核又能用rpm包管理保持可控性回滚也只是一个命令的事。3.2 配置龙蜥内核仓库手把手教你加源既然推荐走第二条路那就要先把龙蜥的扩展仓库配置好。Anolis OS 8的仓库配置文件在/etc/yum.repos.d/目录下我们需要确认或者新建一个.repo文件。先看看现有的仓库配置ls -l /etc/yum.repos.d/通常会看到类似AnolisOS-BaseOS.repo、AnolisOS-AppStream.repo这样的文件。如果没有看到plus仓库就需要手动添加。用vim或者nano编辑仓库配置vim /etc/yum.repos.d/AnolisOS-Plus.repo写入以下内容[Plus] nameAnolisOS-$releasever - Plus baseurlhttps://mirrors.openanolis.cn/anolis/$releasever/Plus/$basearch/os/ gpgcheck1 enabled1 gpgkeyfile:///etc/pki/rpm-gpg/RPM-GPG-KEY-ANOLIS这里有几个参数需要解释一下$releasever是系统版本号变量dnf会自动解析成8或7不用手写死。$basearch是架构变量会自动解析成x86_64或aarch64。gpgcheck1表示开启GPG签名验证防止装到被篡改的包。gpgkey指向龙蜥官方的GPG公钥。如果文件路径不存在可以先导入rpm --import https://mirrors.openanolis.cn/anolis/RPM-GPG-KEY-ANOLIS仓库文件写好后验证一下源是否可用dnf repolist输出里应能看到Plus仓库出现在列表中。如果提示找不到镜像或者元数据获取失败先检查网络连通性再检查baseurl里的路径是否能通过浏览器访问。提示如果你所在网络访问mirrors.openanolis.cn速度较慢可以替换成阿里云镜像源等龙蜥官方认可的镜像站点。方法就是把baseurl里的域名改掉比如改成https://mirrors.aliyun.com/anolis/$releasever/Plus/$basearch/os/。实测国内云服务器用阿里云镜像速度明显快不少。3.3 源配好了先别急着装先做这步依赖检查配置好仓库之后先别急着执行dnf install kernel建议先刷新一下元数据同时查看一下仓库里有哪些内核版本可选dnf clean all dnf makecache然后搜索可用的内核包dnf list --available kernel这个命令会列出Plus仓库里提供的内核版本。可能会看到类似kernel-5.15.x.x.an8或者kernel-6.1.x.x.an8这样的版本号。看到多个版本不要贪心选一个稳定的即可。我的建议是优先选择5.15或者6.1这类LTS长期支持版本不要追最新的大版本。在真正安装之前还可以检查一下将安装的内核包需要哪些依赖dnf deplist kernel-6.1.60-1.an8.x86_64或者直接模拟安装看看会不会有依赖冲突dnf install --assumeno kernel-6.1.60-1.an8.x86_64注意最后的--assumeno参数意思是“假设回答no”也就是只做依赖解析和下载准备不真正执行安装。如果这一步直接报错说明有依赖问题需要先解决不要跳过这个检查。4. 内核升级实操从下载安装到重启验证4.1 安装新内核安装哪些包、什么顺序最稳确认仓库和依赖都没问题之后就可以正式安装内核了。这里要特别注意不建议只装一个kernel包就完事建议把配套的kernel-core、kernel-modules、kernel-devel一起装上。为什么我给你解释一下kernel-core包含了内核启动需要的最小文件集不装的话系统可能无法启动。kernel-modules包含了常用的驱动模块不装的话很多硬件设备会无法识别。kernel-devel是内核头文件和开发库虽然运行时不依赖但如果之后要编译第三方驱动模块比如某些网卡驱动、GPU驱动就必须要这个包。安装命令如下dnf install kernel kernel-core kernel-modules kernel-devel如果你已经明确知道具体版本号也可以直接指定版本安装dnf install kernel-6.1.60-1.an8.x86_64 kernel-core-6.1.60-1.an8.x86_64 kernel-modules-6.1.60-1.an8.x86_64 kernel-devel-6.1.60-1.an8.x86_64安装过程中dnf会自动生成initramfs初始内存文件系统配置文件位于/boot/grub2/grub.cfg并且把新内核追加到GRUB菜单里。这个过程通常不需要手动干预但装完之后最好确认一下新内核是否已经出现在GRUB菜单中grubby --infoALL | grep -E ^kernel|^index输出应该能看到新版本的vmlinuz文件路径。注意如果你用的是Anolis OS 7系列包管理器是yum而不是dnf命令改成yum install即可其他逻辑一致。Anolis OS 8和9系列使用dnf。4.2 配置默认启动内核不配置就重启等于给自己挖坑新内核装好之后系统默认的启动内核其实还是旧版本。有些朋友装完内核直接重启发现机器起来之后uname -r显示的版本没变还以为是安装失败了。其实不是只是默认启动项没切过去。查看当前默认启动内核grubby --default-kernel要把默认启动内核切换到新版本用grubby命令指定grubby --set-default/boot/vmlinuz-6.1.60-1.an8.x86_64注意这里的vmlinuz路径要替换成你系统里实际存在的文件。如果不确定文件名可以先列出ls -l /boot/vmlinuz-*设置完成后再验证一下grubby --default-kernel输出应该显示你刚才设置的新内核路径。这里还有一个细节值得说一下grubby命令会同时修改/etc/default/grub中的GRUB_DEFAULT配置。以后再执行grub2-mkconfig -o /boot/grub2/grub.cfg重新生成引导配置时默认启动项依然保留为新内核不会出现“刷新配置后又变回旧内核”的问题。4.3 调整内核启动参数按需配置别照抄网上的新内核装好、默认启动项也切好之后还有一个关键步骤就是内核启动参数的配置。很多人的做法是直接沿用旧内核的参数但不同内核版本对某些参数的默认值有变化直接用不一定合适。查看当前GRUB启动参数grubby --infoALL | grep -E ^kernel|^args或者只查看默认内核的参数grubby --info$(grubby --default-kernel) | grep args如果你需要追加启动参数比如配置console串口输出、关闭NUMA、或者调整crashkernel内存预留可以用--update-kernel参数来追加grubby --update-kernel/boot/vmlinuz-6.1.60-1.an8.x86_64 --argsconsolettyS0,115200n8如果需要删除某个参数比如删除一个不再需要的旧参数用--remove-argsgrubby --update-kernel/boot/vmlinuz-6.1.60-1.an8.x86_64 --remove-argsquiet这里我要特别提醒一点不要盲目照搬网上的内核参数优化教程。很多参数在不同内核版本、不同硬件平台下的行为差异很大。比如transparent_hugepagenever这种参数在旧内核上可能有效但在新内核上可能已经被换成了别的控制方式。配置修改之前建议先通过man手册或者官方文档确认参数的语义和取值。4.4 重启与验证新内核有没有生效看这几个地方配置完成之后就到了最紧张的重启环节。如果不方便立即重启可以先执行一次内核模块依赖检查和initramfs重建确保万无一失dracut --force这个命令会重新生成当前默认内核的initramfs文件。正常情况下安装内核时已经自动生成过了但如果你在安装之后手动修改了/etc/fstab、添加了新的磁盘或者修改了某些硬件配置手动强制重建一次会更稳妥。确认无误后重启reboot重启过程如果一切正常系统会进入新内核。登录后第一时间执行uname -r确认输出的是新内核版本号。然后再查看系统启动是否正常systemctl is-system-running这个命令会显示当前系统状态。如果输出是running或degraded都算正常——degraded表示有部分服务异常但不影响核心功能。如果输出failed就需要进一步排查具体是哪个服务挂了。另外还要确认关键服务是否正常运行特别是网络服务和SSH服务systemctl status sshd systemctl status NetworkManager还有存储服务比如systemctl status multi-user.target可以看整体运行级别。这些验证动作做完之后新内核就算正式跑起来了。但别高兴太早生产环境的内核升级还有一个重要环节——回滚方案。下一节详细说。5. 常见问题与回滚方案翻车也不怕关键是有后手5.1 启动失败怎么办两种快速回滚到旧内核的方法内核升级之后最怕的情况就是重启起不来。如果新内核存在严重问题比如文件系统模块加载失败、根分区无法挂载、或者显卡/网卡驱动导致系统卡死这时候需要快速回到旧内核。方法一在GRUB菜单中选择旧内核启动。这是最直接的方法。重启时在GRUB菜单界面通常是黑底白字的列表用上下方向键选择带有旧版本号的内核条目按回车启动。如果你的机器GRUB菜单默认隐藏了在开机时按Esc或者Shift键可以调出菜单具体按键取决于你的引导方式UEFI和BIOS略有差异。这个方法的优点是不需要任何命令操作缺点是需要手速和现场操作。如果服务器在机房而且没有远程控制台这个方法就派不上用场了。方法二设置旧内核为默认启动项后重启。如果你的系统能进入命令行或者能通过SSH连接上非常幸运的情况可以直接用grubby把默认内核切回旧版本然后重启grubby --set-default/boot/vmlinuz-旧版本号.an8.x86_64 reboot注意旧版本号要替换成你之前记录的旧内核版本号。如果你没有记录可以通过以下命令查看GRUB菜单里所有可用的内核grubby --infoALL | grep -E ^kernel|^index选择旧版本的内核路径执行--set-default即可。5.2 升级后网卡驱动异常一查、二看、三回滚新内核起来之后网卡驱动问题是出现频率最高的故障。典型表现是ping不通、SSH断开、ip addr看不到网卡。遇到这种情况建议按以下顺序排查第一步查看网卡是否被识别lspci | grep -i ethernet如果能看到网卡设备说明硬件层面没有问题。接下来查看驱动模块是否加载lsmod | grep -E ixgbe|i40e|e1000|igb|mlx如果输出为空说明驱动模块没有加载。尝试手动加载modprobe ixgbe如果提示Module ixgbe not found说明这个内核版本里根本没有对应的驱动模块。这时候有两条路一是换回旧内核二是找网卡厂商提供适配新内核的驱动包手动安装。如果模块能加载但网卡依然不通检查一下网络管理服务状态systemctl status NetworkManager有时候只是NetworkManager服务没起来导致网卡没有自动获取IP或者没有启用连接配置systemctl restart NetworkManager我遇到过一种情况新内核下网卡驱动自动切换到了iavf等新驱动但系统的网络连接配置文件中写的是旧驱动接口名比如eth0而新驱动下接口名变成了ens3f0导致连接配置对不上。这种情况下需要修改/etc/sysconfig/network-scripts/ifcfg-*或者NetworkManager的连接配置把接口名改成实际名称。5.3 第三方内核模块编译失败DKMS的正确使用方法升级内核之后如果你系统里安装了需要通过DKMS编译的第三方模块比如某些厂商的驱动、ZFS文件系统、或者特定虚拟化模块经常会遇到编译失败的问题。检查系统中是否有DKMS模块dkms status如果有模块状态显示installed但版本对应的是旧内核需要在新内核下重新构建dkms autoinstall -k 6.1.60-1.an8.x86_64如果没有安装kernel-develDKMS编译会直接失败提示缺少/lib/modules/$(uname -r)/build目录。解决方法是先安装内核开发包dnf install kernel-devel kernel-headers然后再执行dkms autoinstall。这里有个小坑有些第三方模块只适配特定内核版本新内核下即使强行编译也过不了。比如某些老的GPU驱动对内核API变更非常敏感只能等待厂商更新适配。这类场景没有捷径建议先保留旧内核作为生产使用新内核在小范围验证通过后再全面切换。5.4 常见问题速查表问题现象可能原因排查命令/方法解决思路重启后系统版本没变默认启动内核未切换grubby --default-kernel重新执行--set-default指定新内核网卡无法识别新内核缺少对应驱动模块lspci、lsmod手动编译安装厂商驱动或暂时回滚启动过程卡在挂载根文件系统initramfs缺少对应文件系统驱动在initramfs阶段检查用dracut --force重建initramfs安装了第三方模块但内核加载失败DKMS模块未适配新内核dkms status执行dkms autoinstall重新编译新内核下性能反而变差CPU调频策略或NUMA设置变化cpupower frequency-info检查启动参数和tuned配置内核安装报依赖冲突软件源之间有包冲突dnf deplist检查是否有第三方源混用锁定源优先级5.5 删除旧内核什么时候该清、什么时候该留升级稳定运行一段时间之后很多人会想着把旧内核包卸载掉释放一点/boot空间。这个操作可以做但一定要讲时机。我建议至少满足这两个条件再清理新内核稳定运行超过两周、期间没有出现需要回滚的问题。如果新内核验证期间遇到反复先留着旧内核保命。查看系统中所有已安装的内核包版本rpm -qa | grep ^kernel卸载旧内核包时使用dnf remove同时把对应的模块包一起删掉但不要删除当前正在运行的内核包。比如你想删除旧的5.10内核dnf remove kernel-5.10.134-16.1.an8.x86_64 kernel-core-5.10.134-16.1.an8.x86_64 kernel-modules-5.10.134-16.1.an8.x86_64执行之后grubby会自动更新GRUB菜单删除对应条目。确认一下grubby --infoALL如果还有残留的旧内核启动条目手动执行grub2-mkconfig -o /boot/grub2/grub.cfg重新生成引导配置即可。6. 需要长期关注的几个点内核升级完成、系统稳定运行只是第一步。长期运维中还有几个事项值得持续关注。第一是安全补丁的定期更新。内核是安全漏洞的重灾区龙蜥官方会持续为维护版本发布安全补丁。建议通过dnf update --security定期检查安全更新或者使用龙蜥的CVE监控公告页面主动关注漏洞信息。第二是内核参数调优的“温习”。新内核版本对默认参数设置有调整比如网络缓冲大小、文件系统缓存策略等。升级到新内核之后建议重新审查一下/etc/sysctl.conf里的参数设置看看有没有基于旧内核版本调整过的参数需要同步更新。我在实践中就遇到过旧内核下设置的net.core.rmem_max在新内核下默认值已经变大配置文件里的显式设置反而限制了性能。第三是定期关注龙蜥社区发布的发版说明。内核升级过程中遇到的问题很多都能在发版说明里找到已知问题和对应的规避方法。社区活跃度高的项目遇到问题时也更容易搜到相关资料。还有一个运维习惯上的建议每次内核变更之后把关键信息记录下来包括升级前后的内核版本、变更的内核参数、升级过程中遇到的问题和解决办法。这样下次再升级时就有了自己的一手参考资料。我个人在实际操作中的体会是内核升级这件事最忌讳的就是“快”。把查询做细、把方案选对、把回滚准备好剩下的安装和配置只需要按部就班执行即可。这套流程我走过很多遍也替生产环境踩过不少坑希望这篇指南能让你少走一些弯路尤其是把“查询”和“配置”这两个核心环节吃透。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号