重启后无法登录虚拟机

Cannot log into VM After Reboot

对于交叉发布,我深表歉意,因为这也存在于 Unix 和 Linux Stack Exchange 中。我需要为此找到答案。

我们的虚拟机 运行 在 VMWare 上。我不确定版本,但我想说它是 ESX 6(或 vSphere 6)。我支持和管理的客人都是CentOS 7

今天,我浏览并扩展了物理卷和逻辑卷以使用最近添加的磁盘 space。物理分区之前已使用 fdisk 扩展,我只是没有完成调整 LVM 大小的步骤。分配和调整大小都没有问题。然后我重新启动了 VM 以确保所做的更改没有发生错误。

这是我的问题所在。重新启动后,我无法再通过 ssh 进入虚拟机。我可以通过 vSphere 客户端访问虚拟机。 VM 的状态看起来不错。它处于 运行ning 状态,我可以看到正在使用的所有 IP 地址(我们 运行 几个 docker 容器所以显示了一些 IP 地址),有 CPU和内存使用情况。但是,似乎 none 的服务启动了,例如 ssh,docker(因为我们在容器中部署了多个 Web 应用程序,但我无法访问 Web 应用程序。

重启后,我尝试通过 ssh 进入虚拟机,但连接超时。因此,我从 vSphere 客户端打开了一个远程控制台,并尝试使用两个不同的管理员用户登录。两者都不起作用,我 return 似乎在 30 秒后出现登录提示。我已经重新启动 VM 尝试不同的选项,例如使用救援内核,进入 grub 并尝试各种设置,例如 root,linux 内核等。每次 VM 启动并加载到登录提示时,这就是它。

我假设,如果出现错误,我会看到并被带到 emergency/crash shell,但没有这样的事情。从各方面来看,VM 似乎已正确启动。

在我们的 vCenter 上,我只有最少的权限。所以我的问题是:

  1. 有什么方法可以绕过登录,仅从控制台登录,以便能够查看启动记录?我假设不会,因为那会带来巨大的安全风险。
  2. 有没有办法看看客人有没有向主人报告什么?同样,我假设有,但我无权查看输出。
  3. 没有办法登录guest,有什么办法可以获取guest的开机记录?我假设没有
  4. 我有一个已安装的 ISO,但我无法更改设置以强制执行 BIOS 安装,所以有没有办法使用 grub 命令行来伪造 VM,使其没有安装 OS?我想这样做是为了修复安装、引导记录等

我能够弄清楚如何进入恢复提示并确定问题。

我重新启动了 VM,在 grub 菜单中,我只是按“c”进入控制台。然后我将一个 ISO 附加到虚拟 CDROM 并退出 grub 命令行。这允许虚拟机从 ISO 启动,允许我进入恢复模式。

然后我能够查看消息日志,我看到我在哪里调整了 fs 的大小并进行了 pv 和 lv 检查,然后重新启动。日志显示系统启动,一直正常,但一旦达到运行状态,就会列出各种奇怪的项目,例如:

  • IPTABLE 下降
  • Docker 无法启动、拉取或以其他方式使用容器
  • 网络接口进入禁用模式
  • rsyslog 异常

不胜枚举。我还意识到了另一件事。我看到 firehol 启动了,我记得我已经安装了它,但从未完成配置,我以为我卸载了它。所以我通过 yum 通过并删除了 firefol 和 ipranges。我还清除了 /var/lib/docker 所有图像、容器和卷。然后我重新启动了 VM,我能够 ping 通 IP 地址,我现在可以通过 ssh 进入 VM,一切似乎都在工作。