Libvirt: virsh console - no response

Issue

  • I have Ubuntu 16 as the host running Ubuntu 14 as a guest (kvm).
  • I installed the VM using virt-install
  • All settings and configuration seems fine

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

and nothing.... the cursor doesn't blink... typing doesn't do anything..... the VM is not responding.

Help!


Solution 1:

Just managed to get it to work:

Suppose your virtual domain is myGuest, your preferred editor is vi, and your guest is installed with grub2and uses systemd. If the last assumption is not true, you might have a look at Working with the serial console.

First, install libguestfs-toolson the host:sudo apt install libguestfs-tools. You will need this when working with headless guests.

Second, shut down your guest: virsh shutdown myGuest.

Next, mount the virtual disk: guestmount -g myGuest -i /mnt (or use any other existing directory as mountpoint). Now in /mnt you should be able to see the filesystem of the guest.

With grub2and systemd, you only have to modify the grub configuration: vi /mnt/etc/default/grub, and modify like

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"

As you will have to run update-grubon the guest, for the first start you have to also modify /mnt/boot/grub/grub.cfg. Find the default boot menu item and append the console information to the linuxentry to look similar to

linux   /boot/vmlinuz-4.4.0-75-generic root=UUID=76f3e237-d791-4e9d-8ad7-fe5c9165ae55 ro console=ttyS0,19200 earlyprint=serial,ttyS0,19200

Maybe you need root privileges to mount and edit the files.

Now restart the guest and start the virtual console:

virsh start myGuest && virsh console myGuest

You should see the kernel log and then a login prompt. After logging in, don't forget to run sudo update-grub.