I’m doing some experimenting with dual boot. I have a test system with Debian 12 Plasma installed as the first OS. It was installed with a BTRFS partition and an EFI System partition. The efi partition was mounted at /boot/efi.
When I booted the EOS install USB I chose to install in an open part of the one nvme drive. So one ESP and 2 BTRFS partitions, one for each OS.
When I rebooted after install, I came to the grub menu with only EOS as a choice and it booted fine. I uncommented the GRUB_DISABLE_OS_PROBER=false
Then I ran grub-mkconfig. However, no changes when I rebooted. Still only one choice.
I can use the BIOS F11 option key and can select a boot entry called Debian and boot back into Debian 12 just as before.
I thought maybe I needed to make the same GRUB_DISABLE_OS_PROBER change there and update-grub. However same results. Normal boot has no additionial choices in the grub menu.
Thanks. FYI in the listing below, the NVME is the only drive of concern. sda is a common data drive. Also the data below is taken from the Debian system as it’s the one with email capability. The EOS has no DE yet as I want to fix the setup prior to installing the Hyprland WM. If you absolutely need it from the EOS side I’ll have to setup SSH on the EOS system so I can get the data back on the Debian system for posting.
jim@den-pc:~$ lsblk -l
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 931.5G 0 disk
sda1 8:1 0 465.8G 0 part /vm-storage
sda2 8:2 0 465.8G 0 part /video-music
nvme0n1 259:0 0 931.5G 0 disk
nvme0n1p1 259:1 0 487M 0 part /boot/efi
nvme0n1p2 259:2 0 443.6G 0 part /home
/
nvme0n1p3 259:3 0 487.4G 0 part
jim@den-pc:~$ sudo fdisk -l
[sudo] password for jim:
Disk /dev/nvme0n1: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Samsung SSD 980 1TB
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 16384 bytes / 131072 bytes
Disklabel type: gpt
Disk identifier: 5D4FAC43-83D8-4C15-A8DA-4B0831D0FAFA
Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 999423 997376 487M EFI System
/dev/nvme0n1p2 999424 931368903 930369480 443.6G Linux filesystem
/dev/nvme0n1p3 931368904 1953525134 1022156231 487.4G Linux filesystem
Partition 3 does not start on physical sector boundary.
Disk /dev/sda: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Samsung SSD 860
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 3A91C309-A0F6-42DC-8FFA-2761D6972C65
Device Start End Sectors Size Type
/dev/sda1 2048 976764927 976762880 465.8G Linux filesystem
/dev/sda2 976764928 1953523711 976758784 465.8G Linux filesystem
sudo cat /boot/grub/grub.cfg
#
# 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 ###
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
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="0"
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
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod btrfs
search --no-floppy --fs-uuid --set=root c4570a04-2f54-4bdf-b042-a0b24c34381a
font="/timeshift-btrfs/snapshots/2023-07-12_10-47-25/@/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=en_US
insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
set timeout=30
else
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
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_gpt
insmod btrfs
search --no-floppy --fs-uuid --set=root c4570a04-2f54-4bdf-b042-a0b24c34381a
insmod png
if background_image /timeshift-btrfs/snapshots/2023-07-12_10-47-25/@/usr/share/desktop-base/emerald-theme/grub/grub-16x9.png; then
set color_normal=white/black
set color_highlight=black/white
else
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
set gfxpayload="${1}"
}
set linux_gfx_mode=
export linux_gfx_mode
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-c4570a04-2f54-4bdf-b042-a0b24c34381a' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod btrfs
search --no-floppy --fs-uuid --set=root c4570a04-2f54-4bdf-b042-a0b24c34381a
echo 'Loading Linux 6.1.0-10-amd64 ...'
linux /timeshift-btrfs/snapshots/2023-07-12_10-47-25/@/boot/vmlinuz-6.1.0-10-amd64 root=UUID=c4570a04-2f54-4bdf-b042-a0b24c34381a ro rootflags=subvol=timeshift-btrfs/snapshots/2023-07-12_10-47-25/@ quiet
echo 'Loading initial ramdisk ...'
initrd /timeshift-btrfs/snapshots/2023-07-12_10-47-25/@/boot/initrd.img-6.1.0-10-amd64
}
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-c4570a04-2f54-4bdf-b042-a0b24c34381a' {
minux-6.1.0-10-amd64-advanced-c4570a04-2f54-4bdf-b042-a0b24c34381a' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod btrfs
search --no-floppy --fs-uuid --set=root c4570a04-2f54-4bdf-b042-a0b24c34381a
echo 'Loading Linux 6.1.0-10-amd64 ...'
linux /timeshift-btrfs/snapshots/2023-07-12_10-47-25/@/boot/vmlinuz-6.1.0-10-amd64 root=UUID=c4570a04-2f54-4bdf-b042-a0b24c34381a ro rootflags=subvol=timeshift-btrfs/snapshots/2023-07-12_10-47-25/@ quiet
echo 'Loading initial ramdisk ...'
initrd /timeshift-btrfs/snapshots/2023-07-12_10-47-25/@/boot/initrd.img-6.1.0-10-amd64
}
menuentry 'Debian GNU/Linux, with Linux 6.1.0-10-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.1.0-10-amd64-recovery-c4570a04-2f54-4bdf-b042-a0b24c34381a' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod btrfs
search --no-floppy --fs-uuid --set=root c4570a04-2f54-4bdf-b042-a0b24c34381a
echo 'Loading Linux 6.1.0-10-amd64 ...'
linux /timeshift-btrfs/snapshots/2023-07-12_10-47-25/@/boot/vmlinuz-6.1.0-10-amd64 root=UUID=c4570a04-2f54-4bdf-b042-a0b24c34381a ro single rootflags=subvol=timeshift-btrfs/snapshots/2023-07-12_10-47-25/@
echo 'Loading initial ramdisk ...'
initrd /timeshift-btrfs/snapshots/2023-07-12_10-47-25/@/boot/initrd.img-6.1.0-10-amd64
}
menuentry 'Debian GNU/Linux, with Linux 6.1.0-9-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.1.0-9-amd64-advanced-c4570a04-2f54-4bdf-b042-a0b24c34381a' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod btrfs
search --no-floppy --fs-uuid --set=root c4570a04-2f54-4bdf-b042-a0b24c34381a
echo 'Loading Linux 6.1.0-9-amd64 ...'
linux /timeshift-btrfs/snapshots/2023-07-12_10-47-25/@/boot/vmlinuz-6.1.0-9-amd64 root=UUID=c4570a04-2f54-4bdf-b042-a0b24c34381a ro rootflags=subvol=timeshift-btrfs/snapshots/2023-07-12_10-47-25/@ quiet
echo 'Loading initial ramdisk ...'
initrd /timeshift-btrfs/snapshots/2023-07-12_10-47-25/@/boot/initrd.img-6.1.0-9-amd64
}
menuentry 'Debian GNU/Linux, with Linux 6.1.0-9-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.1.0-9-amd64-recovery-c4570a04-2f54-4bdf-b042-a0b24c34381a' {
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod btrfs
search --no-floppy --fs-uuid --set=root c4570a04-2f54-4bdf-b042-a0b24c34381a
echo 'Loading Linux 6.1.0-9-amd64 ...'
linux /timeshift-btrfs/snapshots/2023-07-12_10-47-25/@/boot/vmlinuz-6.1.0-9-amd64 root=UUID=c4570a04-2f54-4bdf-b042-a0b24c34381a ro single rootflags=subvol=timeshift-btrfs/snapshots/2023-07-12_10-47-25/@
echo 'Loading initial ramdisk ...'
initrd /timeshift-btrfs/snapshots/2023-07-12_10-47-25/@/boot/initrd.img-6.1.0-9-amd64
}
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'EndeavourOS Linux (rolling) (on /dev/nvme0n1p3)' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-8a8a471d-2f28-43d6-85f4-57eb03c64872' {
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 8a8a471d-2f28-43d6-85f4-57eb03c64872
linux /boot/vmlinuz-linux root=UUID=8a8a471d-2f28-43d6-85f4-57eb03c64872 rw nowatchdog nvme_load=YES loglevel=3
initrd /boot/intel-ucode.img /boot/initramfs-linux.img
}
submenu 'Advanced options for EndeavourOS Linux (rolling) (on /dev/nvme0n1p3)' $menuentry_id_option 'osprober-gnulinux-advanced-8a8a471d-2f28-43d6-85f4-57eb03c64872' {
menuentry 'EndeavourOS Linux (on /dev/nvme0n1p3)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-linux--8a8a471d-2f28-43d6-85f4-57eb03c64872' {
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 8a8a471d-2f28-43d6-85f4-57eb03c64872
linux /boot/vmlinuz-linux root=UUID=8a8a471d-2f28-43d6-85f4-57eb03c64872 rw nowatchdog nvme_load=YES loglevel=3
initrd /boot/intel-ucode.img /boot/initramfs-linux.img
}
menuentry 'EndeavourOS Linux, with Linux linux (on /dev/nvme0n1p3)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-linux--8a8a471d-2f28-43d6-85f4-57eb03c64872' {
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 8a8a471d-2f28-43d6-85f4-57eb03c64872
linux /boot/vmlinuz-linux root=UUID=8a8a471d-2f28-43d6-85f4-57eb03c64872 rw nowatchdog nvme_load=YES loglevel=3
initrd /boot/intel-ucode.img /boot/initramfs-linux.img
}
menuentry 'EndeavourOS Linux, with Linux linux (fallback initramfs) (on /dev/nvme0n1p3)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-linux--8a8a471d-2f28-43d6-85f4-57eb03c64872' {
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 8a8a471d-2f28-43d6-85f4-57eb03c64872
linux /boot/vmlinuz-linux root=UUID=8a8a471d-2f28-43d6-85f4-57eb03c64872 rw nowatchdog nvme_load=YES loglevel=3
initrd /boot/intel-ucode.img /boot/initramfs-linux-fallback.img
}
}
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
fwsetup
}
### END /etc/grub.d/30_uefi-firmware ###
### BEGIN /etc/grub.d/35_fwupd ###
### END /etc/grub.d/35_fwupd ###
### 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/41_snapshots-btrfs ###
if [ ! -e "${prefix}/grub-btrfs.cfg" ]; then
echo ""
else
submenu 'Debian GNU/Linux snapshots' {
configfile "${prefix}/grub-btrfs.cfg"
}
fi
### END /etc/grub.d/41_snapshots-btrfs ###enuentry 'Debian GNU/Linux, with Linux 6.1.0-10-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnul
sudo cat /boot/grub/grub.cfg
#
# 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="0"
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
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 8a8a471d-2f28-43d6-85f4-57eb03c64872
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=en_US
insmod gettext
fi
terminal_input console
terminal_output gfxterm
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 8a8a471d-2f28-43d6-85f4-57eb03c64872
insmod png
background_image -m stretch /usr/share/endeavouros/splash.png
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/10_linux ###
menuentry 'EndeavourOS Linux' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-8a8a471d-2f28-43d6-85f4-57eb03c64872' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 8a8a471d-2f28-43d6-85f4-57eb03c64872
echo 'Loading Linux linux ...'
linux /boot/vmlinuz-linux root=UUID=8a8a471d-2f28-43d6-85f4-57eb03c64872 rw nowatchdog nvme_load=YES loglevel=3
echo 'Loading initial ramdisk ...'
initrd /boot/intel-ucode.img /boot/initramfs-linux.img
}
submenu 'Advanced options for EndeavourOS Linux' $menuentry_id_option 'gnulinux-advanced-8a8a471d-2f28-43d6-85f4-57eb03c64872' {
menuentry 'EndeavourOS Linux, with Linux linux' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-8a8a471d-2f28-43d6-85f4-57eb03c64872' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 8a8a471d-2f28-43d6-85f4-57eb03c64872
echo 'Loading Linux linux ...'
linux /boot/vmlinuz-linux root=UUID=8a8a471d-2f28-43d6-85f4-57eb03c64872 rw nowatchdog nvme_load=YES loglevel=3
echo 'Loading initial ramdisk ...'
initrd /boot/intel-ucode.img /boot/initramfs-linux.img
}
menuentry 'EndeavourOS Linux, with Linux linux (fallback initramfs)' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-8a8a471d-2f28-43d6-85f4-57eb03c64872' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 8a8a471d-2f28-43d6-85f4-57eb03c64872
echo 'Loading Linux linux ...'
linux /boot/vmlinuz-linux root=UUID=8a8a471d-2f28-43d6-85f4-57eb03c64872 rw nowatchdog nvme_load=YES loglevel=3
echo 'Loading initial ramdisk ...'
initrd /boot/intel-ucode.img /boot/initramfs-linux-fallback.img
}
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/25_bli ###
if [ "$grub_platform" = "efi" ]; then
insmod bli
fi
### END /etc/grub.d/25_bli ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
if [ "$grub_platform" = "efi" ]; then
fwsetup --is-supported
if [ "$?" = 0 ]; then
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
fwsetup
}
fi
fi
### END /etc/grub.d/30_uefi-firmware ###
### 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 ###
I just installed Debian 12 and then i installed endeavourOS alongside. It doesn’t picke up endeavourOS so you have to go into grub on debian and uncomment GRUB_DISABLE_OS_PROBER=false and run the update grub command. Then you have debian booting with endeavourOS in the menu.
Edit: You can now do the same on endeavourOS after booting into it which will give you debain in the boot menu on endeavourOS. That’s only going to allow you to boot directly from endeavourOS to debian. The issue is because it’s on the same drive it’s going to want to boot debian as the official boot and then you can sleect endeavourOS from the menu same as going from endeavourOS to debian. I don’t think you can make it boot endeavourOS as the main install from the start unless it is installed first. Also I don’t think it really matters. As long as you can boot to both OS one way or another!
That didn’t work for me. However, I didn’t choose the Along side option. Since I had already resized the 1TB partition by 500GB, I chose the Second option which I think was called reuse a partition? Anyway I have used F11 to boot into the Debian partition and then did as you described about the os prober but no changes. Maybe reinstalling grub from the Debian side with the os prober line uncommented??
Not sure why it didn’t work I would have to try it that way. Choosing to reuse a partition shouldn’t make any difference in my mind because installing alongside just shrinks the existing partition to whatever you want to set it at. I don’t see that as any difference. If you click on the partition it automatically divides it in half. You can adjust the size to whatever you want. So I’m not sure why it didn’t work for you?
Edit: I have 3 drives on my system so i just installed Debian on the second m.2 drive and endeavourOS alongside on the same drive.
Currently, all my systems are on EXT4, each with it’s own ESP.
However, I do remember, when I was trying to set up dual/multi -boot systems on Btrfs quite some time back, that the the “regular” os-prober didn’t pick up other systems on Btrfs. I had to use a patched version for it to be able to detect the other systems.
@jfabernathy
I spoke too quickly. After a reboot and not using F11 to make a selection it does boot endeavourOS. My first m.2 drive got bumped out of UEFI so now i have to figure out haow to get it back. This is what happens a lot on UEFI almost like doing a Bios update where it gets bumped out and isn’t showing in the UEFI settings screen for boot or using F11. I’ll see if i can get it back without haveing to wipe out this drive.
I had to end up arch-chroot and reinstall grub and update grub in order to get my boot back in UEFI for the first m.2 drive that has EOS Kde on it.
Edit: That was after i removed the other installs from the second m.2 drive with gparted. So as I say somehow UEFI loses the entry and i can’t get it back sometimes.
Edit: So it’s kind of the same issue to do with UEFI and grub install?
So the reboot worked. My default grub shows Debian 12 as the default now but also includes EOS on it’s partition, and the timeshift snapshots for Debian.
To test it all out I chose to boot into EOS and noticed that I had installed it with EXT4 and that is wrong for me for this test. Not sure if that was part of the problem with not finding Debian 12 which is BTRFS.
Anyway not I have to reinstall EOS again with btrfs and probably redo all of this grub reinstall on the Debian Side again.
As a noob I was considering this, to have a very stable granpa to fall back on in case any update to EOS broke my system, so I had something else to quickly switch to. But now with all of this I think it would be way over my pay grade
When I really don’t want to screw things up, I switch out my drive to test what I want to do. VMs are still too risky for dual boot testing in my mind. My test system is a NUC with nvme drive so it’s easy to put in a testing spare. Once I’ve doumented how to do this I can go back to my original drive.
I don’t think having ext4 would make a difference. I might try both again your way but in all likely hood it will destroy my other drive booting …again!
Ext4 would probably make a difference from the perspective that osprober will by default detect other ext4 installations so eos should see debian and vice versa without installing augmented software to detect the other btrfs install.
I’m not sure how swapping boot disks as the op seems to be doing will affect the EFI entries, probably bios specific to some degree.
Similarly I don’t know what the venhw entries for ubuntu and neon are for, maybe they mention the previously installed disk?
Really should do a find /efi /boot/efi to see which efi entries exist. If the efi files exist on the efi partition then they can be reconstructed using
# if existing index 000n then delete using efibootmgr -B -b 000n
# updated and corrected:
efibootmgr -c -d /dev/nvme0n1 -p EFIpartNUM --index 000n -L name -l '\EFI\PATH\TO\EFIprog.EFI
if one goes missing. You can try adding an extra but different name referencing an existing .efi file and the look at efibootmgr to see how it compares. The new name should be bootable from the efi selection menu.
You could copy the Advanced grub submenu from install A to /boot/grub/custom.cfg on install B, and vice versa.
This should give you boot of the other side irrespective of which grub is currently primary efi boot.
This will work fine as long as the reverenced Linux kernel and initrds are generic names, not version specific names as those would get out of sync on update and would need a sync script.