Jump to content











Photo
- - - - -

Load ISO with MEMDISK using HTTP not TFTP


  • Please log in to reply
27 replies to this topic

#1 ninjabilly

ninjabilly

    Newbie

  • Members
  • 13 posts
  •  
    United States

Posted 11 June 2010 - 05:18 AM

My setup was to boot WinPE, using memdisk to load the .iso of the winpe build, this worked flawlessly using tftp, but was pretty slow and took ages to load. I was browsing the inteweb when i came up upon this forum where is saw a post of someone using http to server the iso to memdisk. I hastily setup a webserver and setup the commands to direct memdisk to the iso on the web server, but to my disappointment it only gave me the error memdisk cannot locate the ramdisk file. Below i will post my setup and the current configs

The Tftp server, Webserver, and Samba server are hosted on a freenas box

The DHCP is my dd-wrt router with "dhcp-boot=pxelinux.0,,192.168.5.116" in the additional dnsmasq options.

Default config

DEFAULT menu.c32
TIMEOUT 300
ALLOWOPTIONS 0
PROMPT 0

MENU TITLE PXE Boot System

LABEL WinPE
MENU LABEL ^WinPE
KERNEL memdisk
APPEND iso initrd=http://192.168.5.116/images/winpe.iso

LABEL Parted_Magic
MENU LABEL ^Parted Magic
KERNEL memdisk
APPEND iso initrd=http://192.168.5.116/images/pmagic-4.10.iso

I checked the paths for the web-server and they are correct, the filenames are correct i just don't know whats wrong.
Posted Image

Posted Image

Posted Image

if i need to give you more info please tell me

#2 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1682 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 11 June 2010 - 05:41 AM

You need to use gpxelinux.0 for HTTP. It's found in Syslinux' gpxe/ directory. gpxelinux.0 is:
  • gPXE (the undionly.kkpxe build)
  • Embedded PXELINUX (pxelinux.0)

So when you boot gpxelinux.0, you're actually booting gPXE -> PXELINUX. PXELINUX then takes advantage of gPXE-provided protocols, such as HTTP. Good luck.

#3 ninjabilly

ninjabilly

    Newbie

  • Members
  • 13 posts
  •  
    United States

Posted 11 June 2010 - 06:31 AM

let me get this right all i have to do is replace pxelinux.0 with gpxelinux.0 in the tftp server and change the dhcp settings to this "dhcp-boot=gpxelinux.0,,192.168.5.116" and everything should work.

Ill wait for a reply before i change anything.

#4 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1682 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 11 June 2010 - 06:37 AM

Well, that's how you start, yes. Let's find out what new challenges you encounter, if any. It's 02:38 for me, so waiting on replies might take awhile unless others jump in.

#5 ninjabilly

ninjabilly

    Newbie

  • Members
  • 13 posts
  •  
    United States

Posted 11 June 2010 - 06:52 AM

Thanks Shao

I changed the setup as stated above but now i seem to run into another problem, after i select to boot WinPE it says loading memdisk then it does nothing after, it has been like this for 5 mins the tftp logs show that it did load memdisk. Could this be a problem with the http part or is it something else entirely.

#6 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1682 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 11 June 2010 - 06:56 AM

And what about the HTTP service logs, since your "initrds" are specified as supposed to be fetched via HTTP? Also, try dropping the old Syslinux syntax for something like:

What is the very last line printed on-screen?

#7 ninjabilly

ninjabilly

    Newbie

  • Members
  • 13 posts
  •  
    United States

Posted 11 June 2010 - 08:52 PM

This is the last message that appears

Posted Image

I will try a different webserver since the one i'm using does not post logs correctly, i will post my results if the error repeats with the new webserver.

***UPDATE***
I tried again using an alternative webserver but it still hangs after saying loading memdisk, In the new webserver it show that no connection is made from the system pxe booting, what do you think.

#8 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1682 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 18 June 2010 - 03:17 AM

***UPDATE***
I tried again using an alternative webserver but it still hangs after saying loading memdisk, In the new webserver it show that no connection is made from the system pxe booting, what do you think.

Didn't see your update, unfortunately.

Only thing I could guess is that a firewall might be interfering with the HTTP transfer. Turn off the TFTP service so that there's no chance for MEMDISK to be fetched by TFTP. Have a look in the HTTP service logs. Put the appropriate http://192.168.5.116/ before MEMDISK so that it's fetched via HTTP. Temporarily remove menu.c32 from the mix.

#9 ninjabilly

ninjabilly

    Newbie

  • Members
  • 13 posts
  •  
    United States

Posted 18 June 2010 - 05:24 AM

I tried you suggestions but this time it still did not load memdisk, this is pretty frustrating as http dose work when using the fetch=http://x.x.x.x/filename.whatever is used for example.

This would load.
LABEL Clonezilla
MENU LABEL ^Clonezilla
KERNEL vmlinuz
APPEND initrd=initrd.img boot=live union=aufs noswap noprompt ip=frommedia
fetch=http://192.168.5.116/filesystem.squashfs

But this won't
LABEL WinPE
MENU LABEL ^WinPE
KERNEL memdisk
APPEND iso initrd=http://192.168.5.116/images/winpe.iso

#10 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1682 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 18 June 2010 - 05:33 AM

fetch= is a Linux distribution-specific kernel command-line argument. It's not used at all until after Linux boots. Please don't confuse Linux' ability to fetch via HTTP with gpxelinux.0's ability to fetch via HTTP. The two are not related whatsoever. Linux uses a Linux NIC driver. gpxelinux.0 uses the UNDI NIC driver.

Please follow the suggestions and use the following:
LABEL WinPE

  KERNEL http://192.168.5.116/memdisk

  APPEND iso

  INITRD http://192.168.5.116/images/winpe.iso
Get Wireshark or tcpdump and see what's happening on the wire. See if there's an HTTP request at all. Where did you get gpxelinux.0 from? Is it the latest version? Did you try removing menu.c32? COMBOOT32 modules must match the Syslinux version. So remove it in case it's causing a problem.

#11 ninjabilly

ninjabilly

    Newbie

  • Members
  • 13 posts
  •  
    United States

Posted 19 June 2010 - 04:17 PM

Using Wireshark the tftp packets could be seen where gpxelinux.0 is loaded but that is it the last activity was an arp packet when i typed WinPE in the boot option, so in short there were no http packets.

The syslinux version I'm using is syslinux-4.00-pre49, i also removed menu.c32

#12 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1682 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 19 June 2010 - 05:54 PM

Well that's no good, but definitely tells us something. Please try gpxelinux.0 from Syslinux 3.86, instead.

#13 ninjabilly

ninjabilly

    Newbie

  • Members
  • 13 posts
  •  
    United States

Posted 19 June 2010 - 09:05 PM

Thanks a lot man it started to work with the older version of syslinux, the only problem i'm encountering is that the http speed is as slow as tftp. Can i add any options to speed the boot up.

#14 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1682 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 19 June 2010 - 09:52 PM

There was a speed boost in gPXE that might not have gone into the gPXE used by Syslinux 3.86. So feel free to try http://www.etherboot.../undionly.kkpxe

#15 ninjabilly

ninjabilly

    Newbie

  • Members
  • 13 posts
  •  
    United States

Posted 20 June 2010 - 01:10 AM

thanks i tried it but it seems to take as long to find pxelinux.cfg/default than gpxelinux.0 takes to load a file by http. My plan now was to go through the other beta packages to see if i find a gpxelinux.0 that works and load http at reasonable speeds. Will i be doing this in vain since all recent betas most likely are coded similarly to the older builds.

#16 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1682 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 20 June 2010 - 02:31 AM

It could be a worth-while exercise, in my opinion. You might also consider testing another NIC, just to see if there's a difference. gpxelinux.0 = undionly.kkpxe + pxelinux.0, so it uses the UNDI driver. If your NIC is supported natively by gPXE, it's possible that a gPXE driver for your NIC might perform better. It might be worth-while checking that possibility out, in case the NIC's UNDI from the NIC's vendor is where the performance bottle-next is.

#17 ninjabilly

ninjabilly

    Newbie

  • Members
  • 13 posts
  •  
    United States

Posted 20 June 2010 - 07:03 AM

you were right it seems that VirtualBox had a problem. Thanks for everything Shao

#18 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1682 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 20 June 2010 - 07:34 AM

Your VirtualBox VM's NIC might or might not have a gPXE-native driver, which might perform better. If you find its PCI VENdor and DEVice IDs, you could find out. If you hit Control-B once gPXE loads, you should get a gPXE CLI. At the CLI, you can type:
show net0/busid
to see about the IDs.

#19 ninjabilly

ninjabilly

    Newbie

  • Members
  • 13 posts
  •  
    United States

Posted 23 June 2010 - 11:47 PM

virtual box is the least of my problems, the loader seems to have another problem when i try to load image files. memdisk and the .iso is loaded using http which works as it suppose to, but after the image is loaded there is an error msg.

Posted Image

#20 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1682 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 25 June 2010 - 01:01 AM

That looks like an ISOLINUX bug. Have you tried any stable released of Syslinux? 4.00 is still in beta.

#21 ninjabilly

ninjabilly

    Newbie

  • Members
  • 13 posts
  •  
    United States

Posted 25 June 2010 - 01:08 AM

yeah i started with 3.86 then i encountered the same error, now im waiting to see if the newest versions may have it fixed. I will also post this topic on the syslinux mailing list in the hope of the developer seeing it and possibly devise a patch to fix it, if it has something to do with syslinux specifically as you stated.

#22 Sha0

Sha0

    WinVBlock Dev

  • Developer
  • 1682 posts
  • Location:reboot.pro Forums
  • Interests:Booting
  •  
    Canada

Posted 25 June 2010 - 01:22 AM

There are multiple developers for Syslinux. It would be great if we could reproduce this. I find it fishy that 3.86 didn't work, since MEMDISK and ISOLINUX should have been very stable. Can you confirm your environment?:
  • VirtualBox VM
  • PXE-boot to gpxelinux.0 from Syslinux 4.00-pre46
  • MEMDISK from Syslinux 4.00-pre46
  • Config-file includes:
    LABEL memdisk
    
      KERNEL http://192.168.5.116/memdisk
    
      INITRD http://192.168.5.116/images/dban.iso
    
      APPEND iso
Does that look accurate?

#23 ninjabilly

ninjabilly

    Newbie

  • Members
  • 13 posts
  •  
    United States

Posted 25 June 2010 - 02:59 AM

yeah everything is correct except for the syslinux version, the version im using is pre59.

I tried 3.86 again but sadly i ran into the same result, the thing is that dban booted this time without giving me the error: boot sector missing or corrupt.

#24 gnikolic

gnikolic

    Frequent Member

  • Advanced user
  • 112 posts
  • Location:Serbia
  •  
    Serbia

Posted 28 February 2013 - 01:05 PM

Hello All!

 

I will post my problem my problem here, and if somebody have suggestion, please, take some free to write something.

Having TFTPServer32 on Windows XP (using like windows server) and grubdos with menu for booting ISO files via network and it is working fine.

But because of luck of licenses for Windows XP (Windows 7 and Windows Server) I am moving it to Linux, CentOS.

Installed everything needed, TFTP-server, DHCP, and HTTP server too.

 

Linux server gives the IPs to the clients and menu appers. ISO files are downloaded just fine, but what ever to boot from TFTP using PXELINUX, just crashed. Acronis Disk Director (Linux version) restarts computer after starting and Windows XP from HBCD (know it is unlegal but saying for explanation purpose) just had an error "TRAP 00000006 EXCEPTION...".

 

Tryed with GPXELINUX via HTTP, which is preety fast than TFTP, just crashed like TFTP.

 

Changed computer too.

 

Dont know what is the problem. If somebody have some idea... Thanx in advice.

 

 

EDIT: it is double post... admin, please, delete what needs to be deleted. Thanx.



#25 gnikolic

gnikolic

    Frequent Member

  • Advanced user
  • 112 posts
  • Location:Serbia
  •  
    Serbia

Posted 28 February 2013 - 02:22 PM

SOLVED...

For others who needs something like this...

when on PXELINUX menu having kernel part like

kernel memdisk

I just put 

kernel memdisk raw

and every ISO file booted fine.

 

Dont know what is raw related to memdisk, but didnt know either that it is memdisk problem.

 

If somebody have info about memdisk and raw, please explain for me and others... 






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users