I have the same problem on Manjaro Linux. Deleting the placeholders from submenues, as Daniel had recommended, doesn't help. Moreover when the placeholders are within submenues in FULL (not customized) configuration, it doesn't make any trouble in saving the configuration. Problems start when I want to delete this submenu items from the main boot menu.
Here is my grub.cfg.new file.
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="${saved_entry}"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
set menu_color_normal=light-gray/black
set menu_color_highlight=green/black
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod ext2
set root='hd0,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt3' --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3 9bda84fb-5b33-4f8d-a574-240ade54186c
else
search --no-floppy --fs-uuid --set=root 9bda84fb-5b33-4f8d-a574-240ade54186c
fi
font="/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=uk_UA
insmod gettext
fi
terminal_input console
terminal_output gfxterm
insmod part_gpt
insmod ext2
set root='hd0,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt3' --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3 9bda84fb-5b33-4f8d-a574-240ade54186c
else
search --no-floppy --fs-uuid --set=root 9bda84fb-5b33-4f8d-a574-240ade54186c
fi
insmod gfxmenu
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_12.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_14.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_16.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_24.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_48.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_bold_16.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/dejavu_sans_mono_12.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-12.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-14.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-16.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-18.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-b12.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-b14.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-b16.pf2
loadfont ($root)/usr/share/grub/themes/manjaro/terminus-b18.pf2
insmod png
set theme=($root)/usr/share/grub/themes/manjaro/theme.txt
export theme
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/01_menu_auto_hide ###
if [ "${boot_success}" = "1" -o "${boot_indeterminate}" = "1" ]; then
set last_boot_ok=1
else
set last_boot_ok=0
fi
# Reset boot_indeterminate after a successful boot
if [ "${boot_success}" = "1" ] ; then
set boot_indeterminate=0
# Avoid boot_indeterminate causing the menu to be hidden more then once
elif [ "${boot_indeterminate}" = "1" ]; then
set boot_indeterminate=2
fi
set boot_success=0
save_env boot_success boot_indeterminate
if [ x$feature_timeout_style = xy ] ; then
if [ "${menu_show_once}" ]; then
unset menu_show_once
save_env menu_show_once
set timeout_style=menu
set timeout=60
elif [ "${menu_auto_hide}" -a "${last_boot_ok}" = "1" ]; then
set orig_timeout_style=${timeout_style}
set orig_timeout=${timeout}
if [ "${fastboot}" = "1" ]; then
# timeout_style=menu + timeout=0 avoids the countdown code keypress check
set timeout_style=menu
set timeout=0
else
set timeout_style=hidden
set timeout=1
fi
fi
fi
### END /etc/grub.d/01_menu_auto_hide ###
### BEGIN /etc/grub.d/10_linux_proxy ###
menuentry "Manjaro Linux" --class manjaro --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-9bda84fb-5b33-4f8d-a574-240ade54186c' {
savedefault
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt3' --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3 9bda84fb-5b33-4f8d-a574-240ade54186c
else
search --no-floppy --fs-uuid --set=root 9bda84fb-5b33-4f8d-a574-240ade54186c
fi
linux /boot/vmlinuz-4.19-x86_64 root=UUID=9bda84fb-5b33-4f8d-a574-240ade54186c rw quiet resume=UUID=154f91a7-0e28-42f4-a498-478a390ebead
initrd /boot/intel-ucode.img /boot/initramfs-4.19-x86_64.img
}
### END /etc/grub.d/10_linux_proxy ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/30_os-prober_proxy ###
# Other OS found, undo autohiding of menu unless menu_auto_hide=2
if [ "${orig_timeout_style}" -a "${menu_auto_hide}" != "2" ]; then
set timeout_style=${orig_timeout_style}
set timeout=${orig_timeout}
fi
menuentry "Windows Boot Manager (on /dev/sda1)" --class windows --class os $menuentry_id_option 'osprober-efi-50EE-A38C' {
savedefault
insmod part_gpt
insmod fat
set root='hd0,gpt1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt1' --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 50EE-A38C
else
search --no-floppy --fs-uuid --set=root 50EE-A38C
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
menuentry "Linux Mint 19.1 Tessa (19.1) (on /dev/sda6)" --class linuxmint --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-273e6d8a-820e-4944-8c32-291be1db7d8a' {
savedefault
insmod part_gpt
insmod ext2
set root='hd0,gpt6'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//disk@0,gpt6' --hint-bios=hd0,gpt6 --hint-efi=hd0,gpt6 --hint-baremetal=ahci0,gpt6 273e6d8a-820e-4944-8c32-291be1db7d8a
else
search --no-floppy --fs-uuid --set=root 273e6d8a-820e-4944-8c32-291be1db7d8a
fi
linux /boot/vmlinuz-4.15.0-43-generic root=UUID=273e6d8a-820e-4944-8c32-291be1db7d8a ro quiet splash $vt_handoff
initrd /boot/initrd.img-4.15.0-43-generic
}
### END /etc/grub.d/30_os-prober_proxy ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
### BEGIN /etc/grub.d/42_grub-customizer_menu_color_helper ###
### END /etc/grub.d/42_grub-customizer_menu_color_helper ###
### BEGIN /etc/grub.d/60_memtest86+_proxy ###
if [ "${grub_platform}" == "pc" ]; then
fi
### END /etc/grub.d/60_memtest86+_proxy ###
### BEGIN /etc/grub.d/61_linux_proxy ###
### END /etc/grub.d/61_linux_proxy ###
### BEGIN /etc/grub.d/62_os-prober_proxy ###
### END /etc/grub.d/62_os-prober_proxy ###
I have the same problem on Manjaro Linux. Deleting the placeholders from submenues, as Daniel had recommended, doesn't help. Moreover when the placeholders are within submenues in FULL (not customized) configuration, it doesn't make any trouble in saving the configuration. Problems start when I want to delete this submenu items from the main boot menu.
Here is my grub.cfg.new file.
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub. d/00_header ### "${next_ entry}" "${saved_ entry}"
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default=
set next_entry=
save_env next_entry
set boot_once=true
else
set default=
fi
if [ x"${feature_ menuentry_ id}" = xy ]; then id_option= "--id" id_option= ""
menuentry_
else
menuentry_
fi
export menuentry_id_option
if [ "${prev_ saved_entry} " ]; then "${prev_ saved_entry} "
set saved_entry=
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault { entry=" ${chosen} "
if [ -z "${boot_once}" ]; then
saved_
save_env saved_entry
fi
}
function load_video { all_video_ module = xy ]; then
if [ x$feature_
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
set menu_color_ normal= light-gray/ black highlight= green/black
set menu_color_
if [ x$feature_ default_ font_path = xy ] ; then platform_ search_ hint = xy ]; then ieee1275= 'ieee1275/ /disk@0, gpt3' --hint- bios=hd0, gpt3 --hint-efi=hd0,gpt3 --hint- baremetal= ahci0,gpt3 9bda84fb- 5b33-4f8d- a574-240ade5418 6c 5b33-4f8d- a574-240ade5418 6c "/usr/share/ grub/unicode. pf2"
font=unicode
else
insmod part_gpt
insmod ext2
set root='hd0,gpt3'
if [ x$feature_
search --no-floppy --fs-uuid --set=root --hint-
else
search --no-floppy --fs-uuid --set=root 9bda84fb-
fi
font=
fi
if loadfont $font ; then dir=$prefix/ locale platform_ search_ hint = xy ]; then ieee1275= 'ieee1275/ /disk@0, gpt3' --hint- bios=hd0, gpt3 --hint-efi=hd0,gpt3 --hint- baremetal= ahci0,gpt3 9bda84fb- 5b33-4f8d- a574-240ade5418 6c 5b33-4f8d- a574-240ade5418 6c /usr/share/ grub/themes/ manjaro/ dejavu_ sans_12. pf2 /usr/share/ grub/themes/ manjaro/ dejavu_ sans_14. pf2 /usr/share/ grub/themes/ manjaro/ dejavu_ sans_16. pf2 /usr/share/ grub/themes/ manjaro/ dejavu_ sans_24. pf2 /usr/share/ grub/themes/ manjaro/ dejavu_ sans_48. pf2 /usr/share/ grub/themes/ manjaro/ dejavu_ sans_bold_ 16.pf2 /usr/share/ grub/themes/ manjaro/ dejavu_ sans_mono_ 12.pf2 /usr/share/ grub/themes/ manjaro/ terminus- 12.pf2 /usr/share/ grub/themes/ manjaro/ terminus- 14.pf2 /usr/share/ grub/themes/ manjaro/ terminus- 16.pf2 /usr/share/ grub/themes/ manjaro/ terminus- 18.pf2 /usr/share/ grub/themes/ manjaro/ terminus- b12.pf2 /usr/share/ grub/themes/ manjaro/ terminus- b14.pf2 /usr/share/ grub/themes/ manjaro/ terminus- b16.pf2 /usr/share/ grub/themes/ manjaro/ terminus- b18.pf2 $root)/ usr/share/ grub/themes/ manjaro/ theme.txt timeout_ style = xy ] ; then d/00_header ###
set gfxmode=auto
load_video
insmod gfxterm
set locale_
set lang=uk_UA
insmod gettext
fi
terminal_input console
terminal_output gfxterm
insmod part_gpt
insmod ext2
set root='hd0,gpt3'
if [ x$feature_
search --no-floppy --fs-uuid --set=root --hint-
else
search --no-floppy --fs-uuid --set=root 9bda84fb-
fi
insmod gfxmenu
loadfont ($root)
loadfont ($root)
loadfont ($root)
loadfont ($root)
loadfont ($root)
loadfont ($root)
loadfont ($root)
loadfont ($root)
loadfont ($root)
loadfont ($root)
loadfont ($root)
loadfont ($root)
loadfont ($root)
loadfont ($root)
loadfont ($root)
insmod png
set theme=(
export theme
if [ x$feature_
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
### END /etc/grub.
### BEGIN /etc/grub. d/01_menu_ auto_hide ### indeterminate} " = "1" ]; then
if [ "${boot_success}" = "1" -o "${boot_
set last_boot_ok=1
else
set last_boot_ok=0
fi
# Reset boot_indeterminate after a successful boot ate=0 indeterminate} " = "1" ]; then ate=2
if [ "${boot_success}" = "1" ] ; then
set boot_indetermin
# Avoid boot_indeterminate causing the menu to be hidden more then once
elif [ "${boot_
set boot_indetermin
fi
set boot_success=0
save_env boot_success boot_indeterminate
if [ x$feature_ timeout_ style = xy ] ; then style=$ {timeout_ style} ${timeout} style=hidden d/01_menu_ auto_hide ###
if [ "${menu_show_once}" ]; then
unset menu_show_once
save_env menu_show_once
set timeout_style=menu
set timeout=60
elif [ "${menu_auto_hide}" -a "${last_boot_ok}" = "1" ]; then
set orig_timeout_
set orig_timeout=
if [ "${fastboot}" = "1" ]; then
# timeout_style=menu + timeout=0 avoids the countdown code keypress check
set timeout_style=menu
set timeout=0
else
set timeout_
set timeout=1
fi
fi
fi
### END /etc/grub.
### BEGIN /etc/grub. d/10_linux_ proxy ###
menuentry "Manjaro Linux" --class manjaro --class gnu-linux --class gnu --class os $menuentry_ id_option 'gnulinux- simple- 9bda84fb- 5b33-4f8d- a574-240ade5418 6c' { platform_ search_ hint = xy ]; then ieee1275= 'ieee1275/ /disk@0, gpt3' --hint- bios=hd0, gpt3 --hint-efi=hd0,gpt3 --hint- baremetal= ahci0,gpt3 9bda84fb- 5b33-4f8d- a574-240ade5418 6c 5b33-4f8d- a574-240ade5418 6c 4.19-x86_ 64 root=UUID= 9bda84fb- 5b33-4f8d- a574-240ade5418 6c rw quiet resume= UUID=154f91a7- 0e28-42f4- a498-478a390ebe ad ucode.img /boot/initramfs -4.19-x86_ 64.img d/10_linux_ proxy ###
savedefault
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
set root='hd0,gpt3'
if [ x$feature_
search --no-floppy --fs-uuid --set=root --hint-
else
search --no-floppy --fs-uuid --set=root 9bda84fb-
fi
linux /boot/vmlinuz-
initrd /boot/intel-
}
### END /etc/grub.
### BEGIN /etc/grub. d/20_linux_ xen ### d/20_linux_ xen ###
### END /etc/grub.
### BEGIN /etc/grub. d/30_os- prober_ proxy ###
# Other OS found, undo autohiding of menu unless menu_auto_hide=2 timeout_ style}" -a "${menu_auto_hide}" != "2" ]; then style=$ {orig_timeout_ style} ${orig_ timeout} id_option 'osprober- efi-50EE- A38C' { platform_ search_ hint = xy ]; then ieee1275= 'ieee1275/ /disk@0, gpt1' --hint- bios=hd0, gpt1 --hint-efi=hd0,gpt1 --hint- baremetal= ahci0,gpt1 50EE-A38C Boot/bootmgfw. efi id_option 'osprober- gnulinux- simple- 273e6d8a- 820e-4944- 8c32-291be1db7d 8a' { platform_ search_ hint = xy ]; then ieee1275= 'ieee1275/ /disk@0, gpt6' --hint- bios=hd0, gpt6 --hint-efi=hd0,gpt6 --hint- baremetal= ahci0,gpt6 273e6d8a- 820e-4944- 8c32-291be1db7d 8a 820e-4944- 8c32-291be1db7d 8a 4.15.0- 43-generic root=UUID= 273e6d8a- 820e-4944- 8c32-291be1db7d 8a ro quiet splash $vt_handoff img-4.15. 0-43-generic d/30_os- prober_ proxy ###
if [ "${orig_
set timeout_
set timeout=
fi
menuentry "Windows Boot Manager (on /dev/sda1)" --class windows --class os $menuentry_
savedefault
insmod part_gpt
insmod fat
set root='hd0,gpt1'
if [ x$feature_
search --no-floppy --fs-uuid --set=root --hint-
else
search --no-floppy --fs-uuid --set=root 50EE-A38C
fi
chainloader /EFI/Microsoft/
}
menuentry "Linux Mint 19.1 Tessa (19.1) (on /dev/sda6)" --class linuxmint --class gnu-linux --class gnu --class os $menuentry_
savedefault
insmod part_gpt
insmod ext2
set root='hd0,gpt6'
if [ x$feature_
search --no-floppy --fs-uuid --set=root --hint-
else
search --no-floppy --fs-uuid --set=root 273e6d8a-
fi
linux /boot/vmlinuz-
initrd /boot/initrd.
}
### END /etc/grub.
### BEGIN /etc/grub. d/40_custom ### d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.
### BEGIN /etc/grub. d/41_custom ### directory} /custom. cfg ]; then directory} /custom. cfg directory} " -a -f $prefix/custom.cfg ]; then d/41_custom ###
if [ -f ${config_
source ${config_
elif [ -z "${config_
source $prefix/custom.cfg;
fi
### END /etc/grub.
### BEGIN /etc/grub. d/42_grub- customizer_ menu_color_ helper ### d/42_grub- customizer_ menu_color_ helper ###
### END /etc/grub.
### BEGIN /etc/grub. d/60_memtest86+ _proxy ###
if [ "${grub_platform}" == "pc" ]; then
fi d/60_memtest86+ _proxy ###
### END /etc/grub.
### BEGIN /etc/grub. d/61_linux_ proxy ### d/61_linux_ proxy ###
### END /etc/grub.
### BEGIN /etc/grub. d/62_os- prober_ proxy ### d/62_os- prober_ proxy ###
### END /etc/grub.