Bootloader does not show Arch (Dualboot)

Hey,
I got Arch installed on my laptop and wanted to install Garuda next to it, however Garuda's bootloader does not show an option to boot arch from it.
How can I fix this?

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda           8:0    1     0B  0 disk
zram0       254:0    0  15,5G  0 disk [SWAP]
nvme0n1     259:0    0 476,9G  0 disk
├─nvme0n1p1 259:1    0   512M  0 part /boot/efi
├─nvme0n1p2 259:2    0  49,7G  0 part
└─nvme0n1p3 259:3    0 426,8G  0 part /var/tmp

nvme0n1p2 is the Arch disrto, nvme0n1p3 is the Garuda one

Check /etc/default/grub


# Probing for other operating systems is disabled for security reasons. Read
# documentation on GRUB_DISABLE_OS_PROBER, if still want to enable this
# functionality install os-prober and uncomment to detect and include other
# operating systems.
GRUB_DISABLE_OS_PROBER=false

Please post always your garuda-inxi and use the forum search function, thank you.

4 Likes

Also make sure that in Garuda your Arch partition is mounted, before launching sudo update-grub from Garuda.

4 Likes

I uncommented the line in /etc/default/grub and also updated grub.
os-prober seems to be already installed.

╭─stk@stk in ~
╰─λ sudo os-prober --help
[sudo] password for stk:
/dev/nvme0n1p2:Arch Linux:Arch:linux

So far it didn’t work but I will update grub again and pay attention that /dev/nvme0n1p2 is mounted

garuda-inxi:

System:
Kernel: 6.2.13-zen-1-zen arch: x86_64 bits: 64 compiler: gcc v: 12.2.1
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=7712be21-0b37-41fb-a77a-c53eb6067366 rw rootflags=subvol=@
quiet quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
loglevel=3 ibt=off
Desktop: KDE Plasma v: 5.27.4 tk: Qt v: 5.15.9 wm: kwin_x11 vt: 1 dm: SDDM
Distro: Garuda Linux base: Arch Linux
Machine:
Type: Laptop System: LENOVO product: 20HES38300 v: ThinkPad T470
serial: <superuser required> Chassis: type: 10 serial: <superuser required>
Mobo: LENOVO model: 20HES38300 v: SDK0J40697 WIN
serial: <superuser required> UEFI: LENOVO v: N1QET73W (1.48 )
date: 03/20/2018
Battery:
ID-1: BAT0 charge: 15.9 Wh (81.5%) condition: 19.5/24.0 Wh (81.3%)
volts: 11.3 min: 11.5 model: SMP 01AV421 type: Li-poly serial: <filter>
status: discharging cycles: 301
ID-2: BAT1 charge: 18.6 Wh (100.0%) condition: 18.6/24.1 Wh (77.5%)
volts: 12.7 min: 11.4 model: Celxpert 01AV424 type: Li-poly serial: <filter>
status: not charging cycles: 163
CPU:
Info: model: Intel Core i5-7300U bits: 64 type: MT MCP arch: Amber/Kaby Lake
note: check gen: core 7 level: v3 note: check built: 2017
process: Intel 14nm family: 6 model-id: 0x8E (142) stepping: 9
microcode: 0xF0
Topology: cpus: 1x cores: 2 tpc: 2 threads: 4 smt: enabled cache:
L1: 128 KiB desc: d-2x32 KiB; i-2x32 KiB L2: 512 KiB desc: 2x256 KiB
L3: 3 MiB desc: 1x3 MiB
Speed (MHz): avg: 1180 high: 2700 min/max: 400/3500 scaling:
driver: intel_pstate governor: powersave cores: 1: 656 2: 692 3: 2700 4: 672
bogomips: 21599
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities: <filter>
Graphics:
Device-1: Intel HD Graphics 620 vendor: Lenovo driver: i915 v: kernel
arch: Gen-9.5 process: Intel 14nm built: 2016-20 ports: active: eDP-1
empty: DP-1, DP-2, HDMI-A-1, HDMI-A-2 bus-ID: 00:02.0 chip-ID: 8086:5916
class-ID: 0300
Device-2: IMC Networks Integrated Camera type: USB driver: uvcvideo
bus-ID: 1-8:5 chip-ID: 13d3:5619 class-ID: 0e02 serial: <filter>
Display: x11 server: X.Org v: 21.1.8 with: Xwayland v: 23.1.1
compositor: kwin_x11 driver: X: loaded: modesetting
alternate: fbdev,intel,vesa dri: iris gpu: i915 display-ID: :0 screens: 1
Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.00x11.22")
s-diag: 582mm (22.93")
Monitor-1: eDP-1 model: AU Optronics 0x103d built: 2016 res: 1920x1080
hz: 60 dpi: 158 gamma: 1.2 size: 309x173mm (12.17x6.81") diag: 354mm (13.9")
ratio: 16:9 modes: 1920x1080
API: OpenGL v: 4.6 Mesa 23.0.3 renderer: Mesa Intel HD Graphics 620 (KBL
GT2) direct-render: Yes
Audio:
Device-1: Intel Sunrise Point-LP HD Audio vendor: Lenovo
driver: snd_hda_intel v: kernel alternate: snd_soc_skl,snd_soc_avs
bus-ID: 00:1f.3 chip-ID: 8086:9d71 class-ID: 0403
API: ALSA v: k6.2.13-zen-1-zen status: kernel-api tools: N/A
Server-1: PipeWire v: 0.3.70 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Intel Ethernet I219-LM vendor: Lenovo driver: e1000e v: kernel
port: N/A bus-ID: 00:1f.6 chip-ID: 8086:15d7 class-ID: 0200
IF: enp0s31f6 state: down mac: <filter>
Device-2: Intel Wireless 8265 / 8275 driver: iwlwifi v: kernel pcie:
gen: 1 speed: 2.5 GT/s lanes: 1 bus-ID: 04:00.0 chip-ID: 8086:24fd
class-ID: 0280
IF: wlp4s0 state: up mac: <filter>
IF-ID-1: wwp0s20f0u6i12 state: down mac: <filter>
Bluetooth:
Device-1: Intel Bluetooth wireless interface type: USB driver: btusb v: 0.8
bus-ID: 1-7:4 chip-ID: 8087:0a2b class-ID: e001
Report: bt-adapter ID: hci0 rfk-id: 2 state: up address: <filter>
Drives:
Local Storage: total: 476.94 GiB used: 4.06 GiB (0.9%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital model: PC SN730
SDBQNTY-512G-1001 size: 476.94 GiB block-size: physical: 512 B
logical: 512 B speed: 31.6 Gb/s lanes: 4 type: SSD serial: <filter>
rev: 11130101 temp: 36.9 C scheme: GPT
Partition:
ID-1: / raw-size: 426.76 GiB size: 426.76 GiB (100.00%)
used: 3.98 GiB (0.9%) fs: btrfs dev: /dev/nvme0n1p3 maj-min: 259:3
ID-2: /boot/efi raw-size: 512 MiB size: 511 MiB (99.80%)
used: 76.5 MiB (15.0%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
ID-3: /home raw-size: 426.76 GiB size: 426.76 GiB (100.00%)
used: 3.98 GiB (0.9%) fs: btrfs dev: /dev/nvme0n1p3 maj-min: 259:3
ID-4: /var/log raw-size: 426.76 GiB size: 426.76 GiB (100.00%)
used: 3.98 GiB (0.9%) fs: btrfs dev: /dev/nvme0n1p3 maj-min: 259:3
ID-5: /var/tmp raw-size: 426.76 GiB size: 426.76 GiB (100.00%)
used: 3.98 GiB (0.9%) fs: btrfs dev: /dev/nvme0n1p3 maj-min: 259:3
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
ID-1: swap-1 type: zram size: 15.5 GiB used: 0 KiB (0.0%) priority: 100
dev: /dev/zram0
Sensors:
System Temperatures: cpu: 51.0 C pch: 40.0 C mobo: N/A
Fan Speeds (RPM): N/A
Info:
Processes: 213 Uptime: 1m wakeups: 2 Memory: 15.5 GiB used: 2.25 GiB (14.5%)
Init: systemd v: 253 default: graphical tool: systemctl Compilers:
gcc: 12.2.1 Packages: pm: pacman pkgs: 1161 libs: 325 tools: octopi,paru
Shell: fish v: 3.6.1 default: Bash v: 5.1.16 running-in: konsole
inxi: 3.3.26
Garuda (2.6.16-1):
System install date:     2023-09-06
Last full system update: 2023-09-06
Is partially upgraded:   No
Relevant software:       snapper NetworkManager dracut
Windows dual boot:       Probably (Run as root to verify)
Failed units:
╭─stk@stk in ~
╰─λ sudo update-grub
[sudo] password for stk:
Generating grub configuration file ...
Found theme: /usr/share/grub/themes/garuda-dr460nized/theme.txt
Found linux image: /boot/vmlinuz-linux-zen
Found initrd image: /boot/intel-ucode.img /boot/initramfs-linux-zen.img
Found fallback initrd image(s) in /boot:  intel-ucode.img initramfs-linux-zen-fallback.img
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 Arch Linux on /dev/nvme0n1p2
Detecting snapshots ...
Found snapshot: 2023-09-07 06:54:37 | @/.snapshots/10/snapshot | post | apache                                |
Found snapshot: 2023-09-07 06:54:36 | @/.snapshots/9/snapshot  | pre  | /usr/bin/pacman -S --noconfirm extra/apache                              |
Found snapshot: 2023-09-07 06:53:51 | @/.snapshots/8/snapshot  | post | dart-sass                             |
Found snapshot: 2023-09-07 06:53:50 | @/.snapshots/7/snapshot  | pre  | /usr/bin/pacman -S --noconfirm extra/dart-sass                           |
Found snapshot: 2023-09-07 06:45:25 | @/.snapshots/6/snapshot  | post | a2ps appimagelauncher aribb24 audacious audacious-plugins bluez-cups bot |
Found snapshot: 2023-09-07 06:45:04 | @/.snapshots/5/snapshot  | pre  | pacman -S --needed appimagelauncher audacious discord filezilla firedrag |
Found snapshot: 2023-09-07 06:41:10 | @/.snapshots/4/snapshot  | post | a52dec aalib abseil-cpp adwaita-cursors adwaita-icon-theme alsa-card-pro |
Found snapshot: 2023-09-07 06:32:08 | @/.snapshots/3/snapshot  | pre  | pacman -Su                            |
Found snapshot: 2023-09-07 00:03:21 | @/.snapshots/2/snapshot  | post | archlinux-keyring chaotic-keyring     |
Found snapshot: 2023-09-07 00:03:12 | @/.snapshots/1/snapshot  | pre  | pacman -Udd --noconfirm --needed archlinux-keyring-20230821-2-any.pkg.ta |
Found 10 snapshot(s)
Unmount /tmp/grub-btrfs.ZuuBgjenF7 .. Success
Found memtest86+ image: /boot/memtest86+/memtest.bin
/usr/bin/grub-probe: warning: unknown device type nvme0n1.
done

After rebooting Arch still won't show up :frowning:
(I did make sure nvme0n1p2 was mounted)

This could be the reason for your problem, although at a quick internet search this could be really only a “warning” not affecting the functionality.
Give a look at this one in our forum and see if anything changes:

Also, update your system fully (I see an old kernel, so probably this is a new install) with a:

garuda-update

Finally, on the Arch side, you could give a look at this:
https://wiki.archlinux.org/title/GRUB#Arch_not_found_from_other_OS

2 Likes

Thanks mate. I'll try it out and reply again once I'm done trying.

1 Like

I updated garuda now fully and then additionally I also executed garuda-update grub yet it still won't work.
I did ignore the nvme0n1 warning, as you said and as in the linked post says that it's not of importance.

Now I want to try installing lsb-release on my arch distro yet I can't boot into my archdistro because it doesn't show up in grub.

I did saw some really complicated commands on how to chroot from different OS
(Install Arch Linux from existing Linux - ArchWiki)
But do you now a easier option?

Maybe you could use efibootmgr to set the Arch bootloader as first, or you could simply select it from your BIOS.

1 Like

Sadly there appear's to be only one efi partition...

╭─stk@stk in ~ as 🧙 took 4s
╰─λ sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT
NAME        FSTYPE   SIZE MOUNTPOINT
sdb                    0B
zram0               15,5G [SWAP]
nvme0n1            476,9G
├─nvme0n1p1 vfat     512M /boot/efi
├─nvme0n1p2 ext4    49,7G /run/media/stk/9063bac4-c6de-409f-a18f-2747c727d875
└─nvme0n1p3 btrfs  426,8G /var/log

Did you check the text?
If = true change to = false

1 Like

What's the output of

efibootmgr

?

╭─stk@stk in ~ as 🧙 took 34ms
╰─λ efibootmgr
BootCurrent: 0019
Timeout: 2 seconds
BootOrder: 0019,0001,001E,0010,0011,0012,0013,001F,001C,0000,0017,0018,001A,001B,001D
Boot0000* Windows Boot Manager  HD(1,GPT,ef54e8b2-6f57-471e-af17-fcc426d95b04,0x800,0x100000)/File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)57494e444f5753000100000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d0034006500370030002d0061006300630031002d006600330032006200330034003400640034003700390035007d00000000000100000010000000040000007fff0400
Boot0001* Garuda        HD(1,GPT,ef54e8b2-6f57-471e-af17-fcc426d95b04,0x800,0x100000)/File(\EFI\Garuda\grubx64.efi)
Boot0010  Setup FvFile(721c8b66-426c-4e86-8e99-3457c46ab0b9)
Boot0011  Boot Menu     FvFile(126a762d-5758-4fca-8531-201a7f57f850)
Boot0012  Diagnostic Splash Screen      FvFile(a7d8d9a6-6ab0-4aeb-ad9d-163e59a7a380)
Boot0013  Lenovo Diagnostics    FvFile(3f7e615b-0d45-4f80-88dc-26b234958560)
Boot0014  Startup Interrupt Menu        FvFile(f46ee6f4-4785-43a3-923d-7f786c3c8479)
Boot0015  Rescue and Recovery   FvFile(665d3f60-ad3e-4cad-8e26-db46eee9f1b5)
Boot0016  MEBx Hot Key  FvFile(ac6fd56a-3d41-4efd-a1b9-870293811a28)
Boot0017* USB CD        VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,86701296aa5a7848b66cd49dd3ba6a55)
Boot0018* USB FDD       VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,6ff015a28830b543a8b8641009461e49)
Boot0019* NVMe0 VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,001c199932d94c4eae9aa0b6e98eb8a400)
Boot001A* ATA HDD1      VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f601)
Boot001B* ATA HDD0      VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f600)
Boot001C* USB HDD       VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,33e821aaaf33bc4789bd419f88c50803)
Boot001D* PCI LAN       VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,78a84aaf2b2afc4ea79cf5cc8f3d3803)
Boot001E  Other CD      VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,aea2090adfde214e8b3a5e471856a35406)
Boot001F  Other HDD     VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f606)
Boot0020* IDER BOOT CDROM       PciRoot(0x0)/Pci(0x14,0x0)/USB(11,1)
Boot0021* IDER BOOT Floppy      PciRoot(0x0)/Pci(0x14,0x0)/USB(11,0)
Boot0022* ATA HDD       VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,91af625956449f41a7b91f4f892ab0f6)
Boot0023* ATAPI CD      VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,aea2090adfde214e8b3a5e471856a354)
Boot0024* PCI LAN       VenMsg(bc7838d2-0f82-4d60-8316-c068ee79d25b,78a84aaf2b2afc4ea79cf5cc8f3d3803)

It is =false

Mmm I expected an entry for Arch actually. I'm a bit lost.
Maybe you could boot from an Arch USB and use arch-chroot to install lsb-release.
I'd also reinstall the GRUB at that point.
But there is something strange that I can't identify...

3 Likes

I’ve got lsb-release installed on arch now, nothing changed.
I’ve also reinstalled grub using THIS tutorial, nothing changed either.
What confuses me is (as I posted above), while updating grub it tells me that it has found Arch on nvme0n1p2, but it then goes on adding an entry for UEFI Firmware Settings and detecting snapshots…why does it ignore the Archdistro it found?

I think we need to examine the bootloader configuration for Arch, not Garuda.

Boot to the Arch installation and show:

lsblk -f

Regenerate the Grub configuration file and paste the output into the thread.

sudo grub-mkconfig -o /boot/grub/grub.cfg
1 Like

As I said I don't really know how to boot into Arch right now, will chrooting from the arch live usb be fine too?

Yes, chrooting will be fine. Be sure to mount the EFI partition as well before running commands involving Grub.

If you can’t boot to Arch at all, I would recommend reinstalling Grub before regenerating the configuration file. How you phrase the installation command will depend on where the EFI partition is mounted, see here:

Then follow the below steps to install GRUB to your disk:

https://wiki.archlinux.org/title/GRUB#Installation

  1. Mount the EFI system partition and in the remainder of this section, substitute esp with its mount point.
  2. Choose a boot loader identifier, here named GRUB. A directory of that name will be created in esp/EFI/ to store the EFI binary and this is the name that will appear in the UEFI boot menu to identify the GRUB boot entry.
  3. Execute the following command to install the GRUB EFI application grubx64.efi to esp/EFI/GRUB/ and install its modules to /boot/grub/x86_64-efi/.

Note:

  • Make sure to install the packages and run the grub-install command from the system in which GRUB will be installed as the boot loader. That means if you are booting from the live installation environment, you need to be inside the chroot when running grub-install. If for some reason it is necessary to run grub-install from outside of the installed system, append the --boot-directory= option with the path to the mounted /boot directory, e.g --boot-directory=/mnt/boot.
  • Some motherboards cannot handle bootloader-id with spaces in it.
# grub-install --target=x86_64-efi --efi-directory=*esp* --bootloader-id=GRUB

Usually, it will be something like this:

grub-install  --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=GRUB

With Arch there is a bit of flexibility with how the EFI partition can be mounted, so double-check how you have it set up.

Paste the input and output of the commands into the thread as you go so we can see what is happening.

4 Likes

I mounted the esp and root directory and then reinstalled grub via arch-chroot according to the linked 3 steps.
Then I successfully regenerated the grub configuration file and rebooted. Now I got the arch-like-looking grub interface but it wont show any os anymore. Neither garuda nor arch.
I already checked /etc/default/grub and the disable option is still uncommented and set to false.

As I just used the commandline in the livearch boot I'm not really sure how to post any outputs here without manually transcribing them all.
Is there smth like termbin that I can use for that?

Edit: Ahh wait, thinking about that I visited termbin's website and realised I can use it outside of garuda-inxi :joy:
just a sec...

You could have done it from the Garuda live environment and you would have had more tools at your disposal–terminal emulator, a web browser, even the chroot tool you could have used.

You can use exactly termbin, check it out: https://termbin.com/

echo just testing!  | nc termbin.com 9999

Now that you have the bootloader installed, boot back to Garuda and re-run sudo update-grub to regenerate the Grub configuration file and see if it picks up Arch.

1 Like