You are not logged in.

#1 2024-07-26 15:52:42

jay_eff
Member
Registered: 2024-07-26
Posts: 10

Grub doesn't find arch installation, only windows and debian

Sorry, this might be a super easy question for some but I have just started using linux and I was able to dual boot windows with arch. However, my ambition got to me and I wanted to install debian as well. Windows is on its own SSD, but I installed both linux distros on the same drive. The results of lsblk show that windows is installed in /dev/sda, and /dev/sdb is divided as follows:

sdb           8:16   0 447.1G  0 disk
├─sdb1        8:17   0     1G  0 part /boot/efi
├─sdb2        8:18   0   353G  0 part
└─sdb3        8:19   0  93.1G  0 part /

sdb2 has arch and sdb3 has debian. My problem is that when I installed debian, grub stopped recognizing arch. I can only boot into debian or windows. I have tried os-prober and using:
grub-mkconfig -o /boot/grub/grub.cfg

But the problem persists, I don't seem to be able to find arch. Sorry for being a true noob... I don't even know how to make the fancy formatting on this forum. Thanks in advance and please be nice, I have truely tried reading the arch wiki and even asked chatgpt but cannot solve my problem.

Offline

#2 2024-07-26 16:16:35

Head_on_a_Stick
Member
From: Belsize Park
Registered: 2014-02-20
Posts: 8,091
Website

Re: Grub doesn't find arch installation, only windows and debian

Does the `os-prober` command produce any output when run in isolation?

It should mount the partitions itself when looking but try mounting the Arch partition manually first to see if that makes a difference.

As a last resort a manual entry can be added to Debian's /boot/grub/custom.cfg, something like this should work (replace $uuid with the actual filesystem UUID for the Arch root partition):

menuentry 'Arch' {
   search --fs-uuid --set=root $uuid
   linux /boot/vmlinuz-linux rw quiet root=UUID=$uuid # other kernel parameters here
   initrd /boot/initramfs-linux.img
}

Last edited by Head_on_a_Stick (2024-07-26 16:20:04)

Offline

#3 2024-07-26 16:26:28

jay_eff
Member
Registered: 2024-07-26
Posts: 10

Re: Grub doesn't find arch installation, only windows and debian

The only output I get from os-prober is this:
/dev/sdb2@/efi/Microsoft/Boot/bootmgfw.efi:Windows Boot Manager:Windows:efi

I can try creating a manual entry, but isn't it supposed to detect the arch installation by itself or a way to "repair" the arch bootloader in case it's not detectable by grub or something? Thanks!

Offline

#4 2024-07-26 16:33:23

Head_on_a_Stick
Member
From: Belsize Park
Registered: 2014-02-20
Posts: 8,091
Website

Re: Grub doesn't find arch installation, only windows and debian

The os-prober command looks for kernel images so check the Arch partition for vmlinuz-linux*.

If you were using /dev/sdb1 for /boot/ in your Arch system the Debian installer might have deleted it.

Offline

#5 2024-07-26 16:38:57

jay_eff
Member
Registered: 2024-07-26
Posts: 10

Re: Grub doesn't find arch installation, only windows and debian

So I just mounted sdb2 and tried this command in the mounted folder:
sudo find . | grep vmlinuz-linux.*

It has no output which I understood as if it's not there. I was using /dev/sdb1 as the ESP for Arch... what can I do now?

Offline

#6 2024-07-26 16:42:15

Head_on_a_Stick
Member
From: Belsize Park
Registered: 2014-02-20
Posts: 8,091
Website

Re: Grub doesn't find arch installation, only windows and debian

Just chroot into the Arch partition and reinstall the kernel to create a new kernel & initramfs image in /boot/ on the root partition and remove the ESP line from /etc/fstab.

Once that is done os-prober should be able to find the kernel and have a menuentry added.

Offline

#7 2024-07-26 17:13:03

jay_eff
Member
Registered: 2024-07-26
Posts: 10

Re: Grub doesn't find arch installation, only windows and debian

After finally being able to chroot into my arch install from debian (had a couple of hiccups in the process). Re-installing the linux kernel while "chrooted" (lol, don't know how to express that) seems to have worked. I'm rebooting now after creating the new grub.cfg

I'll cross my fingers and hopefully my next message is confirming that I'm safely on my arch install. I'll give you an update in a minute.... Thanks again!

Offline

#8 2024-07-26 17:16:20

jay_eff
Member
Registered: 2024-07-26
Posts: 10

Re: Grub doesn't find arch installation, only windows and debian

Unfortunately no... now Grub seems to detect something, but it doesn't let me boot into it. When I selected arch in the grub menu it said that I needed to load the kernel first. Do you know anything about that?

Offline

#9 2024-07-26 17:19:14

Head_on_a_Stick
Member
From: Belsize Park
Registered: 2014-02-20
Posts: 8,091
Website

Re: Grub doesn't find arch installation, only windows and debian

Please share the full grub.cfg from the Debian system.

EDIT: to reconfigure GRUB under Debian use

# dpkg-reconfigure grub-efi-amd64
# update-grub

Last edited by Head_on_a_Stick (2024-07-26 17:20:58)

Offline

#10 2024-07-26 17:36:05

jay_eff
Member
Registered: 2024-07-26
Posts: 10

Re: Grub doesn't find arch installation, only windows and debian

The complete grub.cfg from the debian system is the following:

#
# 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
set root='hd1,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt3 --hint-efi=hd1,gpt3 --hint-baremetal=ahci1,gpt3  1c610aff-d4e9-487f-9eed-6e7076268779
else
  search --no-floppy --fs-uuid --set=root 1c610aff-d4e9-487f-9eed-6e7076268779
fi
    font="/@rootfs/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
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
set root='hd1,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt3 --hint-efi=hd1,gpt3 --hint-baremetal=ahci1,gpt3  1c610aff-d4e9-487f-9eed-6e7076268779
else
  search --no-floppy --fs-uuid --set=root 1c610aff-d4e9-487f-9eed-6e7076268779
fi
insmod png
if background_image /@rootfs/usr/share/desktop-base/emerald-theme/grub/grub-4x3.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 GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-1c610aff-d4e9-487f-9eed-6e7076268779' {
        load_video
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_gpt
        insmod btrfs
        set root='hd1,gpt3'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt3 --hint-efi=hd1,gpt3 --hint-baremetal=ahci1,gpt3  1c610aff-d4e9-487f-9eed-6e7076268779
        else
          search --no-floppy --fs-uuid --set=root 1c610aff-d4e9-487f-9eed-6e7076268779
        fi
        echo    'Loading Linux 6.9.10-amd64 ...'
        linux   /@rootfs/boot/vmlinuz-6.9.10-amd64 root=UUID=1c610aff-d4e9-487f-9eed-6e7076268779 ro rootflags=subvol=@rootfs update-grub quiet
        echo    'Loading initial ramdisk ...'
        initrd  /@rootfs/boot/initrd.img-6.9.10-amd64
}
submenu 'Advanced options for Debian GNU/Linux GNU/Linux' $menuentry_id_option 'gnulinux-advanced-1c610aff-d4e9-487f-9eed-6e7076268779' {
        menuentry 'Debian GNU/Linux GNU/Linux, with Linux 6.9.10-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.9.10-amd64-advanced-1c610aff-d4e9-487f-9eed-6e7076268779' {
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod btrfs
                set root='hd1,gpt3'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt3 --hint-efi=hd1,gpt3 --hint-baremetal=ahci1,gpt3  1c610aff-d4e9-487f-9eed-6e7076268779
                else
                  search --no-floppy --fs-uuid --set=root 1c610aff-d4e9-487f-9eed-6e7076268779
                fi
                echo    'Loading Linux 6.9.10-amd64 ...'
                linux   /@rootfs/boot/vmlinuz-6.9.10-amd64 root=UUID=1c610aff-d4e9-487f-9eed-6e7076268779 ro rootflags=subvol=@rootfs update-grub quiet
                echo    'Loading initial ramdisk ...'
                initrd  /@rootfs/boot/initrd.img-6.9.10-amd64
        }
        menuentry 'Debian GNU/Linux GNU/Linux, with Linux 6.9.10-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.9.10-amd64-recovery-1c610aff-d4e9-487f-9eed-6e7076268779' {
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod btrfs
                set root='hd1,gpt3'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt3 --hint-efi=hd1,gpt3 --hint-baremetal=ahci1,gpt3  1c610aff-d4e9-487f-9eed-6e7076268779
                else
                  search --no-floppy --fs-uuid --set=root 1c610aff-d4e9-487f-9eed-6e7076268779
                fi
                echo    'Loading Linux 6.9.10-amd64 ...'
                linux   /@rootfs/boot/vmlinuz-6.9.10-amd64 root=UUID=1c610aff-d4e9-487f-9eed-6e7076268779 ro single dis_ucode_ldr rootflags=subvol=@rootfs update-grub
                echo    'Loading initial ramdisk ...'
                initrd  /@rootfs/boot/initrd.img-6.9.10-amd64
        }
        menuentry 'Debian GNU/Linux GNU/Linux, with Linux 6.9.9-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.9.9-amd64-advanced-1c610aff-d4e9-487f-9eed-6e7076268779' {
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod btrfs
                set root='hd1,gpt3'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt3 --hint-efi=hd1,gpt3 --hint-baremetal=ahci1,gpt3  1c610aff-d4e9-487f-9eed-6e7076268779
                else
                  search --no-floppy --fs-uuid --set=root 1c610aff-d4e9-487f-9eed-6e7076268779
                fi
                echo    'Loading Linux 6.9.9-amd64 ...'
                linux   /@rootfs/boot/vmlinuz-6.9.9-amd64 root=UUID=1c610aff-d4e9-487f-9eed-6e7076268779 ro rootflags=subvol=@rootfs update-grub quiet
                echo    'Loading initial ramdisk ...'
                initrd  /@rootfs/boot/initrd.img-6.9.9-amd64
        }
        menuentry 'Debian GNU/Linux GNU/Linux, with Linux 6.9.9-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-6.9.9-amd64-recovery-1c610aff-d4e9-487f-9eed-6e7076268779' {
                load_video
                insmod gzio
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
                insmod part_gpt
                insmod btrfs
                set root='hd1,gpt3'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt3 --hint-efi=hd1,gpt3 --hint-baremetal=ahci1,gpt3  1c610aff-d4e9-487f-9eed-6e7076268779
                else
                  search --no-floppy --fs-uuid --set=root 1c610aff-d4e9-487f-9eed-6e7076268779
                fi
                echo    'Loading Linux 6.9.9-amd64 ...'
                linux   /@rootfs/boot/vmlinuz-6.9.9-amd64 root=UUID=1c610aff-d4e9-487f-9eed-6e7076268779 ro single dis_ucode_ldr rootflags=subvol=@rootfs update-grub
                echo    'Loading initial ramdisk ...'
                initrd  /@rootfs/boot/initrd.img-6.9.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/25_bli ###
if [ "$grub_platform" = "efi" ]; then
  insmod bli
fi
### END /etc/grub.d/25_bli ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (on /dev/sda2)' --class windows --class os $menuentry_id_option 'osprober-efi-CC29-C3BA' {
        insmod part_gpt
        insmod fat
        set root='hd0,gpt2'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt2 --hint-efi=hd0,gpt2 --hint-baremetal=ahci0,gpt2  CC29-C3BA
        else
          search --no-floppy --fs-uuid --set=root CC29-C3BA
        fi
        chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
menuentry 'Arch Linux (on /dev/sdb2)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-ae2e908e-f8d8-4787-8a96-17b5142c4dd6' {
        insmod part_gpt
        insmod btrfs
        set root='hd1,gpt2'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2  ae2e908e-f8d8-4787-8a96-17b5142c4dd6
        else
          search --no-floppy --fs-uuid --set=root ae2e908e-f8d8-4787-8a96-17b5142c4dd6
        fi
        linux /boot/vmlinuz-linux root=/dev/sdb2
        initrd /boot/initramfs-linux.img
}
submenu 'Advanced options for Arch Linux (on /dev/sdb2)' $menuentry_id_option 'osprober-gnulinux-advanced-ae2e908e-f8d8-4787-8a96-17b5142c4dd6' {
        menuentry 'Arch Linux (on /dev/sdb2)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-linux--ae2e908e-f8d8-4787-8a96-17b5142c4dd6' {
                insmod part_gpt
                insmod btrfs
                set root='hd1,gpt2'
                if [ x$feature_platform_search_hint = xy ]; then
                  search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt2 --hint-efi=hd1,gpt2 --hint-baremetal=ahci1,gpt2  ae2e908e-f8d8-4787-8a96-17b5142c4dd6
                else
                  search --no-floppy --fs-uuid --set=root ae2e908e-f8d8-4787-8a96-17b5142c4dd6
                fi
                linux /boot/vmlinuz-linux root=/dev/sdb2
                initrd /boot/initramfs-linux.img
        }
}

### 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/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 ###

And the output after running the reconfigure code you posted is this one:

Installing for x86_64-efi platform.
Installation finished. No error reported.
Generating grub configuration file ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-6.9.10-amd64
Found initrd image: /boot/initrd.img-6.9.10-amd64
Found linux image: /boot/vmlinuz-6.9.9-amd64
Found initrd image: /boot/initrd.img-6.9.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 Windows Boot Manager on /dev/sda2@/efi/Microsoft/Boot/bootmgfw.efi
Found Arch Linux on /dev/sdb2
Adding boot menu entry for UEFI Firmware Settings ...
done
Processing triggers for shim-signed:amd64 (1.40+15.7-1) ...

Last edited by jay_eff (2024-07-26 18:42:43)

Offline

#11 2024-07-26 17:43:53

Head_on_a_Stick
Member
From: Belsize Park
Registered: 2014-02-20
Posts: 8,091
Website

Re: Grub doesn't find arch installation, only windows and debian

Please change the quote tags to code tags, it will improve readability.

Looks like grub-mkconfig is using /dev/sdb2 as a root partition identifier, which is stupid. I forgot it does that hmm

You can either use the custom menuentry I provided earlier or use grub-mkconfig in Arch to generate a working grub.cfg there and then add this to /boot/grub/custom.cfg in Debian:

menuentry 'Arch' {
   search --fs-uuid --set=root $uuid
   configfile /boot/grub/grub.cfg
}

In either case add this line to /etc/default/grub in Debian to prevent os-prober adding a non-functional Arch entry (again, replace $uuid with the correct string):

GRUB_OS_PROBER_SKIP_LIST=$uuid

Offline

#12 2024-07-26 18:11:55

jay_eff
Member
Registered: 2024-07-26
Posts: 10

Re: Grub doesn't find arch installation, only windows and debian

Sorry about the quotes, will make them code the next time (I'm still figuring out how this forum works). I copied the grub.cfg from arch to debian and now I can only boot into arch and windows but not into debian. For me this is better because I prefer arch, but still haven't been able to make the full grub thing multiboot. In my exploration I noticed something "weird", my arch fstab says it's mounted in /boot, but my debian seems to be mounted into /boot/efi. Could that be the cause of all my problems? How could I solve this if that's the case?

Offline

#13 2024-07-26 18:36:16

Head_on_a_Stick
Member
From: Belsize Park
Registered: 2014-02-20
Posts: 8,091
Website

Re: Grub doesn't find arch installation, only windows and debian

jay_eff wrote:

Sorry about the quotes, will make them code the next time

Please edit your old post and change them now. Thanks.

jay_eff wrote:

I copied the grub.cfg from arch to debian

Why did you do that?

If you don't want to follow my suggestions please just tell me so I can stop wasting my time here.

jay_eff wrote:

in my exploration I noticed something "weird", my arch fstab says it's mounted in /boot

I told you to remove the ESP line from /etc/fstab in Arch.

Offline

#14 2024-07-26 22:42:03

jay_eff
Member
Registered: 2024-07-26
Posts: 10

Re: Grub doesn't find arch installation, only windows and debian

Head_on_a_Stick wrote:

Please edit your old post and change them now. Thanks.

Done.

Head_on_a_Stick wrote:

Why did you do that?

I did that because that's what I understood from this:

Head_on_a_Stick wrote:

use grub-mkconfig in Arch to generate a working grub.cfg there and then add this to /boot/grub/custom.cfg in Debian

Now that I re-read this I understand it was my mistake... I really am a complete noob and sometimes I just don't understand what you mean.

I told you to remove the ESP line from /etc/fstab in Arch.

Sorry man... when you mentioned that it was in this line:

Just chroot into the Arch partition and reinstall the kernel to create a new kernel & initramfs image in /boot/ on the root partition and remove the ESP line from /etc/fstab.

Which now I know I also misinterpreted. I understood that by reinstalling the kernel it automatically created a newkernel and initramfs image in boot AND it also removed the ESP line automatically... I didn't understand which parts had to be done by me or which were solved by the installation alone. Again... not my intention to be an idiot, I just misunderstood... That's why I went to check whether it had deleted the ESP line and found the "weirdness" in my exploration. I really don't mean to make you waste time... I just don't understand about half of the things I'm doing and I'm trying to do things based on your suggestions and the wiki. (I dind't even know how to format posts in this forum or how to chroot into arch, but I am really making an effort to understand stuff on the go). Sorry to bother so much. Can I ask for your advice on what to do now? Please don't be offended and please put yourself on a complete noobs shoes to understand that when you say things like:

Just chroot into the Arch partition and reinstall the kernel to create a new kernel & initramfs image in /boot/ on the root partition and remove the ESP line from /etc/fstab.

This might be obvious to you but it sounds like complete gibberish to a noob. A

Again... Sorry for screwing everything up.... I hope you don't get mad and can help me.

Offline

#15 2024-07-26 22:54:34

Head_on_a_Stick
Member
From: Belsize Park
Registered: 2014-02-20
Posts: 8,091
Website

Re: Grub doesn't find arch installation, only windows and debian

There's really no need to apologise, I was probably too concise in my posts.

To fix this first edit the /etc/fstab file in Arch linux to remove the line referring to the EFI system partition. This will ensure Arch's /boot/ is kept in the root partition when that system is booted.

Then edit /etc/default/grub in the Debian system and add the GRUB_OS_PROBER_SKIP_LIST line I posted above, using the correct filesystem UUID for the Arch partition. This will stop os-prober adding a broken Arch menuentry.

Now create a file at /boot/grub/custom.cfg in the Debian system containing the custom Arch menuentry I shared in my first post in this thread. Be sure to include the correct UUID rather than the "$uuid" placeholder.

Finally regenerate Debian's grub.cfg by running the `update-grub` command from that system. The auto-generated file will source the new custom.cfg file automatically.

Offline

#16 2024-07-27 07:48:52

jay_eff
Member
Registered: 2024-07-26
Posts: 10

Re: Grub doesn't find arch installation, only windows and debian

Ok, so... this is the update. I tried to follow your instructions as closely as possible.

Head_on_a_Stick wrote:

To fix this first edit the /etc/fstab file in Arch linux to remove the line referring to the EFI system partition. This will ensure Arch's /boot/ is kept in the root partition when that system is booted.

I was able to do this no problem.

Head_on_a_Stick wrote:

Then edit /etc/default/grub in the Debian system and add the GRUB_OS_PROBER_SKIP_LIST line I posted above, using the correct filesystem UUID for the Arch partition. This will stop os-prober adding a broken Arch menuentry.

This was a little harder to do because I cannot boot into the debian system anymore. So I had to chroot into the debian system and do this. Despite the difficulties, this is also done.

Head_on_a_Stick wrote:

Now create a file at /boot/grub/custom.cfg in the Debian system containing the custom Arch menuentry I shared in my first post in this thread. Be sure to include the correct UUID rather than the "$uuid" placeholder.

While in the "chrooted" debian I was able to create this using the uuid of the drive where arch is in both placeholders I could find.

Head_on_a_Stick wrote:

Finally regenerate Debian's grub.cfg by running the `update-grub` command from that system. The auto-generated file will source the new custom.cfg file automatically.

In this one I ran into problems... I tried running the commands you mentioned:

# dpkg-reconfigure grub-efi-amd64
# update-grub

But the chroot didn't find the dpkg-reconfigure command. I used "whereis" to locate it and was able to execute it from the /usr/sbin/ directory. However it gave me this output:

/var/lib/dpkg/info/grub-efi-amd64.postinst: line 330: grub-install: command not found
Failed: grub-install --target=x86_64-efi  --no-nvram
WARNING: Bootloader is not properly installed, system may not be bootable
/var/lib/dpkg/info/grub-efi-amd64.postinst: line 791: update-grub: command not found

I really hope I didn't screw up again... At this point I'm just considering formatting the drive, install arch cleanly and maybe when I get more knowledge in linux try to install debian in a partition like I'm trying now.

Offline

#17 2024-07-27 08:59:25

Head_on_a_Stick
Member
From: Belsize Park
Registered: 2014-02-20
Posts: 8,091
Website

Re: Grub doesn't find arch installation, only windows and debian

I'm really sorry, I didn't even consider that you can't boot into Debian. That was stupid of me.

The commands can't be found because they're in /sbin/ so when chrooting use this (presuming the Debian filesystem is mounted under /mnt/):

arch-chroot /mnt /bin/su -
[chroot] mount -a

^ That ensures correct login configuration, which will set PATH and allow the commands to be found.

EDIT: use arch-chroot instead, grub-install won't work otherwise.

EDIT2: or use a Debian installer ISO image and follow https://www.debian.org/releases/stable/ … 06.en.html to gain a shell in the Debian system.

Last edited by Head_on_a_Stick (2024-07-27 10:34:37)

Offline

#18 2024-07-27 12:02:58

jay_eff
Member
Registered: 2024-07-26
Posts: 10

Re: Grub doesn't find arch installation, only windows and debian

So I did the arch-chroot with the command you suggested, mounted everything and the commands ran. It seemed like everything was going to work, but when I rebooted I ended out of both systems. The arch menu entry still said that I needed to load the kernel first (or something along those lines) and the debian entry (this time debian appeared, but windows didn't) started booting but failed in the process. I don't remember the exact error message but I think it was something about journalctl and not having a root. I must have screwed up something at some point that broke both installations. I ended up formatting the drive and installing just arch on that drive. Thanks for the patience and for your help. I still seem to have a long way ahead of me to understand more about what each thing does in linux...

Offline

#19 2024-07-28 08:44:00

Head_on_a_Stick
Member
From: Belsize Park
Registered: 2014-02-20
Posts: 8,091
Website

Re: Grub doesn't find arch installation, only windows and debian

Dual booting Debian & Arch is actually quite tricky, in fairness.

I prefer to use manual stanzas, which can take advantage of the /vmlinuz & /initrd.img symlinks in Debian that always point to the current kernel version.

Offline

Board footer

Powered by FluxBB