====== How to use qemu with pxe? ====== you can refer the wiki page [[http://www.etherboot.org/wiki/qemu|official wiki]] for more details. This page contains my experiences. ===== qemu with tftp ===== **boot qemu PXE with tftp protocol**:\\ To make my life simple, I downloaded following files into directory ///home/myname/pxe/// - [[http://etherboot.org/gtest/gtest.gpxe]] - [[http://etherboot.org/gtest/bz2bzImage]] - [[http://etherboot.org/gtest/initrd.bz2]] Then I modified the //gtest.gpxe// to use //tftp// instead of //http//.\\ Edited contents of my //gtest.gpxe// are as follows #!gpxe kernel tftp://10.0.0.88//bz2bzImage root=100 initrd tftp://10.0.0.88//initrd.bz2 boot Then I used qemu with bootp to boot with tftp in following way. qemu -bootp tftp://10.0.0.88//gtest.gpxe -tftp /home/myname/pxe/ -fda gpxe.dsk The IP address used here //10.0.0.88// can be anything, It's not the IP address of my machine. As long as you use the same IP address in qemu command and in //gtest.gpxe// file, it should work. ==== How it works? ==== Here I am not running any //tftp// server on my machine. qemu will do most of the work for us. - Firstly, it will simulate the //dhcpd// server and return the 10.0.0.88 IP address to the booting pxe. - Next, It will simulate //tftp// server, with root directory at ///home/myname/pxe/// and provides files from that location to the pxe. - pxe assumes that it is talking to //tftp// server and its request for file tftp://10.0.0.88//gtest.gpxe will be mapped to ///home/myname/pxe/gtest.gpxe// file. ===== qemu with HTTP ===== For this test, all that you need to have is gpxe.dsk and following command should work without any problems. qemu -fda gpxe.dsk -net nic -net user -bootp http://etherboot.org/gtest/gtest.gpxe I also created the copy of gtest on my own web server for testing purpose, and it worked with following command. $ qemu -fda gpxe.dsk -net nic -net user -bootp http://10.0.0.2/gpxe/gtest.gpxe