As Fedora 32 uses Boot Loader Specification (https://fedoraproject.org/wiki/Changes/BootLoaderSpecByDefault), linux-boot-prober on Ubuntu 20.04 finds Fedora 32 kernels via the 90fallback script (/usr/lib/linux-boot-probes/mounted/90fallback), which just looks for kernel files on the filesystem:
$ sudo linux-boot-prober /dev/sde5 /dev/sde5:/dev/sde2::/boot/vmlinuz-0-rescue-7e584188f72b459891f83e6cd7f7b49b:/boot/initramfs-0-rescue-7e584188f72b459891f83e6cd7f7b49b.img:root=/dev/sde5 /dev/sde5:/dev/sde2::/boot/vmlinuz-5.6.11-300.fc32.x86_64:/boot/initramfs-5.6.11-300.fc32.x86_64.img:root=/dev/sde5 /dev/sde5:/dev/sde2::/boot/vmlinuz-5.6.6-300.fc32.x86_64:/boot/initramfs-5.6.6-300.fc32.x86_64.img:root=/dev/sde5 As these are found in alphabetical order, the rescue kernel comes first, and is used for the main "Fedora 32 (Workstation Edition)" entry. Then each of the three kernels found by 90fallback gets its own menu entry in the "Advanced options for Fedora 32" submenu. The Fedora entries in Fedora's own grub menu are created by the `blscfg` command. The blscfg module (https://src.fedoraproject.org/rpms/grub2/blob/master/f/0027-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch) reads files in /boot/loader/entries, and sorts the kernels properly by version. As Ubuntu 20.04 doesn't use BLS, it creates a menu entry for each Ubuntu kernel in the Ubuntu grub config, which Fedora can find (via the 40grub2 script) when it updates its own Fedora grub config. Presumably neither grub nor os-prober on Debian/Ubuntu have BLS support, so they don't handle the Fedora BLS files either (a) when grub runs, or (b) when update-grub updates the Ubuntu grub config. So the only way Fedora kernels will appear in the Ubuntu grub menu is via that 90fallback script, which puts them in alphabetical order. -- Richard Fearn richardfe...@gmail.com