You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle云实例Ubuntu更新后开机报kernel错误 2分钟后自动关机

问题定位

你遇到的是Ampere架构Oracle云实例更新Ubuntu内核后的典型兼容故障:

  • 报错码里的d4210000是ARM64架构下内核触发BUG()硬陷阱的专用指令,代表内核加载到15秒左右的硬件枚举阶段触发了致命oops
  • 报错后2分钟自动关机是Oracle云宿主机的监控机制:检测到客户机内核panic后触发的强制断电,不是实例内系统进程主动执行的关机操作,因此正常开机流程下你只有极短操作窗口,根本来不及执行排查命令。
  • 该问题是Ubuntu 22.04/24.04近期推送的6.5.0-10xx、6.8.0-10xx系列内核对Oracle云ARM实例的ACPI/PCIe驱动兼容bug,和实例本身的磁盘、业务配置无关。
修复步骤

因为正常启动路径下没有足够操作时间,必须通过云平台的串行控制台提前介入启动流程:

  • 登录Oracle云控制台,找到故障实例,进入「控制台连接」页面,创建串行控制台连接,通过网页终端或者本地SSH连接到串行控制台,在控制台页面触发实例重启。
  • 实例启动过程中在串行控制台窗口持续按住Shift键,调出GRUB启动菜单,不要选择默认的最新内核启动项,移动光标选择Advanced options for Ubuntu子菜单,选中更新前的旧版本内核(不要选后缀带recovery的恢复模式项),按回车启动系统。
  • 成功进入系统后,先屏蔽存在兼容问题的故障内核,避免下次开机默认加载:
    1. 执行命令列出所有已安装内核,确认故障内核的完整版本号:
    dpkg -l | grep linux-image
    
    1. 执行命令锁定故障内核包,禁止apt自动升级/默认加载该版本,把命令里的<fault-kernel-version>替换成你查到的故障内核版本号:
    sudo apt-mark hold linux-image-<fault-kernel-version> linux-modules-<fault-kernel-version> linux-modules-extra-<fault-kernel-version>
    
  • 更新GRUB启动配置,将默认启动项设置为你刚才正常进入系统的旧内核,把<working-kernel-version>替换成旧内核的完整版本号:
    sudo sed -i "s/GRUB_DEFAULT=0/GRUB_DEFAULT=\"Advanced options for Ubuntu>Ubuntu, with Linux <working-kernel-version>\"/g" /etc/default/grub
    sudo update-grub
    
  • 执行sudo reboot重启实例,验证系统可以正常进入,不再触发内核报错和自动关机。
极端情况处理(所有内核均无法启动时)

如果GRUB菜单里的所有内核都触发相同报错,走离线修复路径:

  • 在Oracle云控制台停止故障实例,卸载实例绑定的系统引导卷,将该卷作为数据盘挂载到另一台同区域、同ARM架构的正常运行Ubuntu实例上。
  • 在正常实例上执行分区挂载、chroot操作进入故障卷的系统根目录,按照上述步骤卸载故障内核包、更新GRUB配置后,将卷卸载重新挂回原实例作为引导卷,启动即可恢复。

后续等Ubuntu官方推送修复了Oracle云ARM兼容问题的内核版本后,执行sudo apt-mark unhold <之前锁定的内核包名>即可解除锁定,正常升级内核。

内容的提问来源于stack exchange,提问作者MaxBrt18

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 10:27:17