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

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

麒麟软件产品专区: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)可用于分析死机原因,串口提供的日志更多的指向底层内存异常。且系统侧的恢复手段均无法启动操作系统。

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

解决建议

整机侧更换服务器主板。

相关推荐
冰淇淋百宝箱2 小时前
AI 安全时代:SDL与大模型结合的“王炸组合”——技术落地与实战指南
人工智能·安全
网络安全(king)2 小时前
网络安全知识:网络安全网格架构
安全·web安全·架构
anddddoooo2 小时前
域内证书维权
服务器·网络·网络协议·安全·网络安全·https·ssl
Dyan_csdn2 小时前
【Python项目】基于Python的Web漏洞挖掘系统
网络·python·安全·web安全
zhoupenghui1683 小时前
golang时间相关函数总结
服务器·前端·golang·time
lllsure3 小时前
Linux 实用指令
linux·物联网
努力的小T3 小时前
使用 Docker 部署 Apache Spark 集群教程
linux·运维·服务器·docker·容器·spark·云计算
Nerd Nirvana3 小时前
OpenSSL crt & key (生成一套用于TLS双向认证的证书密钥)
linux·ssl·shell·认证·加密·tls·oepnssl
不修×蝙蝠4 小时前
HTTP 协议(Ⅲ)
服务器·http·javaee·http协议
letisgo54 小时前
记录一次部署PC端网址全过程
linux·阿里云·服务器运维