I recently discovered that qemu-kvm
has a very promising -curses
option that, instead of starting an X window, will show a nice ncurses output from the guest suitable for managing a Linux guest from the command line (or, more satisfyingly, within a screen session, or even over ssh).
So I tried this out, and discovered that my Arch Linux guest goes into a "Graphics Mode" rendering this feature useless. From what I have been able to ascertain, the issue is that the guest kernel initializes a framebuffer to allow for higher than 80x60 character resolution (and pretty graphics). So I went on a hunt to find a way to prevent the guest kernel from starting the framebuffer. I have tried a variety of kernel parameters, nomodeset
, fb=false
, vga=0x0FF
, vga=ask
(and subsequently selecting a VGA
rather than a VESA
mode), to no avail: every time qemu-kvm -curses
reports being in a "Graphic Mode" on the guest (after the initial boot menus), and I am unable to interact with the guest from a command line terminal on the host.
Is there any easy way to keep the guest kernel in the same mode that it starts in (no framebuffer) without changing a kernel build parameter? If not, what kernel build options should I change to compile a kernel without framebuffer support? Is there a better way to get a VM login from a terminal on the host in pure text mode (suitable to run in a screen session on the host, for example) without resorting to running sshd on the guest?