Libvirt:virsh 控制台 - 无响应

ora*_*nge 9 kvm virtualization virtual-console console

问题

  • 我将 Ubuntu 16 作为主机运行 Ubuntu 14 作为来宾 (kvm)。
  • 我使用安装了虚拟机 virt-install
  • 所有设置和配置似乎都很好

# virsh list
Id Name State
-------------------
2 myVM running
# virsh console myVM
Connected to domain myVM
Escape character is ^]

什么都没有.... 光标不闪烁...打字不做任何事情..... VM 没有响应。

帮助!

rid*_*dgy 10

刚刚设法让它工作:

假设您的虚拟域是myGuest,您的首选编辑器是vi,并且您的来宾安装grub2并使用systemd. 如果最后一个假设不正确,您可以查看使用串行控制台

首先,libguestfs-tools在主机上安装:sudo apt install libguestfs-tools. 与无头客人一起工作时,您将需要此功能。

其次,关闭您的访客:virsh shutdown myGuest.

接下来,挂载虚拟磁盘:(guestmount -g myGuest -i /mnt或使用任何其他现有目录作为挂载点)。现在,/mnt您应该能够看到来宾的文件系统。

使用grub2and systemd,你只需要修改 grub 配置:vi /mnt/etc/default/grub,并修改像

GRUB_CMDLINE_LINUX='console=tty0 console=ttyS0,19200n8'
GRUB_TERMINAL=serial
GRUB_SERIAL_COMMAND="serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1"
Run Code Online (Sandbox Code Playgroud)

由于您必须update-grub在来宾上运行,因此第一次启动时您还必须修改/mnt/boot/grub/grub.cfg. 找到默认启动菜单项并将控制台信息附加到linux条目中,看起来类似于

linux   /boot/vmlinuz-4.4.0-75-generic root=UUID=76f3e237-d791-4e9d-8ad7-fe5c9165ae55 ro console=ttyS0,19200 earlyprint=serial,ttyS0,19200
Run Code Online (Sandbox Code Playgroud)

也许您需要 root 权限来装载和编辑文件。

现在重新启动来宾并启动虚拟控制台:

virsh start myGuest && virsh console myGuest
Run Code Online (Sandbox Code Playgroud)

您应该会看到内核日志,然后是登录提示。登录后,不要忘记运行sudo update-grub.

  • 在我使用的 `guestmount` 版本 (1.36.13) 中,选项似乎不同(没有 `-g` - 而是 `-d` 或 `--domain`):`guestmount -d myGuest -i /mnt` (3认同)