[syslinux] Question of syslinux chainloading

Lu Wei luweitest at gmail.com
Fri Apr 12 08:28:07 PDT 2019

On 2019-4-12 2:48, Ady Ady via Syslinux wrote:
> I was tempted to reply to several side-topics you have mentioned. I'll skip 
> them, except for one: the PATH directive is for c32 files only. I am mentioning 
> this because some readers might interpret the phrase "memdisk do not honor path 
> command" as if it was some kind of bug; it is not.

Thanks for the clarification. The \bios folder of release zip has so
many deep sub folders so I extracted them regardless of the original
folder structure, eventually put everything including memdisk into the
same folder.
> Regarding the MSDOS 7.1 boot files... Do you still have access to that Win98 
> system? If you do, I would suggest searching for "io.dos" and "msdos.dos". 
> These might be set as "hidden" and/or "system" (use attrib if needed), and 
> there might be some additional "*.dos" file(s) too. These are the "MSDOS 7.1" 
> boot files. The ones you got before _might_ be the "Win98" variants instead.

I don't have access to that Win98 system now, yet I can recall two files
io.sys and command.com are sufficient for MSDOS7.1 booting; Bootsect.dos
is the only ".dos" file (which I later renamed to bootsect.W98). That
system installed WinXP after Win98, that's I think why there was this
bootsect.dos file, because a line
C:\bootsect.dos="Windows 98"
in boot.ini will boot to Win98.

> Once copied to your USB device, you can change the filename extension from 
> "*.dos" to "*.sys" (and "*.com" for the DOS shell). Yet, these might not be 
> enough for a successful chainload. The MSDOS boot files require some conditions 
> for them to be able to boot. The easiest way to achieve the adequate conditions 
> is to create an MS-DOS 7.1 boot disk, test it, and then install SYSLINUX on it.
Follow your suggestion, I used Rufus to create a MSDOS8 (the only
version it supports on XP) boot disk, tested it OK. Then before
installing Syslinux, I copied MSDOS 7.1 file io.sys and command.com
over, and it fails to boot. I copied MSDOS 8 files back, and it can boot
again. Then I installed Syslinux, but "msdos7=io.sys" option still did
not work (lots of strange characters scrolling up and even ctrl+alt+del
can not stop).

> Additional potential problems might be the C/H/S values (FreeDOS is more 
> tolerant in this regard), and using FAT32 instead of FAT16. Yes, Win98 already 
> supports FAT32, but I admit that I don't exactly recall which filesystem (and 
> max size) its MS-DOS counterpart supports.
>From experiment above, maybe MSDOS8 (WinME) supports FAT32 better, but
Syslinux cannot boot it either.

> Another test you could perform: build a boot floppy image with these io.sys / 
> msdos.sys / command.com files and boot it by means of memdisk (not with 
> chain.c32). Repeat the same with a bigger, FAT16 image.
Floppy image could boot using memdisk without problem.

> These tests could narrow down the problem, according to their results.
> OTOH, if FreeDOS boots correctly, perhaps it is enough for your DOS needs and 
> you might not need "MS-DOS 7.1" anymore.
I think you are right, FreeDOS seems not so picky in booting as MSDOS.
Although I haven't used FreeDOS before, I guess most things should work.

Lu Wei
IM:	xmpp:luweitest at riotcat.org

More information about the Syslinux mailing list