我有一台运行 Ubuntu v22 的 Contabo 服务器,目前托管一些至关重要的 docker 容器。
Contabo 正在使用 Proxmox 来提供 VPS。
我今天早上醒来发现我的服务器宕机了,即使重新启动几次后也无法通过 SSH 登录,我通过 VNC 登录后才发现内核崩溃。
我一整天都在阅读有关此问题的帖子,几乎所有帖子似乎都来自用户引起的更新和更改,但是,在这种情况下,我什么也没做!我上次做任何更新是在几周前,这段时间运行良好。我对这种情况不够熟悉,无法理解终端中显示的信息,所以我希望有人能给我指明正确的方向。
现在我猜可能是硬件发生了变化,或者内核出了问题,但我真的不知道。我非常感谢大家的帮助!另外,抱歉,只有图片,我似乎无法从 VNC 窗口复制。
让我们看看输出的元素:
[ 1.12345]
告诉我们这件事发生在 Linux 启动后多少秒。因此,我们知道您的系统在您看到的情况发生前 1.3 秒就重新启动了。
---[ end Kernel panic – not syncing: VFS: Unable to mount root fs …
与此一致。您的内核找不到应成为其
/
目录的设备。因此,您的引导加载程序中的内核配置(很可能是用于虚拟机的虚拟器)已损坏并指向错误的设备。
或者,意外重启是其中的一部分,某些东西突然停止了虚拟机,也许恰好在关键时刻“拔掉电源”而破坏了根文件系统。这种情况不太可能发生,因为现代文件系统实际上很难以这种方式被破坏。丢失未写入的文件内容确实会发生,但变得无法挂载:这需要的不仅仅是在使用过程中关闭电源。
第零步:找到备份。你说“至关重要”,所以我知道你知道这些事情很重要,所以我很乐观地认为你已经有备份了!
第一步:找出虚拟机重启的原因。这很可能是你的主机提供商的问题。
然后:确定虚拟机的配置是否已更改。下载虚拟机的磁盘映像,将其设置为计算机上的环回设备,并验证是否可以找到卷/分区。验证根文件系统是否存在。检查文件系统完整性(fsck、挂载……)。检查内核选项(尤其是设置
root=
)是否反映在您的系统布局中。其余部分实际上取决于您的虚拟化程序如何启动您的操作系统 - 它可能会直接加载内核,或者可能会交给引导加载程序(例如 Grub)来执行此操作。弄清楚!这需要有人深入了解您的虚拟化系统的设置方式。