Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
wiki:qemupxe [2009/05/22 17:06]
less1 created
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**:\\ 
 +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//pxefile -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>​
 +

QR Code
QR Code wiki:qemupxe (generated for current page)