Skip to main content

天钡小主机CPU故障排查记录

· 4 min read
xiaonya
Operations Engineer

记录一次比较少见的天钡mini主机CPU硬件故障排查过程。

目录

背景与异常现象

天钡主机

前几天终于有空了,于是尝试在自己买的二手天钡miniPC上重装一套家里云的系统,但是重装完之后发现Proxmox VE系统根本无法往虚拟机中正常安装系统。后续即使不用虚拟化也会出现问题,遂开始尝试排查。最初是在proxmox VE中安装虚拟机时,安装媒介的检查会失败,Fedora绕过安装媒介检查安装后无法完整走完安装流程,Debian安装过程可能kernal panic。可能正常通过,但安装完后虚拟机的apt包管理工具明显不正常,更新过程中总是会提示apt cache文件损坏,哈希不正确,无法安装。

apt异常

初步尝试:排除虚拟化与系统问题

最初怀疑是proxmox VE的问题,尝试升级proxmox VE版本,重新安装proxmox VE,均无效,便放弃虚拟机了。后续尝试在物理机上直接安装Fedora,安装过程中出现的问题与虚拟机中的完全相同,安装Debian也能跑通安装程序,但出现相同的aptcache损坏问题。

当时还怀疑是这套硬件与Linux不兼容,安装Windows后一切正常,但在Windows里的VMware Workstation中安装Linux虚拟机时也会出现相同的问题,进一步排除了Linux兼容性问题。后续尝试使用memtest86对内存进行测试,一切正常,测试全部pass,再在安装的Debian中使用smartctl对硬盘进行检测,也没有发现问题。硬盘健康度100%。

temp

深入排查:校验和异常

事情的转机出现在我将shell交给了我的朋友turbo,他也测试了同样的结果,但他通过apt的debug模式发现,确实是文件的校验和不符合要求,于是他用sha256sum对下载的文件进行多次计算,发现文件计算的哈希结果有时候是正确的,有时候是错误的,且错误的结果并不总是相同的。

哈希错误

继续深一步排错发现,哪怕文件已经放入/dev/shm这种内存文件系统中,计算出来的哈希值依然会不稳定,说明问题并不在硬盘上。

内存排查

故障定位:CPU某核心故障

但是内存测试又是通过的,那么继续深入,turbo想到了使用指定CPU核心来进行计算,结果发现当指定某些核心时,计算结果总是错误的,而指定其他核心时,计算结果总是正确的,这下终于锁定问题在CPU上了。检查了AMD的CPU微码更新,微码是正常的。

单核心计算

脚本如下:

for c in $(seq 0 15) ; do   echo "core $c";   for i in 1 2 3 4 5; do taskset -c $c sha256sum /dev/shm/big; done; done

临时解决与后续

最终,使用在Linux内核参数中禁用了有问题的CPU核心,系统一切恢复正常,apt包管理工具也不再报错。 禁用有问题核心后

由于这台电脑是二手🐴上淘的,因此只能联系卖家帮忙走售后进行返修维保。至此,问题将交给天钡的售后来处理,静待结果。