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

Bernd Blaauw bblaauw at home.nl
Wed Aug 10 15:09:37 PDT 2011


Op 10-8-2011 23:27, Shao Miller schreef:
> Ok, we've discussed your use case more since this e-mail.

yep. Warning: only going to respond selectively as you're responding to 
an entire set of conversations :)


> I don't know; haven't tested ReactOS' recently-changed FreeLdr.

I'll try to find time to verify this myself, as floppy booting seems to 
(partially) work again since they switched to Cmake build system.
[ http://www.reactos.org/bugzilla/show_bug.cgi?id=6342 ]

Should chain.c32 work then I can remove the bootsector file for FreeLoader.

> I don't know; haven't really used 'isohybrid'.

Me neither, as simple Windows user.

> diskette image if Memdisk already loaded," do you mean a _second_
> MEMDISK? If we have a program to test for MEMDISK (such as
> 'ifmemdsk.c32'), that means the very MEMDISK(s) it detects has(/have)
> been booted at some point since power-on.

There's no direct way to boot DOS from CD, so emulation mode has to be 
used, either El-Torito direct emulation for floppy or hdd, or Memdisk. 
Choosing for MEMDISK results in a double memdisk indeed.

1:Isolinux -> memdisk (fdboot.img)
2:Isolinux -> memdisk (fdbootcd.iso) -> isolinux -> memdisk (fdboot.img)

(and yes this means the FDBOOT.IMG floppy image is twice on the same 
disk..one time visible as part of outside ISO, another time as part of 
inner ISO).


> Both ISOLINUX and PXELINUX can use [vesa]menu.c32 to provide menus to a
> user. I don't quite follow you, here.

As PXE-booting seems to involve fetching an image anyway, I thought it 
wiser to auto-download the ISO from server to system's memory, boot that 
and only then show the menu.

> Aha. I get it. You can line up 20 computers and swap your only disc from
> one to the next until they've all been booted to a RAM-disk.

It also seems faster to just duplicate a disk to system memory if it's 
not too large (relying on sequential reading), rather than being stuck 
to access times of optical media when installing lots of small files.

> On this last point: Are you suggesting that ReactOS' FreeLdr does not
> use INT 0x13 to access disks? One of the strong points of MEMDISK is
> that it provides an INT 0x13 hook. As far as I know, FreeLdr would have
> to use a full disk driver if it didn't use INT 0x13, but I'm not sure
> that's the case... I could be mistaken.

I'm not entirely sure anymore. My testing got confused by 'freeldr.ini' 
config file not being found, which I assumed the memory device couldn't 
be read. I'll have to verify int13 support again though. It turns out 
Multiboot-booted FreeLDR expects its configuration file in a *different* 
location compared to bootsector-loaded FreeLDR.
the 'root' (or 'rootnoverify') command can fix this, but that's only 
supported in GRUB, not MBOOT.C32.

That's very annoying unfortunately, as a compressed bootloader saves 
quite some diskspace on a floppy(-image). It will do for now though.

> I think getting it working with one or both of 'mboot.c32' and
> 'chain.c32' is possible. What're you trying to boot from FreeLdr? ReactOS?

Yes, that's the main purpose, yet only one of its options. Pressing F8 
shows a lot more use cases though as a general purpose bootloader.
Choking on either the config file or on bootsector isn't much fun.

> Actually, it's a pretty interesting idea to clone the boot disk as a RAM
> disk and then be able to remove the original media. Seems like more of
> something that'd belong as another COMBOOT32 module, though. Essentially
> it could clone the boot disk as the INITRD for MEMDISK, boot the
> MEMDISK, and that'd be that. You're right though... Seems pretty
> DOS[-ish]-centric for usage.

Who knows, some day :)
Already using disc mirroring inside DOS, from
[ http://adoxa.110mb.com/shsucdx/index.html ].
But ofcourse MEMDISK is more fun than adjusting driveletters.

Thanks for an ongoing and interesting discussion.




More information about the Syslinux mailing list