Make Grub Load Last Used OS (SOLVED)

willyum

New Member
Joined
Apr 28, 2020
Messages
12
Reaction score
3
Credits
121
I dual boot Windows and Fedora. Currently Fedora is the default, but I would like GRUB to load the last one used. I have poked around the internet for the answer, but it appears that Fedora has a different process than some others. Can someone instruct me.
 


CrazedNerd

Gold Member
Gold Supporter
Joined
Mar 31, 2021
Messages
593
Reaction score
235
Credits
5,017
I dual boot Windows and Fedora. Currently Fedora is the default, but I would like GRUB to load the last one used. I have poked around the internet for the answer, but it appears that Fedora has a different process than some others. Can someone instruct me.
Have you tried looking into how to edit a windows boot file in a windows/linux setting? I've never done that before, you might be able to increase the time on the windows boot menu for choosing between the two.
 
OP
W

willyum

New Member
Joined
Apr 28, 2020
Messages
12
Reaction score
3
Credits
121
Long ago, I was using a different distro that was using legacy grub and non-eufi and there was a relatively simple way to make grub change the default ( I think that is what it does) in the menu to the last OS used. I think I'm finding those same commands now for some other distros, but it doesn't work for my current Fedora installation. I have no problem with the time available to manually select the OS and it is really not a big deal. It is just a nicety I would like to have back, if possible.
 

wizardfromoz

Administrator
Staff member
Gold Supporter
Joined
Apr 30, 2017
Messages
7,503
Reaction score
6,350
Credits
26,518
@willyum , hi.

Can you provide here the content of your grub file

Code:
cat /etc/default/grub

Thanks

Chris Turner
wizardfromoz
 
OP
W

willyum

New Member
Joined
Apr 28, 2020
Messages
12
Reaction score
3
Credits
121
GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" #GRUB_DEFAULT=0 GRUB_DEFAULT=saved GRUB_SAVEDEFAULT=true GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="resume=/dev/mapper/fedora_localhost--live-swap rd.lvm.lv=fedora_localhost-live/root rd.lvm.lv=fedora_localhost-live/swap rhgb quiet" GRUB_DISABLE_RECOVERY="true" GRUB_ENABLE_BLSCFG=true
 

wizardfromoz

Administrator
Staff member
Gold Supporter
Joined
Apr 30, 2017
Messages
7,503
Reaction score
6,350
Credits
26,518
OK, you have 2/3 of it right with the lines 4 and 5

Code:
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

That is all that is needed for most Distros.

Fedora however provides one additional curve ball.

So change it from

Code:
GRUB_ENABLE_BLSCFG=true

to

GRUB_ENABLE_BLSCFG=false

Save and exit the file, then run

Code:
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Then reboot and see how you go.

Cheers
Wizard
 
OP
W

willyum

New Member
Joined
Apr 28, 2020
Messages
12
Reaction score
3
Credits
121
OK. Did that. Now making a selection from the menu results in an error message that ends with .../EFI/fedora/grubenv not found.
I checked with Nemo and, indeed, grubenv is not in the path /boot/efi/EFI/fedora/grubenv, but is located in /boot/grub2/grubenv.

Follow up:
I fixed it by copying the grubenv file to the /boot/efi/EFI/fedora directory. Works as it should.
Thanks for the help.
 
Last edited:

wizardfromoz

Administrator
Staff member
Gold Supporter
Joined
Apr 30, 2017
Messages
7,503
Reaction score
6,350
Credits
26,518
I understand. Fedora Wiki has this, in part

(Source https://fedoraproject.org/wiki/GRUB_2 )

Updating the GRUB configuration file​


The GRUB configuration file is located at /boot/grub2/grub.cfg and is intended to be a static file that does not need updating. In case of disk replacement, or installation of another Linux distribution, /boot/grub2/grub.cfg should be updated. Use the following commands:

sudo grub2-mkconfig -o /etc/grub2.cfg

sudo grub2-mkconfig -o /etc/grub2-efi.cfg

sudo grub2-mkconfig -o /boot/grub2/grub.cfg - Legacy boot method for grub update.

These commands use information provided by the os-prober utility to add entries for other Linux distributions and Windows.


Note.png
Refrain from using grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg going forward. This is a valid location on Fedora 33 and earlier. However on Fedora 34 and later, it is a small stub file that merely forwards to /boot/grub2/grub.cfg. See the Reinstalling GRUB section if you have accidentally overwritten this file.

The stub described in the last lines is what I still use and it works on my Fedora 36, but configurations differ from computer to computer.

By the looks of it we are better advised to be using

Code:
sudo grub2-mkconfig -o /etc/grub2.cfg

OR

sudo grub2-mkconfig -o /etc/grub2-efi.cfg

The BLS line that was in your /etc/default/grub was the curve ball I was talking about, and it negates the effect of

GRUB_SAVEDEFAULT=true

Changing the BLS from true to false remedies that.

Glad you found a working solution, anyway.

Cheers

Wizard
 
OP
W

willyum

New Member
Joined
Apr 28, 2020
Messages
12
Reaction score
3
Credits
121
Thanks for the follow-up.
Even a monkey at the keyboard can occasionally write a complete sentence.
I just ignorantly copied the file grub was looking for into the place it was looking and it worked. Monkey see monkey do.
So. even though it works, is it the correct way to do it? Should it be done differently to keep from screwing up something down the road? Should I go through the process again replacing the code you provided in msg #6 to what you provided in msg #8?
 

wizardfromoz

Administrator
Staff member
Gold Supporter
Joined
Apr 30, 2017
Messages
7,503
Reaction score
6,350
Credits
26,518
I just love the monkey at a keyboard analogy ... now why do I feel an urge to hang from a tree branch and peel a banana with my toes?
I just ignorantly copied the file grub was looking for into the place it was looking and it worked.

Sounds like enterprise to me, in practising your troubleshooting skills. :)

In terms of repeating the process with the recommended command - your computer, your decision.

If the way you went is producing the desired result, I would stay with it, but that's me.

A test of the setup will be when the next kernel upgrade goes through, as there are occasions when the upgrade can alter your /etc/default/grub

I would certainly take a snapshot of the system as it works now. If you installed under BTRFS, perhaps install Snapper and use it, if EXT4 then Timeshift.

Cheers

Wizard
 
OP
W

willyum

New Member
Joined
Apr 28, 2020
Messages
12
Reaction score
3
Credits
121
I just love the monkey at a keyboard analogy ... now why do I feel an urge to hang from a tree branch and peel a banana with my toes?


Sounds like enterprise to me, in practising your troubleshooting skills. :)

In terms of repeating the process with the recommended command - your computer, your decision.

If the way you went is producing the desired result, I would stay with it, but that's me.

A test of the setup will be when the next kernel upgrade goes through, as there are occasions when the upgrade can alter your /etc/default/grub

I would certainly take a snapshot of the system as it works now. If you installed under BTRFS, perhaps install Snapper and use it, if EXT4 then Timeshift.

Cheers

Wizard
If it ain't broke, don't fix it. So, I'll leave it til it gets broke. Then I'll call on you to help me fix it. :)
But, I will do a backup.
Thanks.
 
$100 Digital Ocean Credit
Get a free VM to test out Linux!

Linux.org Hosting Donations
Consider making a donation

Members online


Top