服务器启动自检日志,也就是开机自检(POST)阶段的输出,是判断硬件故障的第一手证据,看它的核心方法就两条先确定日志在带外还是带内,再按启动时间线从硬件自检到系统内核逐段排查。
服务器开机自检日志怎么看:先分清两条抓取路径
服务器和台式机看着像,但看启动日志的方式完全不同,台式机开机时屏幕上滚动的英文你还能拍张照,服务器大部分时间待在机房里,你根本没机会站在它面前按电源键,所以看日志前,先想清楚你要走哪条通道。
带外管理的自检日志:BMC/IPMI 记录的原始串口输出
带外就是不看操作系统,直接访问服务器主板上那颗独立的管理芯片,主流服务器品牌各有叫法,戴尔叫 iDRAC,惠普叫 iLO,浪潮、联想、超微等用的是标准 IPMI 或专用的 BMC 管理口。
这类日志的最大特点是:系统没起来也能看,芯片有独立的供电和网络接口,只要服务器插着电源线、管理口连上网,你就能从浏览器里登录管理界面,找到"系统日志""SOL 控制台"或"启动日志"入口,看上几次开机的完整输出,多数管理界面还会记录 POST 卡住时的屏幕快照,这是排查硬件自检失败最省事的素材。
带内系统的启动日志:进系统后才能读的文件
带内日志存在操作系统的文件系统里,适合服务器能正常进入系统,但你想确认上一次启动有没有报警的情况,以 linux 为例,journalctl 和 dmesg 是抓取启动信息的主力工具;Windows 则要去事件查看器里找系统日志,带内日志的信息更偏软件、驱动和内核层面,硬件的早期自检细节往往被过滤掉了。
对比一下两种日志的使用场景,你自己就能判断哪种合适:
| 对比项 | 带外日志(BMC/IDRAC) | 带内日志(系统内) |
|---|---|---|
| 服务器死机、黑屏时 | 可用 | 不可用 |
| 看 POST 自检阶段 | 最完整 | 只能看到内核接管后的信息 |
| 远程机房操作 | 强烈推荐 | 需先能进系统 |
| 历史记录保存时间 | 数十条至数百条 | 取决于日志轮转策略 |
linux 系统开机自检日志在哪:三个命令直接拿到定位结果
如果你面对的是清一色 linux 服务器,没配带外管理,那就只能等系统启动完成后,用命令把上次启动的痕迹捞出来,这里给你三条命令,外加一条补充查看命令,足够覆盖日常诊断需求。

第一条:journalctl -b 查看本次开机全部日志
-b boot 的意思,-b -1 看上一次开机记录,-b -2 看倒数第二次,以此类推,这是 systemd 接管后的标准查看方式。
第二条:dmesg --level=err 只显示内核报错
不加 --level 参数时,dmesg 会刷出几千行无关内容,你根本看不出问题,加上 --level=err 后,只剩错误级别的提示,定位效率直线上升,想同时看警告信息,就换成 --level=err,warn。
第三条:systemd-analyze blame 找出哪个服务拖慢启动
这条命令回答的问题是:机器明明起来了,但卡在某个服务上很久,命令会按耗时从高到低排列所有开机启动项,看到哪个服务排名靠前且时间异常,就去查它对应的配置。
补充方法:/vat/log/ 目录下的传统日志文件
老派的运维习惯会直接撬 /var/log/messages(CentOS 6/RHEL 6 时代)或 /var/log/syslog(Debian/Ubuntu 系),用 grep 过滤关键词,虽然 systemd 普及后这些文件逐渐被 journald 覆盖,但有些数据库或中间件仍然会在这里写自己的启动过程,值得瞄一眼。
操作上有个细节:journalctl -b 的内容默认只保存在内存里,重启后就被覆盖,如果希望它们持久化,需要手动修改 /etc/systemd/journald.conf 里的 Storage= 选项,顺手把这个配置文件改好,再配合 cron 任务定时导出启动日志,遇到问题时才不会被系统"失忆"坑到。
服务器重启卡在自检怎么排查:按启动段拆解日志
拿到了日志,下一步就是读懂它,很多运维看到满屏英文就开始焦虑,其实服务器自检的流程固定得很,按顺序砍成三段排查,命中率最高。
硬件自检阶段:看最后一行输出和指示代码
从按下电源到 BIOS 交出控制权,这个阶段叫 POST,卡在这一段的典型表现是:屏幕停在某个硬件检测项,键盘灯没反应,或者服务器前面的数码管显示一个两位十六进制代码,服务器 LCD 面板上的代码最有参考价值,主流厂商都会在官方文档里公布代码含义,对照查就行。
这个阶段的高频故障点,按概率排序大致是:
- 内存条接触不良或损坏表现为卡在内存计数的进度条,或蜂鸣器发出短促报警,处理办法:断电后挨个拔插内存,看日志中哪一根内存地址频繁报错,优先更换。
- 阵列卡检测磁盘超时卡在"Detecting Drives"超过一分钟,排查硬盘接口、背板供电线,进入 RAID 管理界面看磁盘健康状态。
- CPU 供电或主板自检不通过多出现在新增硬件后,先恢复出厂 BIOS 设置,再逐项排除。

看这一段的日志时,心中记着一条基本原则:位置靠前的错误,往往是根因;靠后的错误,可能是前面故障引发的连锁反应,比如内存报错导致系统无法识别某块磁盘,你直接去换磁盘就废了。
引导加载器到内核阶段:看好 panic 关键词
POST 通过后,引导加载程序(GRUB 为主)开始加载内核,这个阶段卡住,屏幕上往往能看到 Kernel panic 或 Initramfs unpacking failed 字样,写过启动脚本的人都知道,根文件系统损坏或 /boot 分区被写满,都会让内核起不来。
操作步骤:进入 GRUB 菜单,在启动项上按 e 编辑内核启动参数,临时加上 rdbreak 或 single 进入紧急模式,重建 initramfs:
dracut -f /boot/initramfs-$(uname -r).img
执行完再重启,多数引导器阶段的故障能规避开。
systemd 服务启动阶段:用时间线排查卡住的服务
到了这个阶段,内核已经跑起来,系统开始按顺序拉起各种服务,这里的日志特征是每行前面都带时间戳,查找卡点方式很直接:看 journalctl -b 里两条日志时间间隔最长的那个位置,再配合 systemd-analyze blame 确认具体是哪个单元拖后腿,行业共识认为,延迟最大的位置大概率是网络服务在等 DHCP 超时,或者某个挂载点等不到磁盘就绪,这一类问题跟硬件自检的关联度反而不高。
机房服务器远程重启场景下的日志技巧
前面讲的都是你能到现场的情况,现实中更常见的是:你在办公室,服务器在几百公里外的机房,重启后开不了机,只能靠远程手段自救。
没配带外管理时,先检查你手头有没有串口控制台
大多数 x86 服务器的 BIOS 里都有"串口重定向"(Serial Console)选项,开启后,服务器会把自检过程完整输出到串口,通过机房提供的 KVM-over-IP 或远程串口服务器,你就能实时看到 POST 画面,如果服务器还没到那种彻底断电的状态,这条路径救急效果很好。

前提是你提前开过这个选项,服务器已经在跑业务时再远程设置,来不及。
先抓屏幕快照,再动硬件配置
带外管理界面里普遍提供"上次崩溃截图"功能,发现服务器重启失败,第一件事是进去把这四类记录完整备份出来:当前屏幕截图、上次启动日志、事件日志、传感器温度电压记录,备份完再去动硬件,否则排查过程中日志被覆盖,你就真的瞎了。
对于没有带外管理、纯网络重启的设备,应急预案里建议多留一个心眼:在系统配置文件里打开 kernel 的 printk 控制台输出,把内核信息同步转发到日志服务器,这样就算机器本体起不来,远端日志服务器上还残留着临终遗言。
Q&A:服务器启动自检日志相关的常见疑问
Q: 服务器开机自检日志存在哪里?重装系统后这些记录还在吗?
A: 硬件 POST 阶段的信息由 BMC/IPMI 芯片独立保存,重装操作系统不会影响这部分记录,带内系统日志(如 journald、事件查看器)由于存放在系统分区,重装后会被清空,需要进系统前先把需要归档的日志拷贝到备份路径。
Q: 自检日志中某根内存报错,但只是偶发死机,这根内存还能继续用吗?
A: 内存错误不带"偶发"这种说法,服务器内存有纠错机制(ECC),单个 bit 差错会被硬件纠回,日志里根本看不见,能看到报错,说明错误已经超出纠错能力,这根内存的稳定性已经劣化,行业内的处理标准是立即更换,以免下次死机发生在业务高峰期,如果你选择观察,务必保证备件在手,且已知晓业务中断的风险。
Q: 日志中出现大段地址和数字很吓人,但排除了对应部件后系统又正常了,怎么解释?
A: 这些地址是 PCI 设备的总线坐标,格式类似 0000:3d:00.0,前段是总线号,后段是设备号,日志顺序不代表损坏顺序,多为系统尝试初始化时扫描所有设备留下的记录,对应部件被替换后,日志中依然出现地址路径属正常现象,关键在于关注错误码后面的具体描述,如 Uncorrected Error 或 timeout,这才是判断故障性质的依据。
服务器的启动日志是机械而诚实的,它不关心你怎么猜,只记录电压、时序和每一次通信的结果,遇到疑难故障,把三段日志按时间线对齐,先带外后带内,先硬件后软件,多数问题都能在日志的缝隙里找到答案。