[syslinux] MEMDISK El Torito Emulation

Bernd Blaauw bblaauw at home.nl
Mon Nov 23 10:24:37 PST 2009


Op 23-11-2009 15:55, Shao Miller schreef:
> Bart Lagerweij (of BartPE, for example) was kind enough to share the 
> source for ElTorito.sys with us.  Unfortunately, it was slightly older 
> than the most recent version of the driver.  It's simply fantastic 
> that he shared it!

That's great news! Were there any conditions given to the sharing? I 
guess each person interested in it will have to request permission 
individually? So far the FreeDOS project has had permission from him to 
freely redistribute the binary driver on FreeDOS-related releases.

> As far as "DOS so far requires" goes, this is only if you wish to 
> access the .ISO RAM disk from DOS.  If you are simply booting an .ISO 
> which itself boots a self-contained floppy or HDD image, then you 
> don't need this driver.

I'm booting Syslinux/memdisk from C:, then this FreeDOS ISO file. That 
in turn contains SYSlinux, Memdisk and a floppy image. I wonder if any 
of the Syslinux bootloaders can handle chained/scripted choices, 
following should load label "fdos" for example
(using some imagined command "bootmenu" to enter the input which you 
normally give at the Isolinux "boot:" line on screen (and Enter key 
ofcourse). It removes 1 more menu to pass ( I currently solve the issue 
by setting CDrom label "fdos" as default and using 2 second timeout instead)

# this is syslinux.cfg
:choice1
label fdmemiso
kernel memdisk
append iso initrd=fdbootcd.iso bootmenu=fdos
# above lines load FreeDOS CD image, then immediately chains into label 
"fdos"

As mentioned elsewhere in this thread (on Friday), an OS like Windows, 
Linux, or ReactOS needs an OS driver to use a MEMDISK.  So the answer is 
yes and no...  Yes, MEMDISK will boot a ReactOS live CD image.  No, 
ReactOS will not find and use the RAM disk without a driver.  If the 
ReactOS live CD _itself_ loads a RAM disk and does not require a CD 
after that point, then you will have success.  As in, if you actually 
booted a physical CD to ReactOS and are able to remove that CD during 
the boot process, then ReactOS must be using its own RAM disk logic, 
regardless of MEMDISK or any other boot method.  I doubt this is the case.

So we got 2 memdisks to access. The last loaded one, which is a floppy 
image in my case (as loaded by Isolinux inside the ISO) and the data 
part of the ISO, which requires a special driver, in your case 
WinVblock, in my case either ELTORITO.SYS (+mscdex or so) or whichever 
other Memdisk-mapping program which would search total system memory for 
the start of the ISO, then map it to some driveletter.

> A Windows driver which will currently find MEMDISK HDD images is 
> WinVBlock, as Gert mentioned.  I've had one negative report for 
> ReactOS, which isn't really that surprising, since ReactOS != 
> Windows.  It would be great if you could test it, though!

ReactOS currently isn't in a very usable state due to regressions, nor 
does their Wiki state anything usable for adding/integrating drivers 
into their installation CD. At least Windows is closed-source but allows 
to integrate drivers. ReactOS instead requires recompiling, adding 
drivers, editing some registry files/hives, creating a new registry, 
then recreating the CD from sourcecode or their own sourcecode directory 
structure. No idea why they don't simply have a "copy all files from 
installation cd, add some files, create new bootable ISO". Might be my 
limited knowledge, I guess.

> I just tried compressing and then decompressing the DOS SYSLINUX.COM 
> with UPX and had success.

as fun as that is to reduce its size on a diskette, I ment the binary 
files ISOLINUX.BIN, LDLINUX.SYS and MEMDISK. They make UPX choke, and I 
got no idea why, as UPX can even compress Linux(-kernel) (and for the 
record, FreeDOS kernel as well).

Bernd




More information about the Syslinux mailing list