Hello,
I recently built a living room PC, with 2 hard drives:
- A NVMe SSD with SteamOS;
- A SATA SSD with Manjaro
The first one is for gaming, the second one is for media.
When setting up Grub, it won’t detect SteamOS, even though Manjaro sees the NVMe it’s on. I tried os-prober and update-grub, but still no luck. For now, I use the UEFI boot menu, but on another machine with 2 Manjaros on seperate drives, the other is detected and on the GRUB menu with no problems.
So does anyone have a suggestion for what I could do?
Thanks in advance!
Refind bootloader perhaps?
Or manual custom entry for grub?
Thanks, I went the custom entry route.
So, I just copy-pasted the SteamOS menu entry from its grub.cfg, which has all the info needed such as UUID. And on GRUB menu, it appeared with the Steam icon!
…But when it tries to boot, it can’t find EFI and other things, so back to GRUB. So SteamOS has very specific requirements, and a menu entry won’t be enough.
I tried to configure SteamOS’ GRUB, but it doesn’t have os-prober, and updating Manjaro would force me to update custom entries too. So… no, won’t do that!
For now, it appears dual booting with SteamOS using GRUB requires too much tinkering.
This suggests that it may have been installed in legacy BIOS mode. You cannot use both boot methods together on the same drive, and it is even recommended to not use them both for anything installed on the same hardware.
So, the bottom line is that you’re going to have to make sure that all installed operating systems boot in the same mode — be it legacy BIOS mode (CSM) or UEFI mode — and that you set up your UEFI firmware to only support one of these two methods, but not both at the same time.
There is no guarantee every grub will always boot every foreign os. The grub of manjaro is for example modified and sometimes grub of other os-es cannot boot it.
To test the theory of a mixed setup, boot one os and run
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
then boot the other os and do the same.
In case you they are both efi, adding a custom grub entry is as simple as adding
menuentry "UEFI Shell" {
search --no-floppy --fs-uuid --set=root C557-4CD1
chainloader /EFI/shell/UEFIshell.EFI
}
at the end of /etc/grub.d/40_custom (changing the uuid and path obviously). This file is not overwritten by update, that is the whole point to add it exactly to this file. And then run update-grub.
OK, could boot into SteamOS from Manjaro’s GRUB. Thanks a lot!
So here’s the custom menu entry in /etc/grub.d/40_custom:
menuentry "SteamOS" {
search --no-floppy --fs-uuid --set=root [UUID of /dev/nvme0n1p2]
chainloader /EFI/steamos/grubx64.efi
}
/dev/nvme0n1p2 is where my SteamOS’ /efi partition is.
After that,
sudo grub-mkconfig -o /boot/grub/grub.cfg
then
sudo update-grub
Learned a lot today, thanks again!