Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
appnotes:gpxeonvmware [2010/04/12 20:09]
rulerof Spelling error
appnotes:gpxeonvmware [2010/06/04 01:46] (current)
bradskins
Line 1: Line 1:
 ===== Adding a gPXE ROM image directly into a VMware virtual machine ===== ===== Adding a gPXE ROM image directly into a VMware virtual machine =====
  
-    * This guide covers ​VMware ​virtual machines and should be nearly identical for all VMware hypervisor prodcuts. ​ [[wp>​VMware_Workstation|VMware ​Workstation]] is covered specifically by this guide, but you can adapt it easily for VMware ​Server or ESX. +    * This guide covers ​VMWare ​virtual machines and should be nearly identical for all VMware hypervisor prodcuts. ​ [[wp>​VMware_Workstation|VMWare ​Workstation]] is covered specifically by this guide, but you can adapt it easily for VMWare ​Server or ESX. 
-    * The capability to add a gPXE ROM directly to a VM is not limited to VMware.  You can find out more on the [[romburning/​|ROM burning HowTo]], or jump straight to the guide for [[romburning/​vbox|Sun Virtualbox]] or [[romburning/​qemu|QEMU]].+    * The capability to add a gPXE ROM directly to a VM is not limited to VMWare.  You can find out more on the [[romburning/​|ROM burning HowTo]], or jump straight to the guide for [[romburning/​vbox|Sun Virtualbox]] or [[romburning/​qemu|QEMU]].
   
  
Line 11: Line 11:
 Not only is using a ROM one of the fastest methods of loading and booting from gPXE on //either// a physical or virtual machine, adding a ROM in this fashion __adds gPXE directly to your VM's BIOS boot order__, and when compared to the [[pxechaining/​|PXE chainloading]],​ [[removable/​|CD,​ floppy, or USB based]] methods it is quite possibly the most secure and concise deployment method available right now. Not only is using a ROM one of the fastest methods of loading and booting from gPXE on //either// a physical or virtual machine, adding a ROM in this fashion __adds gPXE directly to your VM's BIOS boot order__, and when compared to the [[pxechaining/​|PXE chainloading]],​ [[removable/​|CD,​ floppy, or USB based]] methods it is quite possibly the most secure and concise deployment method available right now.
  
-{{ :​appnotes:​vmware-gpxe-bootmenu.jpg |gPXE as a boot option in VMware Workstation}}+{{ :​appnotes:​vmware-gpxe-bios.jpg |gPXE as a boot option in VMware Workstation}}
  
 ===== Implementation ===== ===== Implementation =====
Line 31: Line 31:
  * On the image creation page, set the options to:  * On the image creation page, set the options to:
  - Output format: **ROM binary (flashable) image (.rom)**  - Output format: **ROM binary (flashable) image (.rom)**
- - NIC type: **e1000_84250**+ - NIC type: **e1000_82540**
  - PCI Vendor Code: **8086**  - PCI Vendor Code: **8086**
  - PCI Device Code: **100f**  - PCI Device Code: **100f**
Line 37: Line 37:
 <​code>​gpxe-1.0.0+-8086100f.rom</​code>​ <​code>​gpxe-1.0.0+-8086100f.rom</​code>​
  * Now, let's skip to [[#​locating_the_vm_s_.vmx_configuration_file|locating your VM's configuration file.]] \\ \\  * Now, let's skip to [[#​locating_the_vm_s_.vmx_configuration_file|locating your VM's configuration file.]] \\ \\
- 
- 
 ==== > Option 2 (Advanced): Compile the binary ROM from source ==== ==== > Option 2 (Advanced): Compile the binary ROM from source ====
 ---------- ----------
Line 51: Line 49:
 user@user-ubuntu:​~/​gpxe-1.0.0+/​gpxe/​src$ user@user-ubuntu:​~/​gpxe-1.0.0+/​gpxe/​src$
 </​code>​ </​code>​
- * Now, copy the output file, **bin/​8086100f.bin**, to the directory your VM resides in+ * Now, copy the output file, **bin/​8086100f.rom**, to the directory your VM resides in
 <​code>​ <​code>​
 user@user-ubuntu:/​home/​user/​gpxe-1.0.0+/​gpxe/​src#​ cp bin/​8086100f.rom /​home/​user/​Virtual\ Machines/​WinXP/​ user@user-ubuntu:/​home/​user/​gpxe-1.0.0+/​gpxe/​src#​ cp bin/​8086100f.rom /​home/​user/​Virtual\ Machines/​WinXP/​
Line 77: Line 75:
  * You should now have your ROM image, which as per the example pictured here is **gpxe-1.0.0+-8086100f.rom**,​ in the same folder as the .vmx file.\\  * You should now have your ROM image, which as per the example pictured here is **gpxe-1.0.0+-8086100f.rom**,​ in the same folder as the .vmx file.\\
 {{:​appnotes:​rom-copied.jpg}}\\ {{:​appnotes:​rom-copied.jpg}}\\
- 
 ===== Editing the .vmx file ===== ===== Editing the .vmx file =====
 Now we need to open the .vmx file in your text editor of choice. ​ Unfortunately for us, .vmx files are set to open with VMware Workstation by default, so, if you're using Windows, you need to right click the .vmx file and click "Open With..."​.\\ ​ If a sub-menu comes up from clicking "Open With", click "​Choose Default Program..."​\\ ​ Now we need to open the .vmx file in your text editor of choice. ​ Unfortunately for us, .vmx files are set to open with VMware Workstation by default, so, if you're using Windows, you need to right click the .vmx file and click "Open With..."​.\\ ​ If a sub-menu comes up from clicking "Open With", click "​Choose Default Program..."​\\ ​
Line 88: Line 85:
  * The second line adds the gPXE ROM to the Virtual NIC's ROM:  * The second line adds the gPXE ROM to the Virtual NIC's ROM:
 <​code>​e1000bios.filename = "​gpxe-1.0.0+-8086100f.rom"</​code>​ <​code>​e1000bios.filename = "​gpxe-1.0.0+-8086100f.rom"</​code>​
-__Note__: The text "​**gpxe-1.0.0+-8086100f.rom**"​ corresponds to the file that you downloaded from ROM-o-matic and then copied to the VM's folder in the above steps. ​ Your ROM's filename will likely be different.\\ \\+__Note__: The text "​**gpxe-1.0.0+-8086100f.rom**"​ corresponds to the file that you downloaded from ROM-o-matic and then copied to the VM's folder in the above steps. ​ Your ROM's filename will likely be //​slightly// ​different.\\ \\
 {{:​appnotes:​vmx-file-modified.jpg|Example of edited .vmx file}}\\ {{:​appnotes:​vmx-file-modified.jpg|Example of edited .vmx file}}\\
  * Once you've finished adding those lines to your .vmx file, save it and close it. \\  * Once you've finished adding those lines to your .vmx file, save it and close it. \\
Line 103: Line 100:
  
 Most modern operating systems (Windows Vista/​Server 2008 and newer and more recent versions of various Linux distros) include drivers for the Intel E1000 series NICs by default. ​ However, if your guest OS is 32 bit Windows XP or Windows Server 2003, you may need to download additional driver files from Intel'​s web site [[http://​www.intel.com/​support/​network/​sb/​cs-006120.htm|here]]. Most modern operating systems (Windows Vista/​Server 2008 and newer and more recent versions of various Linux distros) include drivers for the Intel E1000 series NICs by default. ​ However, if your guest OS is 32 bit Windows XP or Windows Server 2003, you may need to download additional driver files from Intel'​s web site [[http://​www.intel.com/​support/​network/​sb/​cs-006120.htm|here]].
 +
 +==== Considerations ====
 +
 +The downside to this method when compared with PXE chainloading is that it //does// require you to change the NIC in your VM.  If you have any application or service running in that VM where a NIC "​swap"​ would be a problem, you may want to consider a less disruptive method of introducing gPXE into your environment. ​ It is worth pointing out that, considering the poor native driver support offered to PCNET32 or VMXNET NICs at this time, a PXE chainload that utilizes the UNDI driver is the best bet in those situations, but overhauling your DHCP/​ProxyDHCP deployment might likely be a more time consuming task than reinstalling a VM's NIC.
 +
 +Performing this procedure may cause VMware to generate a new MAC address for the virtual NIC.  You can permanently assign a MAC address either via the Workstation GUI (right click your VM, click "​Settings"​ and select your network adapter) or by changing lines in the .vmx configuration file.
 +
  
 ===== Notes for Advanced users ===== ===== Notes for Advanced users =====
Line 110: Line 114:
  * This method is particularly good when you'd like to make use of embedded gPXE scripts. ​ Of course, you could accomplish the same thing with an ISO or floppy image attached to your VM, but ROM files are nice as they aren't quite so ambiguous.  * This method is particularly good when you'd like to make use of embedded gPXE scripts. ​ Of course, you could accomplish the same thing with an ISO or floppy image attached to your VM, but ROM files are nice as they aren't quite so ambiguous.
  * To this author'​s knowledge, aside from watching while booting the VM or editing the .vmx file, there'​s no way to determine from the Workstation (or Infrastructure Manager) UI that a modified NIC ROM has been applied to a VM.  * To this author'​s knowledge, aside from watching while booting the VM or editing the .vmx file, there'​s no way to determine from the Workstation (or Infrastructure Manager) UI that a modified NIC ROM has been applied to a VM.
 + * Lines in the .vmx file can be commented out with a semicolon (;) and the next setting begins on the next non-blank new line.  If you'd like to switch back and forth between settings introduced through manual .vmx file editing, like if you had several different ROM images each with a different embedded script, you can change between them by commenting in and out different settings.

Navigation

* [[:start|Home]] * [[:about|About our Project]] * [[:download|Download]] * [[:screenshots|Screenshots]] * Documentation * [[:howtos|HowTo Guides]] * [[:appnotes|Application Notes]] * [[:faq:|FAQs]] * [[:doc|General Doc]] * [[:talks|Videos, Talks, and Papers]] * [[:hardwareissues|Hardware Issues]] * [[:mailinglists|Mailing lists]] * [[http://support.etherboot.org/|Bugtracker]] * [[:contributing|Contributing]] * [[:editing_permission|Wiki Edit Permission]] * [[:wiki:syntax|Wiki Syntax]] * [[:contact|Contact]] * [[:relatedlinks|Related Links]] * [[:commerciallinks|Commercial Links]] * [[:acknowledgements|Acknowledgements]] * [[:logos|Logo Art]]

QR Code
QR Code appnotes:gpxeonvmware (generated for current page)