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,
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?