[syslinux] Acceptable version mismatch between syslinux 6.0N's MBR/ldlinux.sys and *.c32?

Ady ady-sf at hotmail.com
Wed Jun 11 13:18:43 PDT 2014


> Hi there,
> 
> first, thanks a lot for syslinux!
> 
> I'm aware that one can't mix syslinux 4's MBR + ldlinux.sys with
> syslinux 6's COM32R modules. Fair enough. Now, I need to know how
> strong this "versions *must* match" requirement is when dealing with
> different versions of syslinux 6.x. E.g.
> 
>   * MBR and ldlinux.sys installed by syslinux 6.03-pre1
>   * all *.c32 modules installed by 6.03-pre14
> 
> Has this a chance to work?
> 
> Of course, feel free to ask me to just try myself. Still, assuming
> this currently works fine, it would be good to know to what extent
> such incompatibilities are likely to happen in the future, when mixing
> bits of different versions of the 6.x branch.
> 
> Can anyone make a rough guess?
> 
> Context: Tails [1] has an "Upgrade from ISO" feature, that allows
> upgrading USB stick B, while running from USB stick A, using
> a user-provided ISO image. Generally, this is used to upgrade stick
> B from Tails version N to N+1, while stick A is still running version
> N. (If stick A was running version N+1, the user could simply use our
> "Clone and Upgrade" feature instead). During this process, the MBR and
> ldlinux.sys are upgraded, using the version of syslinux shipped in
> stick A. Generally speaking, when Tails version N+1 ships a newer
> version of syslinux than the one shipped in Tails N, we're then going
> to mix an older syslinux MBR + ldlinux.sys, with newer COM32R modules.
> This can't possibly work for the syslinux 4 -> 6 upgrade, but we'll
> work around that problem somehow, UX will be degraded during this
> upgrade, but oh well. My question is about future upgrades between
> point-releases of syslinux 6. So, my question really is: once all
> Tails users have a stick in version N that ships, say, syslinux
> 6.03-pre1, and the next upgrade to version N ships with 6.03-pre14's
> COM32R modules, will running syslinux 6.03-pre1 on the upgraded stick
> (that has 6.03-pre14 COM32R modules) make it unbootable?
> 
> [1] https://tails.boum.org/
> 
> Cheers,
> -- 
>   intrigeri
 
I don't have a definitive answer (and I am not a Syslinux developer), 

but generally speaking I would say that mixing Syslinux versions 
should be completely avoided, specially since Syslinux 5.xx 
considering the additional lib*.c32 library modules dependencies. I 
would even say that there is a slight chance that mixing files from 
two different builds (e.g. w/o debug, gcc versions...) of the same 
version might bring unexpected results.

In some particular case, mixed files might work OK, but IMHO it 
shouldn't be part of a planned method of upgrading a distro.

Although I haven't tested it lately, the Tuxboot tool should be able 
to use the version of Syslinux included in your ISO images so to 
transfer it to a (USB) drive. Since it works for other Debian-based 
distros, it might answer to your needs. GParted/Clonezilla Live also 
include scripts for the same purpose, and they are already using 
Syslinux 6.03-pre*.

Regarding the MBR code, it rarely changes, but there have been such 
occasions.

Regarding the particular versions you mentioned, IMHO using 6.03-pre1 

would be a waste of time, as there are already (too) many 
improvements over it in the current 6.03-pre14.

Regards,
Ady.


PS: [off-topic] 
Reading the reports from users testing TAILS in UEFI systems, you 
might want to consider adding the 'MENU RESOLUTION 1024 768' 
directive to your EFI/tails.cfg as temporary workaround (for example, 

for those that can't see the Syslinux command line when pressing TAB 
in the EFI vesamenu; the BIOS boot menu doesn't need this 
workaround). I can't guarantee it will match all your (users') needs, 

but there is a chance it might work for some. YMMV.



More information about the Syslinux mailing list