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 grub2
and uses systemd
. If the last assumption is not true, you might have a look at Working with the serial console.
First, install libguestfs-tools
on 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 grub2
and 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-grub
on 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 linux
entry 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
.