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

Gene Cumm gene.cumm at gmail.com
Wed Jun 11 18:22:59 PDT 2014


On Wed, Jun 11, 2014 at 2:58 PM, intrigeri <intrigeri at boum.org> wrote:
> 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?

Sure there's a chance but no guarantees. Everything should come from
one build.  I'd suggest against an older core.  Please review the
commit log.

> 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

I'd suggest an alternative: extract the newer version from the ISO
then run it.  The installer binary is more likely to be compatible due
to how glibc works.  The MBR won't matter (it could be from MSDOS-6
from 1993 really if EDD isn't needed) but the VBR (the first sector of
the file system) will.

> 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

See above suggestion.  :D

> 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?

No (but I'd define unbootable as unable to get to a boot prompt then
load a kernel/initrd not allow functionality of COM32 modules) but it
may make it unpleasant.

> [1] https://tails.boum.org/


-- 
-Gene


More information about the Syslinux mailing list