【银河麒麟高级服务器操作系统·实例分享】裸金属服务器开机失败分析及处理建议

了解更多银河麒麟操作系统全新产品,请点击访问

麒麟软件产品专区:https://product.kylinos.cn

开发者专区:https://developer.kylinos.cn

文档中心:https://documentkylinos.cn


现象描述

裸金属物理服务器开机卡在EFI stub页面,无法正常进入系统。

现象分析

单用户

针对开机类问题首先通过grub中添加参数进入单用户模式,尝试恢复系统,但通过添加对应参数进入单用户模式同样会卡在EFI stub页面依旧无法正常进入系统。

救援模式

因单用户无法进入,尝试通过挂载iso镜像至光驱,通过iso镜像进行救援模式操作,挂载的为银河麒麟高级服务器操作系统SP3-iso镜像,通过进入TroubleshootingRescue中进救援模式,在救援模式正常进入后,通过chroot /mnt/sysimage进入问题系统进行排查,查看/var/log/messages看到,在5月13日后日志出现停止记录现象,最后记录的信息为符号组成乱码,无有效信息。从日志记录现象得知系统死机时为突发情况,且疑似记录日志的rsyslog等服务写入日志动作未成功完成,偏突发情况。

通过救援模式查看对应/var/crash目录,并未发现生成kernel生成的对应vmcore文件,已知vmcore为系统层分析宕机类问题的重要调试工具,/var/crash为默认vmcore存储目录,以此推断系统本身并无时间主动生成异常日志。

文件系统

通过救援模式观察系统内文件系统分布可知根目录为ext4格式,尝试使用fsck.ext4对/dev/mapper/klas-root等重要文件系统进行检测修复。结果反馈文件系统本身并未出现异常损坏,无法开机问题非常规掉电导致系统内文件系统损坏而无法开机。

尝试对存储磁盘分区的/etc/fstab文件中对除根目录挂载点以外的目录进行注释,排除其他磁盘分区带来的影响,直接重启操作系统测试发现,仍然无法正常进入系统,此时排除其他磁盘分区异常。

串口日志

因系统内无有效日志信息,于是通过开启串口日志,捕获系统侧外的日志信息,观察无法正常开机启动原因。

通过串口日志捕获到在最初存在对应驱动存在mem内存处异常,怀疑为对应驱动模块BUG导致问题,于是在内核加载的grub阶段,对串口日志的报错模块进行禁止加载(modprobe.blacklist)动作,以此排除系统在启动时因个别驱动模块异常导致的无法开机问题。

进行如上图的操作后,发现串口日志仍有Call trace日志输出,如下图。

由该串口日志可以看到,已知comm提示异常进程为systemd-udevd,该进程主要负责系统中的设备管理,处理设备的初始化、热插拔事件和设备节点管理等工作;输出对应的stack limit=0x(ptrval_)堆栈限制指向该进程在对应堆栈出存在异常。造成该异常可能原因包括内存异常、硬件问题和内核代码问题等。

从现有的堆栈我们可以看到最后的Call trace指向的地址为十六进制的0xffff22563e000008,这可能表示内存地址或内存操作的相关动作,该位置并未打印出对应的内核内部函数,偏向于内存地址本身存在异常,并非在内核函数内部崩溃。

如图中表示的Code:bad PC value通常在系统或应用程序崩溃时出现,说明存在无效的程序计数器(PC)值,PC通常为指向正在执行的指令的寄存器,存储下一条要执行的指令的内存地址,当PC值无效或指向错误地址时,便会出现bad PC value错误。该错误的出现大部分可能由:1、硬件故障;2、软件代码错误;导致。

分析结论

截至现有信息,系统层并++++无更多有效信息++++(vmcore)可用于分析死机原因,串口提供的日志更多的指向底层内存异常。且系统侧的恢复手段均无法启动操作系统。

因此建议整机侧协助对底层硬件内存相关设备进行更换检测,后续整机同事更换内存等主板硬件后整机侧反馈可正常开机。

解决建议

整机侧更换服务器主板。

相关推荐
xu_yule1 小时前
Linux_12(进程信号)内核态和用户态+处理信号+不可重入函数+volatile
linux·运维·服务器
虾..1 小时前
Linux 环境变量&&进程优先级
linux·运维·服务器
世界尽头与你1 小时前
CVE-2022-46463 Harbor public 镜像仓库信息泄露
安全·网络安全·渗透测试
i***t9192 小时前
Linux下MySQL的简单使用
linux·mysql·adb
偶像你挑的噻2 小时前
11-Linux驱动开发-I2C子系统–mpu6050简单数据透传驱动
linux·驱动开发·stm32·嵌入式硬件
稚辉君.MCA_P8_Java2 小时前
DeepSeek 插入排序
linux·后端·算法·架构·排序算法
十里-3 小时前
前端监控1-数据上报
前端·安全
数据库学啊3 小时前
团队小希望运维简单,时序数据库选型有什么推荐?
运维·数据库·时序数据库
霍格沃兹软件测试开发4 小时前
Playwright MCP浏览器自动化指南:让AI精准理解你的命令
运维·人工智能·自动化
郝学胜-神的一滴4 小时前
Linux命名管道:创建与原理详解
linux·运维·服务器·开发语言·c++·程序人生·个人开发