[ipxe-devel] gPXE or iPXE on USB

Yadin Flammer yxf4 at psu.edu
Wed Jun 19 19:03:12 UTC 2013


Thanks for the reply Robin, the answer was buried in your one 
statement.  Ubuntu apparently doesn't actually write the output of dd to 
the device until you issue an eject command from command line.  If you 
just pull the drive, no changes are written to it, unlike if you're 
using it normally dragging and dropping files. Important footnote for 
the inexperienced, and very odd (if not deficient) compared to other 
platforms.

Anyway, now that I can actually get the .usb cloned to USB, I face a 
different set of issues.

Some Mac systems simply will not see the drive as bootable, others 
will.  I suspect this has to do with the vintage of the firmware and the 
type of file system that's being written to the drive.  For those that 
will boot from it, here's what fails:

With gPXE, it comes up saying no more network devices, then non-system 
disk press any key to reboot.  For some reason while booting gPXE from 
the ISO on CD works great, there seems to be no (or missing) network 
drivers from the .usb image (it is after all half the size of the ISO).  
But since that's not supported any more, let's move on (just figured I'd 
try this and toss it out there).

With iPXE, it comes up fine (as from CD as well) to the point I choose a 
boot image from the WDS server.  After you choose an image, it should 
start the Windows boot process, and from any normally booted PXE system 
(or from gPXE on CD) it does so just fine.  iPXE does not work for some 
reason.  It can't actually start transferring data and therefore start 
the boot process from the look of it, because it stops on BOOT.SDI and 
the progress bar never moves.  So from all experience so far, iPXE has a 
fault in some odd way where it can talk to the WDS server to present the 
boot image list, but then it can't actually start booting for some 
reason, regardless of what media you've booted iPXE from (CD or USB).  I 
have also verified this on a Dell, so it's not some Mac only behavior, 
iPXE just doesn't work for some reason where gPXE did (from CD at least, 
again on any Mac or Dell).

Thoughts?  I'm fine with some trick to make iPXE actually boot a WDS 
image if that's the supported product, or if there is a way to make gPXE 
work from USB the same as from CD that's fine by me as well.

Yadin


On 6/19/2013 5:58 AM, Robin Smidsrød wrote:
> On 19.06.2013 02:23, Yadin Flammer wrote:
>> No changes to code, I'm no programer.
>>
>> I have done:
>> sudo dd if='/path/to/file/ipxe.usb' of=/dev/sdc
>> When that failed I cd to the directory of the file and do:
>> sudo dd if=ipxe.usb of=/dev/sdc
>>
>> Previously as mentioned I had been doing of=/dev/sdc1 but was told that
>> was wrong.
>>
>> In all cases, there are no errors, it displays bytes in and out and
>> transfer rate acting like it did something, but in no case does it
>> actually do anything as the usb flash drive is unaltered every time.
>>
>> I obtained the device path with:
>> sudo fdisk -l
>>
>> As mentioned I have also tried to dd the gpxe.usb file downloaded from
>> the old site with the same results.
>>
>> Ubuntu 12.0.4 LTS fully updated as of today.
> Okay, I'll show you what you can try to see if data is actually being
> written to the disk. See this process:
>
> $ dd if=/dev/urandom of=/tmp/dummy_disk bs=1MB count=32
> 32+0 records in
> 32+0 records out
> 32000000 bytes (32 MB) copied, 2.79843 s, 11.4 MB/s
>
> $ ls -l /tmp/dummy_disk
> -rw-rw-r-- 1 robin robin 32000000 Jun 19 11:45 /tmp/dummy_disk
>
> $ dd if=ipxe.usb of=/tmp/dummy_disk
> 736+0 records in
> 736+0 records out
> 376832 bytes (377 kB) copied, 0.00371963 s, 101 MB/s
>
> $ dd if=/tmp/dummy_disk of=/tmp/extracted_ipxe.usb count=$(wc -c
> ipxe.usb | cut -d ' ' -f 1)
> 736+0 records in
> 736+0 records out
> 376832 bytes (377 kB) copied, 0.00308136 s, 122 MB/s
>
> $ md5sum ipxe.usb /tmp/extracted_ipxe.usb
> a4bb19f3b0346e9a36a3eec882fd5f0f  ipxe.usb
> a4bb19f3b0346e9a36a3eec882fd5f0f  /tmp/extracted_ipxe.usb
>
> I've used the path /tmp/dummy_disk instead of /dev/sdc, but you should
> be able to use /dev/sdc instead. Can you verify that the md5sum of the
> extracted data is the same as for ipxe.usb? If so, your USB stick is
> working, but the computer you're trying to boot might have some issues
> booting from it. I say again. The USB stick will NOT contain any kind of
> valid filesystem you can verify, so don't even try. Using md5sum as
> above is the only way to verify that the iPXE USB image was written to
> the USB stick.
>
> If the md5sum doesn't match you might have a defective or
> write-protected USB stick.
>
> I'd also suggest you use eject /dev/sdc before you pull the USB stick
> out, to ensure data is flushed to the drive properly.
>
> -- Robin

-- 
-------------------------------------------------------------------
   Yadin Flammer - Systems Administrator
   College of Arts&  Architecture, Penn State University
   228 Borland Building              Office Phone: 814-865-0990
   University Park, PA 16802         Dept. Phone:  814-865-1571
   Email: yxf4 at psu.edu               Dept. Fax:    814-863-6227





More information about the ipxe-devel mailing list