I can't edit /etc/default/grub

Interstellar_1@pawb.social to Linux@lemmy.ml – 43 points –

I'm trying to update my grub boot order back to booting the first option instead of the second, so I run sudo nano /etc/default/grub, but it brings up this, which is not the file I want to edit.

I'm on fedora 38

22

This should get you back to defaults:

sudo cp /usr/share/grub/default/grub /etc/default/grub && sudo update-grub

At some point you definitely did accidentally write to /etc/default/grub when you meant to write to /boot/grub/grub.cfg.

There's no shame in that; Grub's configuration process is very confusing and counter-intuitive.

Everybody who has used Linux long enough has stories of breaking their systems in sillier ways, and this didn't even really break your system 🙂.

THanks! but I'm getting the error cp: cannot stat '/usr/share/grub/default/grub': No such file or directory when running this.

What version of Ubuntu are you using?

What is the output of the following command?:

dpkg -l | grep grub

If you urgently want your grub menu to default to the first entry that can be done first, but unless that's needed I'd prefer to get to the root of the problem(s) and get a proper fix.

I'm using fedora 38

Ahh, sorry.

For Fedora it looks like the default /etc/default/grub looks like this:

GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="rhgb quiet" GRUB_DISABLE_RECOVERY="true" GRUB_ENABLE_BLSCFG=true

( Taken from https://discussion.fedoraproject.org/t/how-to-regenerate-etc-default-grub/72677/9 )

If you're using LVM / LUKS you may need additional kernel parameters, like resume=... for suspend to disk to work properly.

Please, before doing anything else, post the output of the following:

cat /proc/cmdline

And make a backup of your existing grub.cfg with:

sudo cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg-backup-$(date --iso-8601=s)

Also, be sure that you have a LiveUSB on hand. You don't want to be SOL if we break something and can't boot again without fixing it first.

Interstellar_1@pawb.social

Sorry again. I wrote this last comment (and this one, TBH) from my phone and "--iso=s" should have been "--iso-8601=s" . I've edited my comment and the command should now work (Making a backup of your grub.cfg containing the date, to the second, in the filename. I did that to hopefully avoid you running the same command again after trying some fixes and accidentally clobbering your backup).

This looks like grub2-mkconfig was run with the output mistakenly set to /etc/default/grub. Someone ran

grub2-mkconfig -o /etc/default/grub

Instead of

grub2-mkconfig -o /boot/grub2/grub.cfg

so I run sudo nano /etc/default/grub

For improved security during file edits that require root access, it's highly advised to use sudoedit (or sudo -e). This method is considered the standard practice to avoid the security pitfalls associated with directly invoking editors with sudo. To ensure the use of nano with sudoedit, simply set the VISUAL environment variable with export VISUAL=nano before running sudoedit . Alternatively, for a one-off command: VISUAL=nano sudoedit /path/to/file.

Please note that while sudoedit is a safer starting point, it's not the only method available. Alternatives such as doas, doasedit, or leveraging polkit with pkexec can offer even more controlled and secure ways to manage file editing with elevated privileges. However, it's perfectly acceptable to stick with sudoedit, as it's a commonly trusted tool.

Be aware that direct usage of sudo nano or other editors is strongly discouraged. It bypasses important security mechanisms and can lead to inadvertent system-wide risks.

EDIT: changed VISUAL=nano sudoedit to VISUAL=nano sudoedit /path/to/file.

Never heard of sudoedit. I want to experiment with a system where I alias sudo=pkexec, VanillaOS does that

3 more...

Somehow your /etc/default/grub file contents have been replaced with that of /boot/grub/grub.cfg

That looks like the grub file that's put in /boot to make the menu to boot the system.

Are you sure you've never run "grub2-mkconfig -o /etc/default/grub"? Because making the grub file you may have overwritten the config file.

By the look of things I would reinstall grub with my package manager to forcing to overrun config files. Keep in mind this would return the file to your distribution defaults.

Something has definitely been buggered seven ways from sunday here. If you need it I'm willing to provide you my config which you could then paste in. I haven't changed anything, just enabled OS prober. Take this as a last resort though.

What distro?

Fedora 38

Well, if you look at the file... and search the internet for "fedora edit grub entry not possible" that works.

You use grub2-mkconfig to create this file, and what you want to change it in another file that is used to create this one.

The thing is, what do you want to edit?

I want to edit the grub config, to change the default boot order

Did you already do an internet search? Positive you will find that answer