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

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

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

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

解决建议

整机侧更换服务器主板。

相关推荐
大新新大浩浩5 分钟前
jenkins平台使用Login Theme、Customizable Header插件定制修改登陆页图片文字及首页标题
运维·servlet·jenkins
laimaxgg19 分钟前
Linux关于华为云开放端口号后连接失败问题解决
linux·运维·服务器·网络·tcp/ip·华为云
浪小满21 分钟前
linux下使用脚本实现对进程的内存占用自动化监测
linux·运维·自动化·内存占用情况监测
东软吴彦祖35 分钟前
包安装利用 LNMP 实现 phpMyAdmin 的负载均衡并利用Redis实现会话保持nginx
linux·redis·mysql·nginx·缓存·负载均衡
卷卷的小趴菜学编程1 小时前
c++之List容器的模拟实现
服务器·c语言·开发语言·数据结构·c++·算法·list
艾杰Hydra1 小时前
LInux配置PXE 服务器
linux·运维·服务器
多恩Stone1 小时前
【ubuntu 连接显示器无法显示】可以通过 ssh 连接 ubuntu 服务器正常使用,但服务器连接显示器没有输出
服务器·ubuntu·计算机外设
慵懒的猫mi1 小时前
deepin分享-Linux & Windows 双系统时间不一致解决方案
linux·运维·windows·mysql·deepin
Allen Bright1 小时前
使用 JMeter 的 Autostop Listener 插件:自动化性能测试的守护者
运维·jmeter·自动化