北屯市网站建设_网站建设公司_前端工程师_seo优化
2026/1/11 21:35:29 网站建设 项目流程

title: “虚拟机假死?SSH 能连却卡 Logo 界面”
date: 2026-1-11 20:30
categories: [技术]
tags: [技术,分享]

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

作为一名后端开发,虚拟机常常是我们用来跑中间件(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 终端中执行全系统更新:

sudodnf update -y

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

sudoreboot

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

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

这个问题本事上是宿主机环境虚拟机环境发生了代沟,在运维领域常被称为环境飘逸(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一把。大多数时候,让它“跟上时代”,问题就迎刃而解了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询