J'essaie d'exécuter un serveur Ubuntu en tant que machine virtuelle à l'aide de Qemu-KVM avec toutes les sorties imprimées sur le terminal. Je l'ai fait il y a plusieurs années en utilisant l'option -curses, j'ai essayé à nouveau et échoué à cause du mode graphique:
# create guestVM
# installing OS using recommended settings, but no LVM
Sudo apt-get install qemu-system-x86 qemu-utils
qemu-img create guestVM.img 35G
qemu-system-i386 -enable-kvm -hda guestVM.img \
-cdrom ubuntu-14.04.1-server-i386.iso -boot d -m 1024
# run guestVM with graphics
qemu-system-i386 -enable-kvm -hda guestVM.img -m 1024
# disable graphics module based on http://blog.zorinaq.com/?e=7
# and https://bugs.launchpad.net/ubuntu/+source/linux-ec2/+bug/569394
echo install vga16fb /bin/true >/etc/modprobe.d/graphics-disabled.conf
# change grub into text mode based on http://askubuntu.com/questions/16371/
Sudo nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="text" # edited
GRUB_TERMINAL=console # uncommented
Sudo update-grub
Si j'exécute maintenant ma machine virtuelle invitée, je peux y accéder à l'aide de SSH afin qu'elle soit chargée avec succès. Cependant, le terminal reste bloqué sur le mode graphique après je vois les options grub, donc je pense que c'est quelque chose avec Ubuntu. Des idées?
# running the guestVM with ssh
qemu-system-i386 -enable-kvm -curses -hda guestVM.img -m 1024 \
-Net User,hostfwd=tcp::10022-:22 -net nic
# check it its running with... (it is)
ssh guestuser@localhost -p10022
Le module sous-jacent à désactiver est fbcon (99 est juste un nombre arbitrairement grand qui est supérieur au nombre de périphériques framebuffer sur le système, généralement 1-2).
# edit /etc/modprobe.d/blacklist-framebuffer.conf
+ blacklist vga16fb
# edit /etc/default/grub
- GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
+ GRUB_CMDLINE_LINUX_DEFAULT="fbcon=map:99 text"
+ GRUB_TERMINAL=console
Sudo update-grub
Vous pouvez utiliser -curses -k lang pour un meilleur support du clavier.