[syslinux] How to use --once? Does it work?

Arlie Stephens arlie at worldash.org
Thu Jun 5 11:53:21 PDT 2014


On Jun 05 2014, Ady wrote:

> > I'm working on a system derived from ARCH linux, running what they
> > call version 6.02-4 of the syslinux package (which would be your
> > version 6.02 plus their/our patches).  I've got a syslinux.cfg
>  
> ArchLinux currently is already using 6.03-pre12 or newer, so I would 
> suggest for you to update.

I want to keep the affected machines more-or-less stable, i.e. we're
not tracking arch closely. But we'll happily pick up a fixed version
of syslinux, or a specific patch for the problem we've been hitting. 

> > In my syslinux.cfg I have several menu options, simplified here. 
> > 
> > DEFAULT up
> > 
> > LABEL up
> >    MENU LABEL Generic
> >    LINUX ../vmlinuz-linux
> >    APPEND root=/disk/a
> >    INITRD ../pxe-linux.img
> > 
> > Label updebug
> >    MENU LABEL Debug
> >    LINUX ../vmlinuz-linux
> >    APPEND root=/disk/a debug
> >    INITRD ../pxe-linux.img
> > 
> > 
> > So I do $ sudo extlinux --once updebug /boot/syslinux 
> > 
> > The file /boot/debug/ldlinux.sys changes, and part of the change is 2
> > copies of the characters u p d e b u g
>  
> I would guess you are not using "/boot/debug/" but actually 
> "/boot/syslinux/" as installation path, right? Where is your 
> ldlinux.sys really located?

Yes, that was a typo. It's /boot/syslinux/ldlinux.sys


> > But when I reboot, it comes up from the first option. And if I sit at
> > the console, I see that option showing as gthe default, just as if I
> > hadn't been using --once to change it. 
> > 
> > However, the modifications _are_ removed from /boot/debug/ldlinux.sys
> > So part of the desired effect of --once is happening on boot up
> > 
> > Perhaps I don't understand what is meant by "command" in the man page:
> > 
> >       -o, --once=command
> >               Execute a command once upon boot.
>  
> The command should (better) be label in your cfg file. FWIW, labels 
> shall not include space characters and shall be unique.

Good, that part is right then. Though I see I had another typo above. 
  Label updebug
is really 
  LABEL updebug
when I look at the actual file on my test machine. 

I have no spaces in the LABEL lines. I *do* have spaces in the MENU LABEL 
lines, but I believe that's OK. 

> According to your report (and you are not the first one), there seems 
> to be some partial success but the desired result is not achieved. 
> Have you tried using the "=" sign and the "--install" option too? For 
> instance:
> 
>  $ sudo extlinux --once=updebug --install /boot/syslinux 
> 
> where "updebug" is a unique label in your syslinux.cfg file and 
> "/boot/syslinux/" is the mounted point where SYSLINUX will be 
> re-installed.

Same wrong effect at a gross level - I still boot off the default
label, not the one named with --once. Some differences in the effects
on ldlinux.sys - the post-boot version is not identical to the one I
had in place before running "sudo extlinux --once=updebug --install /boot/syslinux"

--
Arlie


More information about the Syslinux mailing list