[syslinux] [gPXE] Chain Grub4Dos over HTTP?

Shao Miller Shao.Miller at yrdsb.edu.on.ca
Mon Dec 7 11:31:13 PST 2009

Cross-posting to the Syslinux mailing-list.

Joakim Schicht wrote:
> But part of the question is also about "memdisk raw" vs "memdisk iso".

"raw" and "iso" are not mutually exclusive.  I think that perhaps you 
meant "HDD versus El Torito emulation."  One can do:

LABEL ramwin
  KERNEL memdisk
  APPEND raw iso
  INITRD ramwin.iso

> Lets say you have a ramboot windows (winvblock, firadisk, ms ramdisk, 
> wimboot, disklessangel, etc) and you will boot this over HTTP. What 
> would be the ideal way, utilizing resources most, to do this, of the 2 
> mentioned methods?

Again, assuming you are asking about an HDD image versus an .ISO image, 
the ISO9660 filesystem is read-only by design, so don't expect to save 
anything on it, regardless of whether it's a RAM disk or a real CD/DVD.  
For that reason, I prefer HDD images.  Some OSs have "live CD" versions 
which expect to boot from such a filesystem; Some flavours of Windows PE 
would be examples of this.  I know of several Linux distros which offer 
"live CD" .ISOs.  For these, you'll want to use "iso" with MEMDISK.  
Whether you use "raw" or not might be a matter of experiment with your 
particular hardware platform, if you experience difficulties.

> If I have understood it correct the usage of "memdisk iso" on such a 
> setup will result in a lost/wasted ram equivalent to the size of the 
> iso (not being able to use it until next reboot)..

Correct.  If the bulk of the .ISO image is an embedded RAM disk image 
(such as a squashfs or .WIM file) and that image is _again_ loaded into 
RAM by some process, you would need roughly twice the RAM, which is 

> Now would it not be more wise in terms of resource utilization, to 
> boot with "memdisk raw" and winvblock (because then all ram is 
> utilized)? Or is it possible to recover the ram used by "memdisk iso"?

Assuming you meant "memdisk HDD emulation" rather than "memdisk raw", 
you need an OS driver to find and provide the MEMDISK to the OS.  
WinVBlock is an example of this.  Currently, WinVBlock _only_ supports 
HDDs, so there's little choice about it.  That will change sooner or 
later.  Why, just last night a patch for MEMDISK was submitted towards 
furthering OS driver support for MEMDISK.

Taking Windows out of the picture altogether, MEMDISK works by hooking 
[at least] INTerrupt 13h.  Any OS using this method for disk I/O will 
thus be intercepted by MEMDISK.  "Proper OSs" such as Linux, *BSD, 
Windows, etc. do not use INT 13h, but use drivers for disk I/O.

gPXE can download the RAM disk image as MEMDISK's "initrd" via HTTP.  At 
this time, WinVBlock is the only "proper" OS driver which can find an 
use the same RAM disk image in RAM, and it can only perform HDD emulation.

- Shao Miller

More information about the Syslinux mailing list