[syslinux] Question of syslinux chainloading

Lu Wei luweitest at gmail.com
Tue Apr 9 07:37:41 PDT 2019

On 2019-4-5 11:28, Ady Ady via Syslinux wrote:
>> #This item fails
>> label normal
>> menu default
>> menu label Boot from ^hard disk
>> com32 chain.c32 hd1
>>From the Syslinux boot menu, press [Esc] in order to get to the boot prompt. At 
> the boot prompt, type in:
> normal
> and press [Enter].
> Is there any (error) message then? Where/how exactly this fails? What exactly 
> happens after the message(s)?
It shows:
Error loading operating system_
at the bottom of screen and hangs. I can only reboot using ctrl-alt-del.

> Test #2: if you unplug the USB and reboot the system, can you successfully boot 
> directly to the HDD's OS?
Yes. The only HDD, NTFS, WindowsXP native boot loader ntldr.

> Test #3: Add an entry to your syslinux.cfg:
> label hd1_1
> com32 chain.c32
> # Boot to first partition of ...
> # There is a space character before the partition number.
> append hd1 1
That will change the error message to one line "Booting..." only and
still hang. Change hd1 to hd0 will loop back to syslinux menu, which is
expected. And "localboot 0x80" fails too.
>> label loadhd
>> menu label Boot from local ^NTLDR
>> com32 chain.c32 ntldr=/ntldr
This ntldr is on the usb-hdd disk, with a boot.ini setting point to the
fixed hard disk:
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Microsoft Windows XP
Professional" /noexecute=optin /fastdetect
and it can successfully boot the fixed hard disk. But I think "com32
chain.c32 hd1" should be more direct.

>> #This item fails
>> label dos
>> menu label MS-^DOS 7.1
>> com32 chain.c32 msdos7=io.sys
> Where exactly the files needed to boot MSDOS 7.1 are located?
> Do you have the module file "ls.c32" in the USB? If you have it, you could:
> 1_ From the Syslinux boot menu, press [Esc] in order to get to the boot prompt.
> 2_ At the boot prompt, type in "ls.c32" and press [Enter].
> The result should list the files that are included in the current working 
> directory. Are the files needed to boot MSDOS 7.1 listed?
I can get the file list using "dir /a/o" after booting to a dos floppy
image item or my hard disk OS:
2019-03-04  22:37    <DIR>          chntpw
2019-03-04  22:51    <DIR>          dos
2019-03-05  22:11    <DIR>          green
2019-03-04  22:48    <DIR>          memtest
2019-03-05  00:32    <DIR>          MiniPE
2019-03-05  16:59    <DIR>          syslinux
2019-04-02  12:01               542 BOOT.INI
2019-03-31  08:56               512 BOOTSECT.W98
2008-06-01  00:00            94,292 COMMAND.COM
2008-06-01  00:00           125,960 IO.SYS
2019-04-04  19:13           122,308 ldlinux.c32
2019-04-04  19:13            69,632 ldlinux.sys
2014-10-07  00:29            26,140 memdisk
2013-10-23  10:58                 0 MSDOS.SYS
2019-01-31  20:18           199,178 mtldr
2008-04-14  20:00            47,564 ntdetect.com
2008-04-14  20:00           257,728 ntldr
2019-04-05  17:28             1,398 syslinux.cfg

In the list, ldlinux.c32,  ldlinux.sys, memdisk (I found it could only
be put into root folder), syslinux.cfg are syslinux files; ntldr,
ntdetect.com, BOOT.INI are ntldr files (which can chain-boot
successfuly); mtldr is for booting to MiniPE(which is actually grldr
from Grub4dos and can chain-boot successfuly).

IO.SYS and COMMAND.COM are copied from a Windows98 system on another
computer, which is MSDOS7.1; and BOOTSECT.W98 is from Bootpart tool (I
compared it with the one from my Windows98 system, and I think they are
basically the same except label name, so I use this one), but I think if
io.sys is loaded, boot sector should be of no use. I have tried "boot
BOOTSECT.W98" and "bss BOOTSECT.W98" without success, so I'd like to
jump over it and get to IO.SYS directly.

Lu Wei
IM:	xmpp:luweitest at riotcat.org

More information about the Syslinux mailing list