Install a KVM guest over PXE
----------------------------

Last edited: $Date: 2010/11/28 14:27:24 $


> Installing a KVM guest over PXE is very easy.

KVM is the hypervisor that is build into the Linux kernel. It is a
great method to run virtual machines on your Linux box.

KVM makes it possible to run multiple virtual machines running
unmodified Linux, OpenBSD, Free-BSD, or Windows or even Debian
GNU/kFreeBSD images. Each virtual machine has private virtualized
hardware: a network card, disk, graphics adapter, etc.  
I am a great fan of KVM.

A great start to learn more about KVM is 
http://www.linux-kvm.org/page/Main_Page

## Install over PXE

A "normal" way of installing an operating system on a KVM guest is to
download the ISO image of the installation CD or DVD and point your
kvm to it. However sometimes you may want to install your guest over
PXE.

### Install a pxe-server

If you don't have a PXE-server running, you first must install one.
Yes, we do that on a KVM guest too.

It is not very difficult to create a PXE-server with Debian and KVM.
See this great howto: http://www.debian-administration.org/articles/478

### Boot kvm with pxe-rom

Once you have a PXE-server running, it is easy to install your KVM
guests over PXE. The trick is to add the argument "-option-rom
/usr/share/kvm/pxe-rtl8139.bin" to your kvm command line.

That is all! See this command line for example:

    kvm  \ 
    -vnc 192.168.1.2:0 \ 
    -hda guest.img \ 
    -boot n \ 
    -option-rom /usr/share/kvm/pxe-rtl8139.bin  \ 
    -net nic,model=rtl8139,vlan=0,macaddr=00:16:5e:25:05:17 \ 
    -net tap,ifname=tap1,script=/etc/qemu-ifup-br0
    

In this example:

  * __192.168.1.xxx__  
This is the local network, change according to your own local network

  * __-vnc 192.168.1.2:0__  
Make it possible to connect with vncviewer to this guest (run this on
your desktop: vncviewer 192.168.1.2:0)

  * __guest.img__  
The name of the image on which you want to install. Create this image
with: qemu-img create -f qcow2 guest.img 4G

  * __-net nic,model=rtl8139,vlan=0,macaddr=00:16:5e:25:05:17__  
Boot kvm guest with virtual RTL8139 network card with mac-address
00:16:5e:25:05:17

  * __-net tap,ifname=tap1,script=/etc/qemu-ifup-br0__  
Use the tun/tap-network system, with interface /dev/tap1 and the
standard bridge-scripting
`

$Id: kvmpxe.txt,v 1.3 2010/11/28 14:27:24 matto Exp $