Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
wiki:qemupxe [2009/05/22 17:08] less1 |
wiki:qemupxe [2009/05/23 08:10] (current) less1 |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== How to use qemu with pxe? ====== | ====== How to use qemu with pxe? ====== | ||
| - | you can refer the wiki page [[http://www.etherboot.org/wiki/doku.php|official wiki]] for more details. | + | you can refer the wiki page [[http://www.etherboot.org/wiki/qemu|official wiki]] for more details. |
| This page contains my experiences. | This page contains my experiences. | ||
| ===== qemu with tftp ===== | ===== qemu with tftp ===== | ||
| - | **boot qemu PXE with tftp protocol**: | + | **boot qemu PXE with tftp protocol**:\\ |
| - | I have my files stored in location ///home/pxe/gtest.gpxe// | + | 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 | ||
| <code> | <code> | ||
| - | qemu -bootp tftp://10.0.2.2//gtest.gpxe -tftp /path/to/pxedir -fda gpxe.pdsk | + | #!gpxe |
| + | kernel tftp://10.0.0.88//bz2bzImage root=100 | ||
| + | initrd tftp://10.0.0.88//initrd.bz2 | ||
| + | boot | ||
| </code> | </code> | ||
| + | Then I used qemu with bootp to boot with tftp in following way. | ||
| + | <code> | ||
| + | qemu -bootp tftp://10.0.0.88//gtest.gpxe -tftp /home/myname/pxe/ -fda gpxe.dsk | ||
| + | </code> | ||
| + | |||
| + | 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 <code>tftp://10.0.0.88//gtest.gpxe</code> 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. | ||
| + | <code> | ||
| + | qemu -fda gpxe.dsk -net nic -net user -bootp http://etherboot.org/gtest/gtest.gpxe | ||
| + | </code> | ||
| + | |||
| + | I also created the copy of gtest on my own web server for testing purpose, and it worked with following command. | ||
| + | <code> | ||
| + | $ qemu -fda gpxe.dsk -net nic -net user -bootp http://10.0.0.2/gpxe/gtest.gpxe | ||
| + | </code> | ||