虚拟机假死?SSH 能连却卡 Logo 界面


date: 2026-1-11 20:30
categories: [技术]
tags: [技术,分享]

作为一名后端开发,虚拟机常常是我们用来跑中间件(MySQL、Redis、RocketMQ 等)或者模拟线上环境必不可少的工具,其重要程度不言而喻。

最近因为有些懈怠,有一段时间没打开虚拟机了。今天本想登上虚拟机看看,结果打开 VMware上的龙蜥 8(AnoliOS 8),发现一个怪事:虚拟机启动后,画面一直卡在 Anolis 的 Logo 界面,死活进不去登录页,仿佛"假死"了一样。

如下图所示:

但随后更奇怪的事发生了,我试了一下 SSH,居然能秒连!仿佛这次故障没发生一样。

这就像是 Tomcat 启动成功了,端口也能访问,但浏览器打开页面全是 404。这篇文章记录一下排查过程,以及从这次故障中延伸出的一些关于"环境一致性"的思考。

故障现象

  • 宿主机:Windows 11 + VMware Workstation
  • 虚拟机:Anolis OS 8(兼容 CentOS 8)
  • 症状:开机黑屏,画面下方有一个 Logo,有时间和操作设置,但无法进入图形登陆界面
  • 反常点:通过 SSH 可以正常登录系统,执行命令流畅,说明系统内核(Kernal)和基础服务都在运行,只是图形子系统(GUI)挂了

排查与尝试

既然 SSH 能连,说明已经将问题范围缩小到了 **Display Server(显示服务)**层级。

我的第一反应是查看日志和配置问题。我先后尝试了以下"常规"操作,但都无效:

  1. 多次关机重启:俗话说重启能解决电脑 90% 问题,但这次很"幸运"遇见了那 10%。
  2. 关闭 3D 加速:这是 VMware 常见的坑,但检查设置发现我本来就没开。
  3. 禁用Wayland :修改 /etc/gdm/custom.conf 强制使用 Xorg,重启后依然卡在 Logo。

解决方案

最终的解决方案,居然是简单粗暴的一行命令:

在 SSH 终端中执行全系统更新:

bash 复制代码
sudo dnf update -y

等待几分钟更新完成(下载了一堆 kernel, open-vm-tools, gdm 等包),然后重启:

bash 复制代码
sudo reboot

重启后,熟悉的界面秒弹出,问题成功解决。

深度解析:为什么仅仅是更细就能修复问题?

这个问题本事上是宿主机环境虚拟机环境 发生了代沟,在运维领域常被称为环境飘逸(Environment Drift)

1. 驱动与硬件的不兼容

在我没打开虚拟机的这段时间里,宿主机 Windows 可能更新了显卡驱动,VMware 软件本身可能也打过补丁。

这意味着,虚拟机底层的"虚拟硬件接口"变了。而 Anolis OS 里的驱动(Kernel Modules)还是之前的旧版本。

2. dnf update 做了什么?

执行更新命令,实际上完成了两个核心操作:

  • 升级内核与驱动 :安装了最新的 open-vm-tools 和显卡驱动,相当于更新了 Consumer 端的 jar 包,使其重新匹配宿主机的接口。
  • Rebuild Initramfs:系统在更新内核时会重新构建引导镜像,清理了可能存在的脏缓存。

扩展思考:从虚拟机到 Docker

这次经历让我联想到了为什么现代后端开发越来越推崇 DockerK8s,对于大家来说,这两个名词可能并不陌生。

传统的虚拟机(VM)模式,操作系统是非常厚重的一层。像我这次遇到的问题,仅仅是因为时间问题,宿主机和客户机之间就产生了不兼容。

如果在生产环境,这种"跑着跑着因为环境没更新而挂掉"的情况是灾难性的。这也正是 容器化技术 解决的痛点:

  • VM 模式:像是在维护一台精密的物理机器,你需要关心显卡驱动、内核版本、GUI 服务。
  • Docker 模式 :应用与其依赖环境被打包在镜像(Image)里。FROM openjdk:17 锁死了环境。无论宿主机怎么变,容器内部的环境是恒定的。

总结一下

如果你的虚拟机很久没开,突然出现各种"灵异"的显示问题,不要急着改配置文件。只要 SSH 能连上,先试着 yum/dnf update 一把。大多数时候,让它"跟上时代",问题就迎刃而解了。

相关推荐
蝎子莱莱爱打怪2 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
埃博拉酱2 天前
VS Code Remote SSH 连接 Windows 服务器卡在"下载 VS Code 服务器":prcdn DNS 解析失败的诊断与 BITS 断点续传
windows·ssh·visual studio code
DianSan_ERP3 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
呉師傅3 天前
火狐浏览器报错配置文件缺失如何解决#操作技巧#
运维·网络·windows·电脑
不是二师兄的八戒3 天前
Linux服务器挂载OSS存储的完整实践指南
linux·运维·服务器
zhangfeng11333 天前
趋动云 如何ssh登录 服务区 项目server
运维·人工智能·ssh
ZeroNews内网穿透3 天前
谷歌封杀OpenClaw背后:本地部署或是出路
运维·服务器·数据库·安全
失重外太空啦3 天前
nginx
运维·nginx
Gofarlic_oms13 天前
避免Kisssoft高级分析模块过度采购的科学评估方法
大数据·linux·运维·人工智能·matlab
田井中律.3 天前
服务器部署问题汇总(ubuntu24.04.3)
运维·服务器