Quote Originally Posted by Cavsfan View Post
The 06_custom file is taken from the 40_custom file as follows and is saved as 06_custom so that it appears at the top of the grub menu:
The +3 is changed to +4 so that execution begins at the 4th line down instead of the 3rd and lets you list the operating systems in the output of grub-mkconfig.
Code:
#!/bin/sh
echo 1>&2 "Adding blah, blah, blah, and blah blah blah"
exec tail -n +4 $0
# 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.
And yes it absolutely is "maintenance free" once you set it; it's done.
If you change a UUID for anything, then it's up to you to update the 06_custom file.

Just like it's up to you to change the file if you add or remove an operating system.

But, other than what you do to your system it is totally maintenance free.
If you do not do any of the above, you never have to touch anything and your system will multi boot systems much better than without it.
If you have one Linux system, this is not worth your time but, if you have Windows 10 and several Linux systems it is well worth the effort.

All these systems symlink the kernels to the initrd and vmlinuz so they need no modification when a new kernel gets installed, which is the primary purpose I did this in the first place.

That is all except one - Fedora does not use or create symlinks for it's kernels. However, I created a script that does that for you..
I already posted the configuration of host erlangen: https://forums.opensuse.org/showthre...60#post2888160

yast2-partitioner and yast2-bootloader were used for setup relying on UUIDs only. Menu entries are for the root device (10_linux) and systems found by os-prober (30_os-prober). No tinkering required, even when randomly interchanging SATA plugs! See also: https://doc.opensuse.org/documentati...cha.grub2.html

Yesterday I added the following custom menus:
Code:
erlangen:~ # cat /etc/grub.d/40_custom
#!/bin/sh
exec tail -n +3 $0
# 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.

menuentry 'Tumbleweed /dev/sdb3' {
    search --fs-uuid --no-floppy --set=root 4A24-B10D 
    chainloader /EFI/opensuse/grubx64.efi
}

menuentry 'Xubuntu 18.04 /dev/sdb2' {
    search --fs-uuid --no-floppy --set=root 6DEC-64F9
    chainloader /EFI/ubuntu/grubx64.efi
}

menuentry 'Fedora 29 /dev/nvme0n1p1' {
    search --fs-uuid --no-floppy --set=root 6DEC-64F9
    chainloader /EFI/fedora/grubx64.efi
}
erlangen:~ #
These menus start the native boot loaders of the systems found by os-prober. They obviate entering uefi for selecting the boot device.

I maintain a Wiki for Ubuntu on how to do this with Legacy/MBR partitioned drives and haven't needed to make a change to it in at least 3 years.
It is used, I've been told my many people. If you google "how to have a custom grub" it will be near the top.

Not intending to brag, just state a fact. While I have to dispel your statement that it is not maintenance free in the long term, I'm certain that it is indeed just that.
I presume you refer to: https://help.ubuntu.com/community/Ma...tomGrub2Screen which is indeed helpful. You may want to be more concise and more precise, e.g.

menuentry 'Fedora 29 /dev/nvme0n1p1' {
search --fs-uuid --no-floppy --set=root 6DEC-64F9
chainloader /EFI/fedora/grubx64.efi
}
vs.
menuentry 'Windows 10' --class windows --class os $menuentry_id_option 'osprober-efi-688D-126B' {
insmod part_gpt
insmod fat
set root='hd2,gpt1'
search --no-floppy --fs-uuid --set=root 688D-126B
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
or the requirements for the EFI system partition (discussed above) and more prerequisites.