====== QEMU ======
A few notes on best practices regarding [http://qemu.org|qemu] or the (still)
standalone [http://linux-kvm.org|kvm].
===== Specify The CPU Model To Emulate =====
The default CPU emulated by qemu is meant to be as compatible as possible.
This has the drawback that certain, possibly useable features of the host
system's CPU will not be available for the guest to use. So when there is no
need to migrate between host CPUs of different type, one can enable all
possible features by use of the ''-cpu'' parameter:
-cpu host
===== Emulate Mouse Input As Tablet =====
Especially useful for mouse-based OS, when emulating a USB tablet device as
mouse pointer, qemu doesn't need to grab mouse and keyboard for clicks to
work. In order to do so, add these parameters to the qemu commandline:
-usb -usbdevice tablet
This works out of the box at least with windows xp.
===== Using VirtIO Backends =====
Best performance for guest network and storage is reached using VirtIO for
both. **KVM only!**
The host system's kernel needs some options being set for VirtIO. Networking
support needs ''CONFIG_VHOST_NET'', storage support seems to do well with just
''CONFIG_VIRTIO''.
===== Windows Guests =====
As usual, Windows needs some drivers first. Best get the ISO
[[http://blog.famzah.net/2010/01/09/kvm-qemu-virtio-storage-and-network-drivers-for-32-bit64-bit-windows-7-windows-vista-windows-xp-and-windows-2000/|here]]
or the original ZIP files
[[http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers|here]].
Installing the VirtIO NIC driver is quite straight-forward, as that can be
done at any time as long as a VirtIO NIC is being enabled via qemu
commandline. Moving an existing installation to using VirtIO as the system
storage backend is not as trivial due to the henn-egg-problem of having to
boot Windows from a disk it has no driver for in order to install the later
one. The trick is to boot with a secondary (dummy) disk which uses VirtIO only
to install the driver for it, then switching the system storage backend
afterwards. Summing all up, boot the existing windows installation about like
that:
kvm -cdrom NetKVM-and-viostor.iso \
-drive file=/dev/mapper/lvg-windows,cache=none \
-drive file=/tmp/dummy,cache=none,if=virtio \
-net nic,model=virtio -net tap -boot c