[syslinux] memdisk as A: and B:?

Michael E Brown Michael_E_Brown at dell.com
Mon Aug 15 20:37:53 PDT 2005


	We are working on a prototype for an installation system, and it would
be very useful if we could load two memdisk images, having one pretend
to be normal A: drive, and another as B: drive. I have read through the
docs as well as done some google searches, and haven't seen such a thing
described.

	We have one person who has asm programming experience, and we were
wondering if we could get some tips on the most straightforward way to
implement something like this.

	For background on what we are trying to do, the windows installer can
load driver updates from a memdisk image. The problem is that it then
switches to protected mode and tries to copy the driver from the disk.
This, of course, fails because at that point windows is using its own
protected mode floppy handler and not int13. But, there is a workaround.
If the floppy is B:, windows will treat the floppy specially, as a
"virtual" floppy, loading the entire image into memory before switching
to protected mode. This means that driver updates would be possible
using memdisk.

	The approach is to lay down syslinux/memdisk onto the hard drive
utility partition (A special Dell partition type). Dell systems have a
CMOS bit to force boot the Utility partition even if there is a CDROM
disk present. We set this bit and boot. When the memdisk image boots, we
have the A: disk image do an int19 to soft boot the system, which will
load the CDROM. Since it was a soft boot, memdisk has still hooked int13
for both A: and B:. Windows installer loads and uses int13 to read
floppy and discovers our drivers, loading them into memory.

	This approach would probably work on non-Dell systems as well, but you
would have to ensure that the hard drive booted before the CDROM.

Thanks,
Michael Brown




More information about the Syslinux mailing list