Getting KVM to run on your machine
Contents
Prerequisites
You will need (see download section):
kvm-release.tar.gz
- A VT capable Intel processor, or an SVM capable AMD processor
- qemu prerequisites:
zlib libraries and headers
SDL libraries and headers
alsa libraries and headers (optional alsa support: disabled by default but can be enabled with --enable-alsa)
gnutls libraries and headers (optional VNC TLS support: enabled by default but can be disabled with --disable-vnc-tls)
- kernel headers (on Fedora, the kernel-devel package)
On a debian etch system you can install the prerequisites with:
apt-get install gcc libsdl1.2-dev zlib1g-dev libasound2-dev linux-kernel-headers pkg-config libgnutls-dev
Note: When building from git, you also need gawk.
Please report problems (and successes) to the mailing list.
Unpacking and configuring kvm components
You may wish to take a look at the Kernel-optimizations page. There exists a Upload new attachment "kvm-26-alt-grab.diff.gz" which will change the SDL keygrab combination from ctrl-alt to ctrl-alt-shift. It was written primarily to deal with the heavy use of ctrl-alt-delete in NT-based VMs.
If you are using a patched kernel (e.g. a recent -mm kernel or the kvm git tree), configure the kernel normally, boot into it, and:
tar xzf kvm-release.tar.gz cd kvm-release ./configure --prefix=/usr/local/kvm --with-patched-kernel make sudo make install sudo /sbin/modprobe kvm-intel # or: sudo /sbin/modprobe kvm-amd
If you're not running a patched kernel:
tar xzf kvm-release.tar.gz cd kvm-release ./configure --prefix=/usr/local/kvm make sudo make install sudo /sbin/modprobe kvm-intel # or: sudo /sbin/modprobe kvm-amd
Creating a disk image for the guest
/usr/local/kvm/bin/qemu-img create -f qcow vdisk.img 10G
Installing a guest operating system
sudo /usr/local/kvm/bin/qemu-system-x86_64 -hda vdisk.img -cdrom /path/to/boot-media.iso \ -boot d -m 384
(kvm doesn't make a distinction between i386 and x86_64 so even in i386 you should use qemu-system-x86_64)
If you're installing Windows, forcing your emulated machine to not have ACPI support by using -no-acpi could result in much faster installation and performance while running. See Windows ACPI Workaround for details.
If you have less than 1GB of memory don't use the -m 384 flag (which allocates 384 MB of RAM for the guest). For computers with 512MB of RAM it's safe to use -m 192, or even -m 128 (the default)
Running the newly-installed guest
sudo /usr/local/kvm/bin/qemu-system-x86_64 vdisk.img -m 384
or a slightly more complicated example, where it is assumed that bridged networking is available on tap0; see Kernel-optimizations for some setup hints:
/usr/local/kvm/bin/qemu-system-x86_64 -hda xp-curr.img -m 512 -soundhw es1370 -no-acpi -snapshot -localtime -boot c -usb -usbdevice tablet -net nic,vlan=0,macaddr=00:00:10:52:37:48 -net tap,vlan=0,ifname=tap0,script=no
(kvm doesn't make a distinction between i386 and x86_64 so even in i386 you should use qemu-system-x86_64)
If you're on Debian Etch, substitute kvm for qemu-system-x86_64 (thanks to fromport, soren and mael_). See also the entries under the label "Ubuntu" on the HOWTO page. qemu-system-x86_64`