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

Ady ady-sf at hotmail.com
Thu Jun 5 12:38:04 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. 
> 
 
Whichever prior Syslinux 6.xx version you had, we know that the newer 
one is better. I am not just saying it; in this case at this time 
this is a completely valid statement. You should update any prior 
6.02- version to the newer 6.03 branch.
 
> > > 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. 
 
The directives are case-insensitive, and MENU LABELs can indeed 
include space characters.
 
> 
> > 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"
 
What do you mean with the version not being identical? If you include 
"--install" you re-installed ldlinux.sys (an ldlinux.c32) using the 
Syslinux package version that you have (installed) in your system.

It sounds like you might be mixing Syslinux versions, which could 
bring all sort of problems. The version of all Syslinux-related files 
in use, including the c32 modules, needs to match the same (exact) 
version of the boot loader.

To be clear, I am not saying there is no bug - there might be.
 
> 
> --
> Arlie
> 

Regards,
Ady.


More information about the Syslinux mailing list