[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