Post also your Fedora native /boot/grub/grub.cfg
Also post Fedora's /etc/fstab
.
[root@Austin-Inspiron-15-3567 grub2]# cat grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
set pager=1
if [ -f ${config_directory}/grubenv ]; then
load_env -f ${config_directory}/grubenv
elif [ -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="${saved_entry}"
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
}
terminal_output console
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/01_users ###
if [ -f ${prefix}/user.cfg ]; then
source ${prefix}/user.cfg
if [ -n "${GRUB2_PASSWORD}" ]; then
set superusers="root"
export superusers
password_pbkdf2 root ${GRUB2_PASSWORD}
fi
fi
### END /etc/grub.d/01_users ###
### BEGIN /etc/grub.d/08_fallback_counting ###
insmod increment
# Check if boot_counter exists and boot_success=0 to activate this behaviour.
if [ -n "${boot_counter}" -a "${boot_success}" = "0" ]; then
# if countdown has ended, choose to boot rollback deployment,
# i.e. default=1 on OSTree-based systems.
if [ "${boot_counter}" = "0" -o "${boot_counter}" = "-1" ]; then
set default=1
set boot_counter=-1
# otherwise decrement boot_counter
else
decrement boot_counter
fi
save_env boot_counter
fi
### END /etc/grub.d/08_fallback_counting ###
### BEGIN /etc/grub.d/10_linux ###
insmod part_gpt
insmod btrfs
set root='hd0,gpt9'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt9 --hint-efi=hd0,gpt9 --hint-baremetal=ahci0,gpt9 c91d6048-0454-45ca-b764-76d675514da0
else
search --no-floppy --fs-uuid --set=root c91d6048-0454-45ca-b764-76d675514da0
fi
insmod part_gpt
insmod fat
set boot='hd0,gpt1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=boot --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 D7C4-586F
else
search --no-floppy --fs-uuid --set=boot D7C4-586F
fi
# This section was generated by a script. Do not modify the generated file - all changes
# will be lost the next time file is regenerated. Instead edit the BootLoaderSpec files.
#
# The blscfg command parses the BootLoaderSpec files stored in /boot/loader/entries and
# populates the boot menu. Please refer to the Boot Loader Specification documentation
# for the files format: https://www.freedesktop.org/wiki/Specifications/BootLoaderSpec/.
# The kernelopts variable should be defined in the grubenv file. But to ensure that menu
# entries populated from BootLoaderSpec files that use this variable work correctly even
# without a grubenv file, define a fallback kernelopts variable if this has not been set.
#
# The kernelopts variable in the grubenv file can be modified using the grubby tool or by
# executing the grub2-mkconfig tool. For the latter, the values of the GRUB_CMDLINE_LINUX
# and GRUB_CMDLINE_LINUX_DEFAULT options from /etc/default/grub file are used to set both
# the kernelopts variable in the grubenv file and the fallback kernelopts variable.
if [ -z "${kernelopts}" ]; then
set kernelopts="root=UUID=c91d6048-0454-45ca-b764-76d675514da0 ro resume=UUID=6b5ddbb5-9b43-4351-8ca3-60d4cd7a5cf7 rhgb quiet "
fi
insmod blscfg
blscfg
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/10_reset_boot_success ###
# Hiding the menu is ok if last boot was ok or if this is a first boot attempt to boot the entry
if [ "${boot_success}" = "1" -o "${boot_indeterminate}" = "1" ]; then
set menu_hide_ok=1
else
set menu_hide_ok=0
fi
# Reset boot_indeterminate after a successful boot
if [ "${boot_success}" = "1" ] ; then
set boot_indeterminate=0
# Avoid boot_indeterminate causing the menu to be hidden more then once
elif [ "${boot_indeterminate}" = "1" ]; then
set boot_indeterminate=2
fi
# Reset boot_success for current boot
set boot_success=0
save_env boot_success boot_indeterminate
### END /etc/grub.d/10_reset_boot_success ###
### BEGIN /etc/grub.d/12_menu_auto_hide ###
if [ x$feature_timeout_style = xy ] ; then
if [ "${menu_show_once}" ]; then
unset menu_show_once
save_env menu_show_once
set timeout_style=menu
set timeout=60
elif [ "${menu_auto_hide}" -a "${menu_hide_ok}" = "1" ]; then
set orig_timeout_style=${timeout_style}
set orig_timeout=${timeout}
if [ "${fastboot}" = "1" ]; then
# timeout_style=menu + timeout=0 avoids the countdown code keypress check
set timeout_style=menu
set timeout=0
else
set timeout_style=hidden
set timeout=1
fi
fi
fi
### END /etc/grub.d/12_menu_auto_hide ###
### BEGIN /etc/grub.d/14_menu_show_once ###
if [ x$feature_timeout_style = xy ]; then
if [ "${menu_show_once_timeout}" ]; then
set timeout_style=menu
set timeout="${menu_show_once_timeout}"
unset menu_show_once_timeout
save_env menu_show_once_timeout
fi
fi
### END /etc/grub.d/14_menu_show_once ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/20_ppc_terminfo ###
### END /etc/grub.d/20_ppc_terminfo ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-efi-D7C4-586F' {
insmod part_gpt
insmod fat
set root='hd0,gpt1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 D7C4-586F
else
search --no-floppy --fs-uuid --set=root D7C4-586F
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
# Other OS found, undo autohiding of menu unless menu_auto_hide=2
if [ "${orig_timeout_style}" -a "${menu_auto_hide}" != "2" ]; then
set timeout_style=${orig_timeout_style}
set timeout=${orig_timeout}
fi
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
menuentry 'System setup' $menuentry_id_option 'uefi-firmware' {
fwsetup
}
### 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 ###
[root@Austin-Inspiron-15-3567 etc]# cat fstab
#
# /etc/fstab
# Created by anaconda on Tue Apr 20 09:54:12 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
UUID=c91d6048-0454-45ca-b764-76d675514da0 / btrfs defaults 0 1
UUID=D7C4-586F /boot/efi vfat umask=0077,shortname=winnt 0 2
UUID=2507d4a8-71d4-42ba-a9bb-f69d28a356cf /run/media/austin/2507d4a8-71d4-42ba-a9bb-f69d28a356cf ext4 defaults,noatime 0 2
UUID=5914db71-e77a-474e-8143-edad647064bd /run/media/austin/5914db71-e77a-474e-8143-edad647064bd ext4 defaults 0 2
[root@Austin-Inspiron-15-3567 etc]#
Thanks for the input.
Please also provide from Fedora partition
/boot/grub/grubenv
[root@Austin-Inspiron-15-3567 grub2]# cat grubenv
# GRUB Environment Block
saved_entry=ee5e4c2e42a949c28d265f5ee7049204-5.12.8-300.fc34.x86_64
menu_auto_hide=1
boot_success=1
save_default=true
#######################################################################################################################################################################
#######################################################################################################################################################################
#######################################################################################################################################################################
#######################################################################################################################################################################
#######################################################################################################################################################################
##############################################[root@Austin-Inspiron-15-3567 grub2]
Here you have an opportunity to learn more about linux.
- Boot to Fedora
- Edit
/etc/default/grub
and change the above param tofalse
- Generate grub configuration
- Reboot to Garuda
- Undo the custom fix/solution, editing
/etc/grub.d/30_os-prober
(save) - Undo/remove the Fedora-specific grub CMDLINE parameters (save)
- Generate grub configuration
- Either check the generated Fedora entry in
/boot/grub/grub.cfg
forlinux
line parameters, or⦠reboot to Fedora, using Garuda grub
If after the above, Fedoraās grub entry automagically includes the lost parameters, or⦠boots normally (with plymouth etc.), report here and then I will explain everything.
Important Note: If using Fedora Primary entry fails, try again with the submenu entries.
I did them all but no luck
That's a pity.
Anyway, here 's the story.
Fedora wants to push the Linux community to a unified (multi)boot model, following freedesktop standards, so all these difficulties we face when multibooting become history. That's a great idea/proposal IMHO.
They created the functionality, so they can see/test if it works.
Because all the other organisms were not convinced(?) or haven't decided yet, they switched their booting model to this new method.
In order to do that, using grub, they had to modify the original grub package, patching it, adding special functionality that dynamically builds the kernel boot command line, reading other (files') configuration (similar to systemd-boot nd rEFInd templates).
When you boot with Fedora grub, because it is advanced (patched/modified), the boot process is complete with configured parameters.
When you boot with Garuda, or any other non-Fedora grub, only the proper partition is discovered, since there is nothing else discoverable inside the existing Fedora grub.cfg (inside which grub-mkconfig looks and gets command line parameters, as it does for every other Linux distro).
That's it.
Now, as I already explained (tried to...), what you will do is up to you and how you want to administer your system.
The workaround you have applied ADDS the CMDLINE parameters that you explicitly set on/for Garuda to ALL LINUX distributions on your computer. No other system needs them except Fedora. If you had 25 Linux systems multi-booting, only Fedora systems would profit from that addition (because they have none), while all the others get them twice (their original native parameters are already discovered and properly set by grub).
As already suggested, if you are going to primarily use Garuda as your everyday system, you may add a custom grub entry for Fedora only in /boot/grub/custom.cfg
and exclude auto discovery for Fedora.
That's the proper way IMO.
But since you are the boss on your own system and since you want to gain knowledge, you may choose whatever is in your desire.
If you disagree with my technical assessment, please, provide justification and evidence. I always like to gain more knowledge
Maybe it's not needed to point out the fact that the workaround will be gone after each grub/os-prober package update
, this was what I was waiting for, as a user of multiple OSs.
I was thinking of kind of the exact same idea. This is awesome I hope this feature is implemented to all Linux OSs soon, including our Garuda!
Thank you so much for taking the time, and explaining this, now it kinda makes some sense.
I looked again on Fedora documentation (you should try yourself, there is a lot knowledge to gain over there ) and I believe there is a better/proper method (maybe twoā¦) to properly boot Fedora from Garuda grub.
https://fedoraproject.org/wiki/Changes/BootLoaderSpecByDefault#Upgrade.2Fcompatibility_impact
It needed one more thing to what I had asked you to test.
On platforms using grub, users can also switch back by installing the grubby-deprecated package, setting āGRUB_ENABLE_BLSCFG=falseā in /etc/default/grub , and using grub2-mkconfig to re-generate their configuration file.
Manipulating grub and kernels with grubby-deprecated was the missing piece.
Another possibly/probably viable method would be to permanently manually add required kernel parameters inside grub.cfg
kernel command line (starting with linux
), instead of using garuda os-prober
terrible way (which changes after each os-prober package update). IIUC Fedora by default (w/o the previous method applied) does not change/update grub.cfg
when updating grub configuration, because it uses the BLSCFG boot loader entries for kernels with drop-in files.
Very sorry for a late reply, but I installed grubby-deprecated and uninstalled grubby in fedora, and rest as before āGRUB_ENABLE_BLSCFG=falseā in /etc/default/grub, and using grub2-mkconfig regenerated fedora's configuration file. But still no luck, I am not able to find what I am doing wrong?
I have told you from the start.
This is an exclusive Fedora related (and controlled) issue. Only Fedora people can provide answers, just like Garuda can provide answers related to package/system modifications they do.
Yeah you are absolutely right, thank you so much for supporting this post.
. I will inform here, if I get it right along with the steps I took to do it.
This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.
This is precisely why Garuda does not officially provide support for Multi-booting. The OP has 4 different OSās installed and wonders why there are problems booting. This thread was a prime example of why users who want to multi-boot are expected to work out there own issues.
Over 75 posts of wasted Garuda support time to finally in the end have @petsam identify this as a Fedora package issue.
In the future look to resolve your multi-boot problems youāve created by installing so many OSās on your own time. If you create another support request for your multi-boot problems and I notice it, I will lock it immediately.
Do your own research and solve your own issues if you wish to boot so many OSās. This is not a Garuda support responsibility that so much valuable support time needs to be dedicated towards.
Kudos to @petsam for having the patience to stick with this issue til its resolution, (because no one else would have).