[arch-general] syslinux.cfg

Leonid Isaev leonid.isaev at jila.colorado.edu
Thu Feb 16 03:38:05 UTC 2017


On Thu, Feb 16, 2017 at 03:09:23AM +0100, Ralf Mardorf wrote:
> Hi,
> 
> is the no way to get a menu
> 
> 
> Arch kernel 1
> Arch Kernel 2
> Foo  Kernel 1
> Foo  Kernel 2
> 
> 
> when using syslinux?
> 
> Or even while booting another Linux requires chainloading, there's a
> feature to chose between all available kernels of another Linux by the
> "main" menu?
> 
> IIUC chainloading only could provide
> 
> 
> Arch kernel 1
> Arch Kernel 2
> Foo
> 
> 
> and just when selecting Foo I can chose between
> 
> 
> Foo  Kernel 1
> Foo  Kernel 2
> 
> and perhaps
> 
> Arch
> 
> 
> so assuming I then decide to go back to the Arch menu, I need to
> chainload Arch from the chainloaded other Foo Linux?

No, you only need chainloading in special cases, for instance if syslinux can't
boot from a filesystem containing Foo kernels, or windows.

Let's assume that you have the following:
* /dev/sda1 -- mounted at /boot when you boot your ArchLinux system
* /dev/sdb1 -- the same for Foo
* syslinux is installed on /dev/sda1 (it is bootable).

What I usually do, is mkdir /dev/sda1/{arch,foo} and rsync kernels/initrds from
/dev/sda1 to arch/ and from /dev/sdb1 to foo/. Then, modify syslinux.cfg so
that entries like LINUX ../vmlinuz-linux become LINUX ../arch/vmlinuz-linux and
similarly for INITRD. Finally, in your Arch's and Foo's fstabs, bind-mount
arch/ and foo/ to respective /boot's (if desired of course, as you don't need
to have /boot mounted).  This way you get the menu that you mentioned first.

You no longer need data in /dev/sdb1 and can free the partition.

HTH,
-- 
Leonid Isaev


More information about the arch-general mailing list