syslinux.cfg

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

syslinux.cfg

Ralf Mardorf-4
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?

Regards,
Ralf
Reply | Threaded
Open this post in threaded view
|

Re: syslinux.cfg

David Rosenstrauch
On 02/15/2017 09:09 PM, 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?
>
> Regards,
> Ralf
>

Not sure exactly what you're trying to do.  I have my syslinux showing
the following menu choices at boot:

Arch Linux
Arch Linux - single user
Arch Linux - fallback
Arch Linux - LTS kernel
Arch Linux - LTS kernel, single user
Arch Linux - LTS kernel, fallback
Windows 7
hdt
reboot

Not sure if that's what you're aiming for or not.  If it is, I'm happy
to send you a copy of my syslinux.cfg.

Best,

DR
Reply | Threaded
Open this post in threaded view
|

Re: syslinux.cfg

Leonid Isaev-3
In reply to this post by Ralf Mardorf-4
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
Reply | Threaded
Open this post in threaded view
|

Re: syslinux.cfg

Ralf Mardorf-4
On Wed, 15 Feb 2017 20:38:05 -0700, Leonid Isaev wrote:

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

Thank you,

that is nice workaround, with just one pitfall.
If I want to maintain the other Linux in a systemd-nspawn container, I
won't be able to upgrade the kernel anymore [1]. Is there a workaround
for this, too? Perhaps I'm just using systemd-nspawn incorrect :D. I
should read more about systemd-nspawn ;).

I wonder how systemd-nspawn works, if e.g. /home would be on a
separated partition. Some days back I needed to use chroot, because
installing GRUB (GRUB itself, not the grub package/s) didn't work with
systemd-nspawn in the way I'm using systemd-nspawn.

However, I most likely will use the workaround you mentioned.

Regards,
Ralf

[1]
[root@archlinux ~]# grep PRETTY /etc/os-release
PRETTY_NAME="Arch Linux"
[root@archlinux ~]# grep -v ^# /etc/fstab
/dev/sda9       /               ext4  rw,relatime,data=ordered 0 1

/dev/sda10      none            swap  defaults                 0 0

/dev/sda11      /mnt/music      ext4  defaults,noatime         0 2
/dev/sda5       /home/s1.music  ext4  defaults,noatime         0 2

[root@archlinux ~]# systemd-nspawn -qD /mnt/moonstudio
[root@moonstudio ~]# grep PRETTY /etc/os-release
PRETTY_NAME="Ubuntu 16.04.2 LTS"
[root@moonstudio ~]# grep -v ^# /etc/fstab

/dev/sdb11      /               ext4    rw,relatime               0       1
/dev/sda10      none            swap    sw                        0       0
/dev/sdb7       none            swap    sw                        0       0
/dev/sda9       /mnt/archlinux  ext4    defaults                  0       2
/dev/sdb15      /mnt/winos7     ext4    defaults,noatime          0       2
[root@moonstudio ~]# ls -hl /mnt/archlinux/
total 0
[root@moonstudio ~]# logout
[root@archlinux ~]# systemd-nspawn -bqD /mnt/moonstudio
[snip]
[root@moonstudio ~]# ls -hl /mnt/archlinux/
total 0
[root@moonstudio ~]# ls -hl /mnt/winos7/
total 0
Reply | Threaded
Open this post in threaded view
|

[solved] syslinux.cfg

Ralf Mardorf-4
In reply to this post by Leonid Isaev-3
On Wed, 15 Feb 2017 20:38:05 -0700, Leonid Isaev wrote:
>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/.

Hi,

I kept Arch's /boot and will move other Linux /boot to an Arch
directory named /.boot.

A test done with one Linux already works, just the issue with installing
and removing another Linux' kernels when maintaining it in a
systemd-nspawn container isn't solved.

Regards,
Ralf

[root@archlinux ~]# ls -d /boot/ /.boot/*/*/
/boot/  /.boot/ubuntu_moonstudio/boot/
[root@archlinux ~]# grep boot /mnt/moonstudio/etc/fstab
/mnt/archlinux/.boot/ubuntu_moonstudio/boot /boot          none   bind              0 0
[root@archlinux ~]# cat /boot/syslinux/syslinux.cfg
# http://syslinux.zytor.com/wiki/index.php/Doc/menu

PROMPT 0
TIMEOUT 80
UI menu.c32
MENU HIDDEN
MENU CLEAR
MENU COLOR screen      0;30;40
MENU COLOR border      0;30;40
MENU COLOR title       1;37;44
MENU COLOR unsel       0;37;40
MENU COLOR hotkey      1;37;40
MENU COLOR hotsel      7;37;40
MENU COLOR sel         7;37;40
MENU COLOR disabled    1;37;40
MENU COLOR scrollbar   0;30;40  
MENU COLOR tabmsg      0;30;40
MENU COLOR cmdmark     0;31;40  
MENU COLOR cmdline     0;37;40            
MENU COLOR timeout_msg 0;37;40
MENU COLOR timeout     1;37;40

# Used hotkeys: ^A ^e ^g ^H ^L ^M ^O ^P ^Q ^R ^S ^t ^V
DEFAULT Threadirqs

MENU TITLE HAL 9000
LABEL Toolbox
    MENU LABEL Toolbox
    MENU DISABLE
MENU SEPARATOR


LABEL Hardware
    MENU LABEL ^Hardware Detection
    COM32 hdt.c32

LABEL Reset
    MENU LABEL R^eset
    COM32 reboot.c32

LABEL Off
    MENU LABEL Power ^Off
    COM32 poweroff.c32


MENU SEPARATOR
MENU SEPARATOR
LABEL Arch Menu
    MENU LABEL Arch Linux
    MENU DISABLE
MENU SEPARATOR


LABEL Threadirqs
    MENU LABEL Arch Linux ^threadirqs
    LINUX ../vmlinuz-linux
    APPEND root=LABEL=archlinux ro threadirqs
    INITRD ../initramfs-linux.img

LABEL Rosa
    MENU LABEL Arch Linux Rt ^Rosa Pluesch
    LINUX ../vmlinuz-linux-rt-rosapl├╝sch
    APPEND root=LABEL=archlinux ro
    INITRD ../initramfs-linux-rt-rosapl├╝sch.img

LABEL Presonus
    MENU LABEL Arch Linux Rt ^Presonus
    LINUX ../vmlinuz-linux-rt-presonus
    APPEND root=LABEL=archlinux ro
    INITRD ../initramfs-linux-rt-presonus.img

LABEL Arch
    MENU LABEL ^Arch Linux
    LINUX ../vmlinuz-linux
    APPEND root=LABEL=archlinux ro
    INITRD ../initramfs-linux.img

LABEL Rt
    MENU LABEL Arch ^Linux Rt
    LINUX ../vmlinuz-linux-rt
    APPEND root=LABEL=archlinux ro
    INITRD ../initramfs-linux-rt.img

LABEL Lts
    MENU LABEL Arch Linux Rt LT^S
    LINUX ../vmlinuz-linux-rt-lts
    APPEND root=LABEL=archlinux ro
    INITRD ../initramfs-linux-rt-lts.img


MENU SEPARATOR
MENU SEPARATOR
LABEL Other Menu
    MENU LABEL Other Linux
    MENU DISABLE
MENU SEPARATOR

LABEL Moonstudio
    MENU LABEL Ubuntu X ^Moonstudio  lowlatency
    LINUX /.boot/ubuntu_moonstudio/boot/vmlinuz-lowlatency
    APPEND root=LABEL=moonstudio ro vga=773
    INITRD /.boot/ubuntu_moonstudio/boot/initrd.img-lowlatency

LABEL Generic
    MENU LABEL Ubuntu X Moonstudio  ^generic
    LINUX /.boot/ubuntu_moonstudio/boot/vmlinuz-generic
    APPEND root=LABEL=moonstudio ro vga=773
    INITRD /.boot/ubuntu_moonstudio/boot/initrd.img-generic

#LABEL Light
#    MENU LABEL Ubuntu ^Q LightScribe Rt
#    LINUX /.boot/ubuntu_q/boot/vmlinuz-3.6.5-rt14
#    APPEND root=LABEL=q ro
#    INITRD /.boot/ubuntu_q/boot/initrd.img-3.6.5-rt14

#LABEL Suse
#    MENU LABEL ^Vintage  SUSE 11.2   Rt
#    LINUX /.boot/suse11.2/boot/vmlinuz-2.6.31.6-rt19
#    APPEND root=LABEL=suse11.2 ro
#    INITRD /.boot/suse11.2/boot/initrd-2.6.31.6-rt19
Reply | Threaded
Open this post in threaded view
|

Re: syslinux.cfg

Leonid Isaev-3
In reply to this post by Ralf Mardorf-4
On Thu, Feb 16, 2017 at 11:20:58AM +0100, Ralf Mardorf wrote:
> If I want to maintain the other Linux in a systemd-nspawn container, I
> won't be able to upgrade the kernel anymore [1]. Is there a workaround
> for this, too? Perhaps I'm just using systemd-nspawn incorrect :D. I
> should read more about systemd-nspawn ;).

If your linux installation has a non-trivial fstab, for instance separate /var
or /var/log, I don't think a container would even boot because the devices
/dev/sdXY are not there. So, you'll need to find a way to properly mount all
necessary filesystems inside the container.

I have never used nspawn, but the above is possible with LXC because one can
write a container configuration file. If nspawn has a decent configuration
syntax, then good...

I also wouldn't make a habit of maintaining another linux distro like that
especially if it is systemd-based. Systemd may not run smth if it detect a
container virtualization.

Cheers,
--
Leonid Isaev