diff --git a/mxgrub/mxgrub b/mxgrub/mxgrub index 5c80f86..df0aeea 100755 --- a/mxgrub/mxgrub +++ b/mxgrub/mxgrub @@ -86,11 +86,13 @@ sub is_VX50 { return $data=~/VX50/; } +our $submenu="all-other-kernel"; + sub get_chosen { my $chosen; open my $p,'-|','grub-editenv','-','list' or die "$!\n"; while (<$p>) { - /^chosen=(.+)/ and return $1; + /^chosen=(?:$submenu>)?(.+)/ and return $1; } close $p or die "$!\n"; $? and exit 1; @@ -185,11 +187,15 @@ if [ -e /etc/local/USB.usb ]; then menuentry "mariuxUSB" --unrestricted { save_env chosen ; linux /boot/bzImage.x86_64 crashkernel=256M root=LABEL=rootusb ro ; initrd /boot/grub/initramfs.igz } else +menuentry "$MARIUX_DEFAULT" --unrestricted { set chosen="$submenu>$MARIUX_DEFAULT" ; save_env chosen ; linux /boot/bzImage.x86_64 crashkernel=256M root=LABEL=root ro console=ttyS1,115200n8 console=tty0 ; initrd /boot/grub/initramfs.igz } + +submenu "$submenu" --unrestricted { $kernellist - if [ \$chosen ]; then - set default=\$chosen - unset chosen # must be clear to get a clean value from menuentry - fi +} + if [ \$chosen ]; then + set default=\$chosen + unset chosen # must be clear to get a clean value from menuentry + fi fi EOF @@ -241,7 +247,7 @@ sub cmd_install { if ($label eq 'default') { sys('grub-editenv','-','set',"chosen=$MARIUX_DEFAULT"); } else { - sys('grub-editenv','-','set',"chosen=$label"); + sys('grub-editenv','-','set',"chosen=$submenu>$label"); } }