|
PXE and gPXE Netbooting This is a page of gradually-accumulating PXE boot notes and stuff related to my explorations with the Preboot Execution Environment - I'm only just getting to grips with the PXE/GRUB environment so will be adding stuff to this page as time progresses. Check out TFTPLaunch - my freeware Auto-Configurator/Launcher for Ph. Jounin's TFTPD32.EXE server. This may be used to create "turnkey" (auto-starting) TFTPD server media such as USB sticks or CDROM. Tutorial - Chainbooting PXE, gPXE and Tinycore Linux After much time spent studying various approaches - especially this one which I liked although the exact method didn't work for me - I finally managed to successfully create a PXE->gPXE chainboot which could be used to boot something useful. In this case it was TinyCore Linux . Why do this? Well, gPXE is far more powerful than the standard PXE network boot which is available from the BIOS boot on most PCs. It has the ability to "chain-load" (remote execute) using a wider range of network protocols include AoE, iSCSI and HTTP. The latter interested me as it offered a potential use for MicroApache. The advantage of HTTP over TFTP which is usually used for PXE transfers is that it is far more scaleable and can offer much faster rates of data-transfer. I successfully managed to get gPXE to chainload Tinycore Linux via PXE, GRUB gPXE and MicroApache. This can be bundled on optical media such as DVD or CDROM PXE Problems and Issues A catalogue of various problems and issues encountered whilst experimenting with PXE booting and TFTP Booting Windows 98 over PXE I achieved some degree of success in getting a working QEMU Windows 98 boot disk image to work over PXE/GRUB for DOS using tftpd32. From GRUB I used the following configuration, an image size of no more than 500mb and a PC with more than 500mb of RAM installed...
Hardware Problems Hardware differences will almost certainly mean that when Windows loads it will detect new hardware and try to install. I chose "Next"->Search for the best driver (recommended)->Next->Browse to hard drive location of setup files and set path->Next->(Accept suggestions)->Next. This requires either the Windows 98 CDROM installed or copied to the image hard drive, or specify c:\win98 as the search folder. The big problem is that the hard drive image is mapped into RAM and thus any changes made are lost if you reboot the system. "Do you want to restart your computer now?" -> Hold down the SHIFT key whilst clicking OK (I had problems with Windows "hanging") Windows may report a problem with the master-boot record possibly being infected by a virus and drives may operate in "compatibility mode" Shutdown->Restart in DOS mode also hangs A major problem is that although it can be gotten to boot, the resulting Windows session will normally need to install a plethora of devices. Any kind of Windows restart or reboot causes the transient memory-mapped session to be lost. Investigations continue... Oracle VirtualBox I had problems with Oracle VirtualBox not booting to tftpd32. It doesn't pick up on tftpd32 as a DNS server (MSVPC2007 does) - it also requests an invalid file...
Useful Tools for Win32 PXE Work
Patching Binary Files Such as NTLDR, SETUPLDR.EXE etc. Looking at some of the excellent PXE guides (such as this one) I note that quite a few require using a HEX editor to "patch" (replace strings) within binary executable code. This is tedious and error-prone using debug or a binary hex editor. I wrote BinPatch to do an automatic find/replace on any binary (or text) file.
This page and all software, unless otherwise stated, is
Copyright (c) M Shaw
|