Dual boot Debian 12 and EOS Plasma

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.

Any Idea on how to proceed??

1 Like

Provide us with the output of lsblk -l, fdisk -l, efibootmgr and cat /boot/grub/grub.cfg

1 Like

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
1 Like

Okay, I can see some differneces so here is the data from EOS system. This time efibootmgr data is included.

[jim@nuc-hypr ~]$ 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 
sda2        8:2    0 465.8G  0 part 
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 
nvme0n1p3 259:3    0 487.4G  0 part /
jim@nuc-hypr ~]$ sudo fdisk -l
[sudo] password for jim: 
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


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.
[jim@nuc-hypr ~]$ efibootmgr
BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000,0002,0001,0003
Boot0000* endeavouros   HD(1,GPT,ff6e03cd-f092-4dc7-83bf-0783f9bb245a,0x800,0xf3800)/File(\EFI\ENDEAVOUROS\GRUBX64.EFI)
Boot0001* ubuntu        VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)
Boot0002* debian        HD(1,GPT,ff6e03cd-f092-4dc7-83bf-0783f9bb245a,0x800,0xf3800)/File(\EFI\DEBIAN\SHIMX64.EFI)
Boot0003* neon  VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)
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. :man_shrugging: 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??

1 Like

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? :thinking:

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.

Here is the package in AUR if you want to try it:

https://aur.archlinux.org/packages/os-prober-btrfs

1 Like

@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.

2 Likes

While on my Debian 12 system booted via F11, I tried reinstalling grub2 on a live system. Output below:

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 grub-install /dev/nvme0n1
[sudo] password for jim: 
Installing for x86_64-efi platform.
Installation finished. No error reported.
jim@den-pc:~$ sudo update-grub
Generating grub configuration file ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-6.1.0-10-amd64
Found initrd image: /boot/initrd.img-6.1.0-10-amd64
Found linux image: /boot/vmlinuz-6.1.0-9-amd64
Found initrd image: /boot/initrd.img-6.1.0-9-amd64
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Found EndeavourOS Linux (rolling) on /dev/nvme0n1p3
Adding boot menu entry for UEFI Firmware Settings ...
Detecting snapshots ...
Found snapshot: 2023-07-27 10:14:48 | timeshift-btrfs/snapshots/2023-07-27_10-14-48/@ | ondemand hourly | {timeshift-autosnap-apt} {created before call to APT} |
Found snapshot: 2023-07-27 09:08:47 | timeshift-btrfs/snapshots/2023-07-27_09-08-47/@ | ondemand        | {timeshift-autosnap-apt} {created before call to APT} |
Found snapshot: 2023-07-27 09:00:01 | timeshift-btrfs/snapshots/2023-07-27_09-00-01/@ | hourly          | N/A                                                   |
Found snapshot: 2023-07-27 08:00:01 | timeshift-btrfs/snapshots/2023-07-27_08-00-01/@ | hourly          | N/A                                                   |
Found snapshot: 2023-07-27 07:00:02 | timeshift-btrfs/snapshots/2023-07-27_07-00-02/@ | hourly          | N/A                                                   |
Found snapshot: 2023-07-26 23:00:01 | timeshift-btrfs/snapshots/2023-07-26_23-00-01/@ | daily           | N/A                                                   |
Found snapshot: 2023-07-25 23:00:02 | timeshift-btrfs/snapshots/2023-07-25_23-00-02/@ | daily           | N/A                                                   |
Found snapshot: 2023-07-25 06:32:43 | timeshift-btrfs/snapshots/2023-07-25_06-32-43/@ | ondemand hourly | {timeshift-autosnap-apt} {created before call to APT} |
Found snapshot: 2023-07-24 23:00:02 | timeshift-btrfs/snapshots/2023-07-24_23-00-02/@ | daily           | N/A                                                   |
Found snapshot: 2023-07-23 23:00:01 | timeshift-btrfs/snapshots/2023-07-23_23-00-01/@ | daily           | N/A                                                   |
Found snapshot: 2023-07-22 18:00:02 | timeshift-btrfs/snapshots/2023-07-22_18-00-02/@ | daily           | N/A                                                   |
Found snapshot: 2023-07-21 18:00:02 | timeshift-btrfs/snapshots/2023-07-21_18-00-02/@ | daily           | N/A                                                   |
Found snapshot: 2023-07-20 18:00:01 | timeshift-btrfs/snapshots/2023-07-20_18-00-01/@ | daily           | N/A                                                   |
Found snapshot: 2023-07-12 10:50:43 | timeshift-btrfs/snapshots/2023-07-27_13-06-28/@ | ondemand        | Before restoring '2023-07-27 09:00:01'                |
Found 14 snapshot(s)
Unmount /tmp/grub-btrfs.ccyGelT1AK .. Success
done

Now that this is posted, I’ll reboot

1 Like

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? :man_shrugging:

1 Like

@jfabernathy
One thing that this helps me with is arch-chroot on btrfs because the more i do it the easier it gets and i stop forgetting steps needed. :wink:

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 :laughing:

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.

1 Like

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! :rofl:

Well it’s 100 deg F with 50% humidity where I live, so I’m going to stay inside and find something else to break in linux so I can rebulit some more. :upside_down_face:

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.

It’s very easy to arch-chroot to fix the issue and it works.

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.