I have ubuntu 20.04.x on /dev/sda2, have grub installed there, gentoo on /dev/sda4, kernel in /boot/vmlinuz there.
During the run of update-grub, gentoo is found twice. Which is due to lines 15,16 in /usr/lib/linux-boot-probes/mounted/90fallback -the most recent version available at- https://salsa.debian.org/installer-team/os-prober/-/blob/master/linux-boot-probes/mounted/common/90fallback#L15 for kernpat in /vmlinuz /vmlinux /boot/vmlinuz /boot/vmlinux "/boot/vmlinuz*" \ "/boot/vmlinux*" "/vmlinuz*" "/vmlinux*" "/kernel-*" "/boot/kernel-*"; do I see two possible ways to fix this 1. "add four question signs on the proper places" for kernpat in /vmlinuz /vmlinux /boot/vmlinuz /boot/vmlinux "/boot/vmlinuz?*" \ "/boot/vmlinux?*" "/vmlinuz?*" "/vmlinux?*" "/kernel-*" "/boot/kernel-*"; do this leaves the original spirit in which the program was written intact, finalizes the probable intention of the author or authors of this part of program and is kind of educational at the same time; the program size grows by 4 bytes 2. "fully rely on asterisks" for kernpat in "/boot/vmlinuz*" \ "/boot/vmlinux*" "/vmlinuz*" "/vmlinux*" "/kernel-*" "/boot/kernel-*"; do this achieves the same functional result as 1. The historical locations of kernel in the filesystem - /vmlinuz, /vmlinux - are somehow lost with this fix, the script length is reduced by some 20 or so bytes with the above change. 3. "fully rely on asterisks and join the two lines" for kernpat in "/boot/vmlinuz*" "/boot/vmlinux*" "/vmlinuz*" "/vmlinux*" "/kernel-*" "/boot/kernel-*"; do this shifts the line numbering in the rest of the program by one in addition to what is written in 2 4. "rebalance the lines and put the asterisk variant in the order I prefer" for kernpat in "/vmlinux*" "/vmlinuz*" "/boot/vmlinux*" "/boot/vmlinuz*" \ "/kernel-*" "/boot/kernel-*"; do 4 seems to be the best option.