0

我为交叉发布道歉,因为这也存在于 Unix 和 Linux Stack Exchange 上。我需要为此找到答案。

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

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

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

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

我会假设,如果出现错误,我会看到并被带到紧急/崩溃外壳,但没有这样的事情。从所有外观来看,VM 似乎已正确启动。

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

  1. 有没有办法绕过登录,仅从控制台,能够查看引导记录?我认为不会,因为这将是一个巨大的安全风险。
  2. 无论如何,是否有任何东西从客人报告给主人?同样,我假设有,但我无权查看输出。
  3. 由于无法登录,有什么方法可以从客人那里获取引导记录?我假设没有
  4. 我已经安装了一个 ISO,但我无法更改设置以强制执行 BIOS 设置,所以有没有办法使用 grub 命令行来伪造虚拟机,使其没有安装操作系统?我想这样做是为了修复安装、引导记录等。
4

1 回答 1

0

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

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

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

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

而这样的例子不胜枚举。我也意识到了别的事情。我看到 firehol 启动了,我记得我已经安装了它,但从未完成配置它,我以为我卸载了它。所以我通过 yum 浏览并删除了 firefol 和 ipranges。我还清理了所有图像、容器和卷的 /var/lib/docker。然后我重新启动了虚拟机,我可以 ping ip 地址,我现在可以 ssh 进入虚拟机,一切似乎都在工作。

于 2020-05-14T17:39:03.693 回答