Hello, I installed a grub2 theme yesterday and on rebooting, grub wasn’t detecting Fedora, just Windows. (I dual boot Fedora and Win10.) I’ve tried chrooting with a live USB and using the grub terminal, but none of that has worked. Help??
When entering your bios/uefi settings (chose UEFI Firmware Settings on your screen), under something like “Boot Options”, can you chose the fedora Boot Manager?
Yeah, I can, but it just loads up into the grub menu that doesn’t work.
The grub menu, does it list your Windows Install and one or more Linux kernels?
And what does not work?
Starting the windows OS from that Position or Linux?
No, just the Windows Install and UEFI Settings. I’ve included a picture in the post. As for what doesn’t work, I simply can’t boot into Linux at all. I can boot into Windows, though.
This doesn’t look like the grub boot screen for me.
One thing important is to chose the Fedora Boot Manager in Bios/UEFI.
And another thing, if Windows is not schuting down entirely., this causes issues
http://www.surfacetablethelp.com/2017/06/disable-hibernation-and-faststartup-in-windows-10-to-dual-boot-with-ubuntu.html
Maybe a not so good article, but with screenshots:
Yeah, it’s a custom theme I installed. I did contact the developer of the theme but they said it wasn’t a theme issue. I have been dual booting Fedora + Win10 for like a month now, so I don’t think that article will help much, it just looks like a installation tutorial.
Also, is this what you’re talking about?
Yes, I asked because this wasn’t obvious to me from your first post.
Ah, okay. As I was saying, that is definitely grub. Pressing C leads you to the grub terminal, but I still have no idea how to access Fedora.
Basically in a dual boot configuration, you have two options.
- Installing grub into the same efi partition where the windows boot manager resides or
- Installing grub into its own partition.
Seems like your Fedora Menu entry is missing
You could paste your grub config.
Just to be clear, I’d have to chroot from a live USB to access that file, right?
Nope, I can’t access the grub.cfg file at all. I simply can’t chroot into the system, I’m using the official Fedora guide too. Is a reinstall the only option? I’ve got way too much stuff on there to lose.
Also, the guide I’m using:
Better use an USB live image of Fedora and mount your file system on your hard drive in your live system.
#
# 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,gpt8'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt8 --hint-efi=hd0,gpt8 --hint-baremetal=ahci0,gpt8 1339ff31-2770-40c5-8983-e26f24c962ce
else
search --no-floppy --fs-uuid --set=root 1339ff31-2770-40c5-8983-e26f24c962ce
fi
insmod part_gpt
insmod fat
set boot='hd0,gpt7'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=boot --hint-bios=hd0,gpt7 --hint-efi=hd0,gpt7 --hint-baremetal=ahci0,gpt7 AC68-6CDE
else
search --no-floppy --fs-uuid --set=boot AC68-6CDE
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=1339ff31-2770-40c5-8983-e26f24c962ce ro rootflags=subvol=root resume=UUID=12c3f46c-563f-49a6-957f-fdc72f703893 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-E034-FB46' {
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 E034-FB46
else
search --no-floppy --fs-uuid --set=root E034-FB46
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 'UEFI Firmware Settings' $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 ###
Here’s the grub.cfg file I found inside /root/boot/grub2.
As far as I can see this looks good.
Can you provide the Output of the following command?
lsblk -o NAME,FSTYPE,LABEL,UUID,FSAVAIL,FSUSE%,MOUNTPOINT
Sorry for being late, also;
[liveuser@localhost-live ~]$ lsblk -o NAME,FSTYPE,LABEL,UUID,FSAVAIL,FSUSE%,MOUNTPOINT
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
loop0 squashfs
loop1 ext4 Anaconda 8f4eeabf-c1db-415a-af32-8436661490ea
├─live-rw ext4 Anaconda 8f4eeabf-c1db-415a-af32-8436661490ea 1G 84% /
└─live-base ext4 Anaconda 8f4eeabf-c1db-415a-af32-8436661490ea
loop2
└─live-rw ext4 Anaconda 8f4eeabf-c1db-415a-af32-8436661490ea 1G 84% /
sda
├─sda1 vfat SYSTEM_DRV E034-FB46
├─sda2
├─sda3 ntfs 32E6E74CE6E70EC3
├─sda4 ntfs New Volume 744E51C44E518032
├─sda5 ntfs LENOVO 6C70BD9570BD668C
├─sda6 ntfs WINRE_DRV 1E583A4C583A2347
├─sda7 vfat AC68-6CDE
├─sda8 btrfs fedora_fedora-80xh 1339ff31-2770-40c5-8983-e26f24c962ce
└─sda9 swap 12c3f46c-563f-49a6-957f-fdc72f703893
sdb iso9660 Fedora-KDE-Live-34-1-2 2021-04-23-11-23-34-00
├─sdb1 iso9660 Fedora-KDE-Live-34-1-2 2021-04-23-11-23-34-00 0 100% /run/initramfs/live
├─sdb2 vfat ANACONDA E34E-576F
└─sdb3 hfsplus ANACONDA abfd1e18-f2b7-3797-b707-3ba31820422e
sr0
zram0 [SWAP]
This also is correct, provided this is the only boot config you have written.
How did you install the theme?
Did you directly edid something under /boot/ ?
You could use your Live System to save your Data, make a backup of your old home directory and install fresh.
Maybe this guide will help you installing a new boot loader:
https://discussion.fedoraproject.org/t/kernel-panic/71783/2?u=huben
But before trying anything, I’d backup my data.
See little how-to below
The backup could work like this:
Here the commands in case you want to backup data:
# First switch to root
sudo su -
# Show file system to find your disk to backup
lsblk -f
# Mount the file system, in my case it's the btrfs volume /dev/vda3
mount /dev/vda3 /mnt/
# Check what's there
ls -ahl /mnt/
# Now copy your data to an external disk
cp -vr /mnt/home/ /some/external/disk/
# or use rsync https://linuxhint.com/rsync_copy_files/
Then you may want to try to fix your boot process first or try a new install.
calimari
huben has some good advice but I’d also check your /boot/loader/entries folder - that has one .conf file for each linux kernel. In the grub.cfg, they are loaded by the
insmod blscfg
command.
Other OSes are specified in the old-fashioned way by being referenced directly from grub.cfg. So if the theme has screwed your /boot/loader/entries directory, you’d see exactly your symptoms.
If that directory and its files are missing, hopefully, you can find and replace those files. If not, try a dnf reinstall of the latest kernel via the live USB route to access your linux. That should recreate the .conf file for that kernel. Make sure that that directory exists before the kernel reinstall - and check it afterwards for the .conf file.
I would guess that sda1 and sda7 in your post #16 are both efi.
I would also venture that sda1 was the windows efi partition and sda7 was created during the linux install with grub for linux in that partiiton.
Now your issue is the grub theme you installed was placed on the windows efi partition (sda1) and you cannot access the grub partition for linux (sda7).
This type problem crops up when you have more than one efi partition especially when you install 3rd party software (the grub theme).
Now you need to go through the recovery steps to merge the boot loaders from both efi partitions and delete the extra partition so it does not interfere again.
A quick google search for “how to merge 2 efi partitions in fedora” gives several methods to solve this issue.