[syslinux] [PATCH] ifmemdsk.c32: Allow boot options based on presence of MEMDISK

Bernd Blaauw bblaauw at home.nl
Mon Aug 8 13:02:31 PDT 2011


Op 8-8-2011 21:18, Shao Miller schreef:
> MEMDISKs, not Syslinuces. Since an established MEMDISK might or might
> not have anything to do with the currently-running Syslinux, why add
> special-case behaviour that deviates from DOS' mdiskchk.com?

Ah that's a clear example of how complicated things indeed can get. Was 
just considering a convenience feature, but your argument/explanation is 
enough to actually don't make the module behave as I suggested.

> I don't completely understand your target scenario (and might've missed
> some relevant e-mail), but maybe that's not important. Why would an
> "outer" .ISO have the same config-file as an "inner" .ISO? Suppose you
> have, in the outer .ISO:

Because I'm generating an (inner) ISO and optionally an outer ISO to 
enable loading the inner ISO by MEMDISK. It enables freeing up the 
physical device I'm booting from quite fast (allowing other discs to be 
inserted or entire device removed).
Most convenient is copying the inner ISO's isolinux directory to the 
outer ISO (and storing the inner ISO in that outer ISOLINUX directory). 
Thus, identical files.

> LABEL test4memdisk
> COM32 /isolinux/ifmemdsk.c32 --mbfts load_inner -- show_menu
> LABEL load_inner
> KERNEL memdisk
> INITRD inner.iso
> APPEND iso
> LABEL show_menu
> ...

so unde the show_menu label I can put all that's required for MENU.C32 
including the UI directive? or should I use a 2nd isolinux config file?
I was under the impression the UI MENU.C32 had to be at start of config 
file.
Basicly I'd like to only show a menu once. That's when no MEMDISK/ISO 
has been loaded yet (by isolinux).

>> I'll stick to whatever works though, hopefully including a MBOOT.C32
>> at some time that is able to set root before chaining :)
>
> Ok.
>
>> Switching to GRUB/Grub4dos/BURG/GRUB2/GRUB24DOS/BURG2 in either
>> uncompressed or compressed versions wasn't my intention :)
>
> You've lost me. :)

Ha, getting to an offtopic issue (sorry, HPA) as I'm making a boot 
floppy as well.

Well I'd like to load FREELDR.SYS on floppy, with following requirements:
[1] FreeLDR loaded from floppy, by Syslinux menu
[2] FreeLDR loading freeldr.ini config file from floppy, not hdd
[3] FreeLDR as small as possible
[4] Standard floppy layout (sector/cluster size)
[5] Total size of all necessary files as small as possible

* Bootsector way (KERNEL FREELDR.BSS) doesn't meet [3], [4] and [5]
* CHAIN.C32 way (CHAIN.C32 freeldr=freeldr.sys) same issues
* MBOOT.C32 way (MBOOT.C32 FREELDR.GZ/SYS) doesn't meet [2] (instead 
expecting config file on harddisk)
* GRUB doesn't meet [5] due to itself being a rather huge file
  (unknown if compressible). See below.
* MEMDISK FREELDR.IMZ won't complete due to FREELDR being protected
   mode and not being MEMDISK-aware.

Size estimations:
- Bootsector way is 340 KB or so
- Chain.c32 way around 170KB then (+30KB from chain.c32)
- Mboot.c32 way is 130KB (compressed freeldr) + 30KB or so
- GRUB way is 130 (FreeLDR) + 240KB (GRUB) or 120KB (compressed
   GRUB4DOS..if it runs..).
- MEMDISK way would be 150KB (130 from FreeLDR, 20 from MEMDISK)

So all in all I'd prefer MBOOT.C32, provided it can set root before 
loading Multiboot-kernel, so that silly kernel goes looking for its 
configuration file on the drive it booted from, instead of on the drive 
it expects the operating system to be)




More information about the Syslinux mailing list