[syslinux] Is it possible to chainload EXTLINUX from GRUB?
H. Peter Anvin
hpa at zytor.com
Wed Oct 18 17:34:38 PDT 2006
Gavin D. Smith wrote:
> H. Peter Anvin wrote:
>
>> Gavin D. Smith wrote:
>>> I have just tried placing EXTLINUX on a primary partition and indeed
>>> I successfully chainloaded it. However this doesn't seem to work when
>>> I put it on a logical partition. Is there a reason why there might be
>>> a difference between the two types?
>>
>> Not if the chainloading code is written properly. Chainloading onto a
>> logical partition means you have to load not the MBR but the
>> pseudo-MBR containing the logical partition in question at address
>> 0x600 and point DS:SI to it.
>>
>> Sounds like a Grub problem to me.
>>
>> -hpa
>>
> To see if Grub has a problem chainloading onto a logical partition I
> tried installing GRUB onto the logical partition, and it was
> successfully loaded. I also tried LILO on the logical partition, and it
> also was successfully loaded. However trying extlinux I got the same
> "Boot error" message as before. This may be because of a slight
> difference in my installing methods that I have overlooked, but I don't
> know what that might be. I know that the syslinux loader is loaded
> because "Boot error" is a message in that loader. So you say this
> message is due to some registers not being set correctly? Would there be
> a way of seeing what the registers contain so I can tell if they're
> right or not? I don't have many more ideas of things to try.
>
You're assuming that just because GRUB and LILO can be loaded that it is
all done correctly. GRUB and LILO might not rely on, for example, the
DS:SI pointer (given their design methodology I would almost assume they
don't.)
For debugging, I would run this in an simulator and set a breakpoint at
0:7C00h. This will be hit several times, one of which will be EXTLINUX
entry; at this point examine the registers, and the memory pointed to by
DS:SI (16 bytes) and ES:DI (64 bytes or so.)
-hpa
More information about the Syslinux
mailing list