[syslinux] Syslinux/Extlinux chain : Unexpected change of Extlinux configuration folder after reboot

VILZ, Julien j.vilz at evs.com
Wed Oct 21 07:05:30 PDT 2015


Thank you very much for your answer.

I haven’t found why the VBR change between reboot but your suggestion about the CONFIG directive was very helpful to work around the problem.
We use the syslinux and extlinux 6.03. All the chain uses the same version.

Best regards

Julien 

-----Original Message-----
From: Gene Cumm [mailto:gene.cumm at gmail.com] 
Sent: mardi 20 octobre 2015 21:10
To: Ady; VILZ, Julien
Cc: For discussion of Syslinux and tftp-hpa
Subject: Re: [syslinux] Syslinux/Extlinux chain : Unexpected change of Extlinux configuration folder after reboot

On Tue, Oct 20, 2015 at 1:08 PM, Ady via Syslinux <syslinux at zytor.com> wrote:
>
>> Hello,
>>
>> We are experiencing a strange behaviour on an embedded system (i386 PC board).
>>
>> The structure of our disk is the following one :
>> - A 2GB fat16 partition with DOS and syslinux
>> - A 100GB Ext4 partition with Extlinux an several linux images to 
>> boot on ram
>> - A swap partition

Presumably FAT16 at the first (hd0 1; sda1) and EXT4 at second (hd0 2; sda2).

>> The system boot on syslinux to choose among Dos and Linux boot using chain.
>> When Linux is chosen, syslinux chains to the boot sector of the Ext4 
>> partition (chain hd0 2)
>>
>> The Ext4 partition contains several folders each containing a linux ramdisk image, a kernel and his own extlinux configuration (ldlinux.sys, syslinux.cfg).

Quite odd since ldllinux.sys itself is essentially useless without the corresponding VBR.

>> We use the following command to change the linux kernel and image to 
>> use at the next boot : extlinux -i 
>> /Path_to_the_configuration_folder_of_linux_image_to_launch
>>
>> After calling extlinux -i, the first next reboot use the good kernel and image.
>> But all the following reboot (without call to extlinux -i), roll back to the previous linux image (the one used before the previous call to extlinux -i).
>>
>> I'have check the boot sector content of the Ext4 partition. The pointers (found with offset computed with sect1ptr0, sect1ptr1)  to the extlinux configuration change between reboot without calling extlinux.
>>
>> I have backup the Ext4 partition boot sector between each reboot with this command:
>> dd if=/dev/sda2 of=$VERSION_DIR/boot/syslinux/bootsector.bak 
>> ibs=60928 count=1 conv=notrunc The file comparison show an unwanted 
>> change of the sector address of the configuration folder (at the 
>> offset sect1ptr0=11A and sect1ptr1=120)
>>
>> If I call again extlinux -i with the wanted configuration folder, as the first time, all the following reboots finally use the wanted linux image.
>>
>> How to prevent unwanted change in partition bootsector between reboot ?

SYSLINUX won't do this on its own.

>> Does syslinux/extlinux bootloader overwrite these values during boot ?

No, but may touch the ADV at the end of ldlinux.sys.

>> Is there a bootsector recovery mecanism which restore an old bootsector ?

If your motherboard or distro does this, that would be why.

> The following is a question, but I think it could be read as a 
> suggestion too.
>
> Instead of using the extlinux command to install a different boot 
> sector each time, is there any reason not to use the CONFIG directive?
>
> The CONFIG directive can load a new configuration file while changing 
> the Working Directory at the same time.
>
>  http://www.syslinux.org/wiki/index.php/Config#CONFIG

Keeping the initial config simple is also suggested as it should minimize any impact it may have on subsequent configurations.  Some directives are sticky (not reset when loading a new config).

> Which exact version of SYSLINUX / EXTLINUX are you using? Are both 
> VBRs
> (sda1 and sda2) using the same exact version? Is your chain.c32 using 
> the same version too?

--
-Gene



More information about the Syslinux mailing list