我两个月前开始工作的公司有一个旧的虚拟机管理程序,运行着一些虚拟机。我登录到其中一台机器(当时我不知道它是虚拟机器)并更改了一些网络设置并重新启动了网络服务。从那一刻起,我无法再通过网络访问该机器,所以我认为我在配置上犯了错误。当我开始搜索物理服务器时,我发现它是一个虚拟机。
我确实可以通过 SSH 访问虚拟机,并且可以看到虚拟机仍在运行 ( virsh list
),但无法访问机器,virsh console machinename
因为它挂起Escape character is ^]
。
当然,我用谷歌搜索了这个错误,发现它与 ?? 有关。虚拟串口配置?和/或一些? grub 设置??,都在虚拟机上。这些解决方案都是基于这样的事实:我可以登录虚拟机,但我不能......
有没有办法通过虚拟机管理程序 SSH 连接访问虚拟机?
有关虚拟机管理程序的一些信息。不要责怪版本,因为该虚拟机管理程序(和虚拟机)很快就会被替换:
- 操作系统:CentOS 版本 6.4(最终版)
- 使用库:libvirt 0.10.2
- 使用的API:QEMU 0.10.2
- 运行管理程序:QEMU 0.12.1
的结果yum info qemu-kvm
Installed Packages
Name : qemu-kvm
Arch : x86_64
Epoch : 2
Version : 0.12.1.2
Release : 2.506.el6_10.7
我不知道这些信息是否足以帮助我,但我也不知道还需要哪些信息。如果缺少某些内容,请告知我们,提前感谢您的帮助!
答案1
例如,运行virsh console machinename
是连接到系统上的控制台,就像将串行电缆和哑终端连接到物理主机一样。如果您的虚拟机没有getty
侦听该控制台端口,那么您不应期望看到任何内容。
根据主机的配置,如果您将 console=ttyS0 添加到引导加载程序的内核参数(假设它是第一个串行控制台),它可能会自动检测虚拟控制台。
此外,如果您可以通过其他方式登录,则可以在虚拟机上手动启动它。systemctl start [email protected]
答案2
我无法以某种方式访问虚拟机,因为我在网络配置中犯了一个错误,并且virsh console machinename
没有按照我的问题中的解释工作。
经过很长时间的搜索,我找到了这个工具Virtual Machine Manager
(https://virt-manager.org/)。我将其安装在 Ubuntu 桌面计算机上,并且能够将该工具连接到虚拟机管理程序。该工具为实际运行的虚拟机提供了 ssh 接口。这样我就能够修复网络设置并配置serial interface
.
我想说,问题解决了