Ubuntu内核更新重启后无法连接Oracle实例 故障排查咨询
Ubuntu内核更新重启后Oracle实例失联排查方案
故障触发前提:实例此前运行正常,Ubuntu内核更新后按系统提示执行reboot重启,后续手动重启实例、停止后再启动、控制台发送诊断中断/诊断重启均无法恢复连接,按以下顺序排查:
- 优先调取实例串口日志定位故障点
所有启动阶段的报错都会输出到串口日志,直接在Oracle云控制台对应实例的「串口日志/历史诊断日志」板块就能查看,不需要反复重启实例试错,常见启动卡壳原因可直接从日志匹配:- 卡在
Loading initial ramdisk阶段无后续输出:新内核initramfs镜像生成损坏,或新内核版本未适配Oracle云虚拟化层的virtio驱动 - 启动过程提示进入
emergency mode/维护模式:/etc/fstab配置的挂载项异常,通常是附加数据盘、swap分区UUID变更,或附加块存储未正常挂载导致启动中断 - 启动流程走完到登录提示,但网络不通、SSH连接被拒:新内核缺失虚拟网卡驱动,或cloud-init、SSH服务未设置开机自启,也可能是重启后安全组、公网IP绑定规则异常
- 卡在
- 对应故障点的处理操作
- 新内核引导失败类问题:
- 重启实例时在GRUB引导界面选择更新前的旧版本内核启动,进系统后卸载刚更新的问题内核包,执行命令:
后续等官方推送适配Oracle云环境的内核补丁后再执行内核更新,不要直接装通用版内核更新包apt remove linux-image-<故障内核版本号> update-grub - 如果GRUB菜单不显示、无法选择旧内核,先停止实例,将系统盘卸载后挂载到同可用区的正常Ubuntu实例上,chroot到系统盘挂载目录,执行
update-initramfs -c -k all重新生成所有内核的initramfs镜像,再执行update-grub更新引导配置,之后把盘挂回原实例启动即可
- 重启实例时在GRUB引导界面选择更新前的旧版本内核启动,进系统后卸载刚更新的问题内核包,执行命令:
- fstab挂载异常进维护模式类问题:
- 直接在串口控制台输入root账号密码进入紧急模式,编辑
/etc/fstab文件,注释掉所有非系统根分区的挂载行,执行mount -a确认无报错后重启实例,进系统后重新核对块存储UUID,修正fstab配置后再重新挂载 - 如果未设置root密码无法进入紧急模式,同样通过挂盘到其他正常实例的方式,编辑挂载盘内的
/etc/fstab文件,注释异常挂载项后挂回原实例启动
- 直接在串口控制台输入root账号密码进入紧急模式,编辑
- 网络/服务异常类问题:
- 进系统后先核对内核版本对应的驱动包是否完整,执行
apt install linux-modules-extra-$(uname -r)安装缺失的virtio网卡、磁盘驱动 - 检查服务开机自启状态,执行
systemctl enable --now ssh cloud-init确保SSH服务、云初始化服务开机正常启动 - 回到Oracle云控制台核对实例VNIC配置,确认公网IP绑定正常、安全组入方向放行了22端口、子网路由表配置无异常
- 进系统后先核对内核版本对应的驱动包是否完整,执行
- 新内核引导失败类问题:
- 兜底恢复方案
若以上操作均无法快速恢复,先给原实例系统盘打快照做数据备份,使用同版本Ubuntu官方镜像创建新实例,将原系统盘作为数据盘挂载到新实例导出业务数据,直接将业务切到新实例即可,比逐点排查驱动、引导问题耗时更短。
内容的提问来源于stack exchange,提问作者whoo
相关产品推荐
相关产品推荐

