How to remove extra boot entries after timeshifting

I have been trouble shooting another issue, and ended up needing to use timeshift to go back to an earlier snapshot. It wasn't a big deal, and worked without any issues. However, when I boot up, I now see four boot options instead of just two during the countdown sequence before opening the login. I'm wondering how to remove these extra entries, and what they are doing there in the first place. I've looked into the Wiki, and googled around, but assume that it is Garuda specific, and so have come here. Any help would be greatly appreciated. Here is my inix -Faz:

System:
  Kernel: 5.15.7-zen1-1-zen x86_64 bits: 64 compiler: gcc v: 11.1.0
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
    root=UUID=b81a6f3e-b667-450e-9f4d-9ad16bae681d rw [email protected]
    quiet splash rd.udev.log_priority=3 vt.global_cursor_default=0
    systemd.unified_cgroup_hierarchy=1 loglevel=3
  Desktop: GNOME 41.2 tk: GTK 3.24.30 wm: gnome-shell dm: GDM 41.0
    Distro: Garuda Linux base: Arch Linux
Machine:
  Type: Laptop System: System76 product: Lemur Pro v: lemp9
    serial: <superuser required> Chassis: type: 9 serial: <superuser required>
  Mobo: System76 model: Lemur Pro v: lemp9 serial: <superuser required>
    UEFI: coreboot v: 2020-05-15_e2baafa date: 05/15/2020
Battery:
  ID-1: BAT0 charge: 54.2 Wh (99.3%) condition: 54.6/73.9 Wh (73.9%)
    volts: 8.7 min: 7.7 model: Notebook BAT type: Li-ion serial: <filter>
    status: N/A
CPU:
  Info: model: Intel Core i7-10510U bits: 64 type: MT MCP
    arch: Comet/Whiskey Lake note: check family: 6 model-id: 0x8E (142)
    stepping: 0xC (12) microcode: 0xEA
  Topology: cpus: 1x cores: 4 tpc: 2 threads: 8 smt: enabled cache:
    L1: 256 KiB desc: d-4x32 KiB; i-4x32 KiB L2: 1024 KiB desc: 4x256 KiB
    L3: 8 MiB desc: 1x8 MiB
  Speed (MHz): avg: 4830 high: 4884 min/max: 400/4900 scaling:
    driver: intel_pstate governor: performance cores: 1: 4848 2: 4884 3: 4837
    4: 4857 5: 4802 6: 4805 7: 4803 8: 4804 bogomips: 36799
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
  Vulnerabilities:
  Type: itlb_multihit status: KVM: VMX disabled
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: spec_store_bypass
    mitigation: Speculative Store Bypass disabled via prctl
  Type: spectre_v1
    mitigation: usercopy/swapgs barriers and __user pointer sanitization
  Type: spectre_v2
    mitigation: Enhanced IBRS, IBPB: conditional, RSB filling
  Type: srbds mitigation: TSX disabled
  Type: tsx_async_abort status: Not affected
Graphics:
  Device-1: Intel CometLake-U GT2 [UHD Graphics] driver: i915 v: kernel
    bus-ID: 00:02.0 chip-ID: 8086:9b41 class-ID: 0300
  Device-2: Chicony Chicony USB2.0 Camera type: USB driver: uvcvideo
    bus-ID: 1-7:2 chip-ID: 04f2:b685 class-ID: 0e02
  Display: x11 server: X.Org 1.21.1.1 compositor: gnome-shell driver:
    loaded: intel unloaded: modesetting alternate: fbdev,vesa display-ID: :1
    screens: 1
  Screen-1: 0 s-res: 3840x1080 s-dpi: 96 s-size: 1016x286mm (40.0x11.3")
    s-diag: 1055mm (41.6")
  Monitor-1: eDP1 res: 1920x1080 hz: 60 dpi: 157
    size: 310x170mm (12.2x6.7") diag: 354mm (13.9")
  Monitor-2: HDMI2 res: 1920x1080 hz: 60 dpi: 102
    size: 480x270mm (18.9x10.6") diag: 551mm (21.7")
  Message: Unable to show advanced data. Required tool glxinfo missing.
Audio:
  Device-1: Intel Comet Lake PCH-LP cAVS driver: snd_hda_intel v: kernel
    alternate: snd_soc_skl,snd_sof_pci_intel_cnl bus-ID: 00:1f.3
    chip-ID: 8086:02c8 class-ID: 0403
  Sound Server-1: ALSA v: k5.15.7-zen1-1-zen running: yes
  Sound Server-2: JACK v: 1.9.19 running: no
  Sound Server-3: PulseAudio v: 15.0 running: no
  Sound Server-4: PipeWire v: 0.3.41 running: yes
Network:
  Device-1: Intel Wi-Fi 6 AX200 driver: iwlwifi v: kernel bus-ID: 02:00.0
    chip-ID: 8086:2723 class-ID: 0280
  IF: wlp2s0 state: up mac: <filter>
Bluetooth:
  Device-1: Intel AX200 Bluetooth type: USB driver: btusb v: 0.8
    bus-ID: 1-10:3 chip-ID: 8087:0029 class-ID: e001
  Report: bt-adapter ID: hci0 rfk-id: 0 state: down
    bt-service: enabled,running rfk-block: hardware: no software: yes
    address: <filter>
Drives:
  Local Storage: total: 465.76 GiB used: 116.71 GiB (25.1%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung
    model: SSD 970 EVO Plus 500GB size: 465.76 GiB block-size: physical: 512 B
    logical: 512 B speed: 31.6 Gb/s lanes: 4 type: SSD serial: <filter>
    rev: 2B2QEXM7 temp: 39.9 C scheme: GPT
Partition:
  ID-1: / raw-size: 465.51 GiB size: 465.51 GiB (100.00%)
    used: 116.71 GiB (25.1%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-2: /boot/efi raw-size: 256 MiB size: 252 MiB (98.46%)
    used: 546 KiB (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
  ID-3: /home raw-size: 465.51 GiB size: 465.51 GiB (100.00%)
    used: 116.71 GiB (25.1%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-4: /var/log raw-size: 465.51 GiB size: 465.51 GiB (100.00%)
    used: 116.71 GiB (25.1%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-5: /var/tmp raw-size: 465.51 GiB size: 465.51 GiB (100.00%)
    used: 116.71 GiB (25.1%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
Swap:
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default)
  ID-1: swap-1 type: zram size: 15.5 GiB used: 1.8 MiB (0.0%) priority: 100
    dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 77.0 C pch: 59.0 C mobo: N/A
  Fan Speeds (RPM): N/A
Info:
  Processes: 335 Uptime: 8h 40m wakeups: 6 Memory: 15.5 GiB
  used: 4.5 GiB (29.0%) Init: systemd v: 249 tool: systemctl Compilers:
  gcc: 11.1.0 clang: 13.0.0 Packages: pacman: 1572 lib: 374 Shell: fish
  v: 3.3.1 running-in: tmux: inxi: 3.3.11

Need two outputs,

sudo update-grub

or

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

And the second one is

sudo os-prober

Hum... couldn't get anything out of sudo os-prober, but here are the outputs:

╭─[email protected] in ~ took 4s
 ╰─λ sudo grub-mkconfig -o /boot/grub/grub.cfg


Generating grub configuration file ...
Found theme: /usr/share/grub/themes/garuda/theme.txt
Found linux image: /boot/vmlinuz-linux-zen
Found initrd image: /boot/intel-ucode.img /boot/initramfs-linux-zen.img
Found fallback initrd image(s) in /boot:  intel-ucode.img initramfs-linux-zen-fallback.img
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Adding boot menu entry for UEFI Firmware Settings ...
Detecting snapshots ...
Found snapshot: 2022-01-15 17:04:45 | timeshift-btrfs/snapshots/2022-01-15_17-04-45/@ | ondemand | N/A                                           |
Found snapshot: 2022-01-15 16:57:10 | timeshift-btrfs/snapshots/2022-01-15_16-57-10/@ | ondemand | {timeshift-autosnap} {created before upgrade} |
Found 2 snapshot(s)
Unmount /tmp/grub-btrfs.lEsCvghHjJ .. Success
Found memtest86+ image: /boot/memtest86+/memtest.bin
/usr/bin/grub-probe: warning: unknown device type nvme0n1.
done

 ╭─[email protected] in ~ took 1s
 ╰─λ sudo os-prober

 ╭─[email protected] in ~ took 286ms
 ╰─λ

In your outputs of grub update I can't really see any extra boot option. Can you point out which boot option you think is extra?

1 Like

TL;DR: If you are just going to use grub, I wouldn't even bother--just ignore the extra entries until they get kicked off the list by fresh kernels. If that is going to bother you, get something besides grub.

Cleaning up superfluous grub entries can be kind of a nightmare. Since the primary development focus of grub has always been on making it as universally compatible as possible, buggy stuff like unwanted entries can tend to crop up from time to time. There are a thousand threads you can read through with a thousand different approaches to fixing the issue (here or here or here, for example).

One thing to bear in mind is there is a disproportionate amount of risk involved with manipulating the files that grub deals with. The nuisance of briefly seeing extra menu options while you are booting your system is nothing compared to the aggravation you can cause yourself by accidentally deleting a little file that your system needs to start. Be careful not to throw the baby out with the bathwater.

I personally have spent a great deal of time trying to get a nice, tidy grub menu, and since I multiboot it is a constant labor to try to maintain. A simple kernel update can mess it up. It can be constant papercuts to keep it nice and neat, and at the end of the day it's just lipstick on a pig anyway because grub is...well, let's face it, it's kind of ugly no matter what you do.

Consider trying one of the many GUI options available for maintaining grub easily. Grub Customizer is popular, easy to use, and it's available in the repository (sudo pacman -S grub-customizer). Heads-up, it will make you remove garuda-boot-options because it conflicts. It's not going to break anything, just something to keep in mind if you are using that.

Another way people go sometimes is to use a different bootloader. With some bootloaders you will sacrifice the ability to boot into old BIOS machines, which grub is able to do, but on a nice System76 machine like yours you obviously wouldn't have to worry about that.

Here's a good list from AlternativeTo.net. I've also seen SYSLINUX mentioned a bit, and here's the ArchWiki for it.

Personally I have been using the rEFInd boot manager for a while now and I've never looked back. It especially simplifies a multiboot setup like mine. It is easy to use, works extremely well, and it's attractive. There are community themes and everything, or you can make your own. Check it out here.

4 Likes

Many here would advise against installing grub customizer as it can cause far worse problems than it's worth.

Other than that one quibble, great advice.

Thanks for helping out ob the forum @BluishHumility you've been giving some great advice, Nice to see all the new community members lending a hand lately.

4 Likes

Wait a minute, isn't grub customizer not supported by Garuda? As it conflicts with grub-garuda?

I'm not positive if it currently still is, but that was done in an effort to prevent grub customizer from creating big problems. No one on the team is keen on its usage. Best to learn how to manipulate things manually as that is easily correctable if a mistake is made.

With grub cusomizer it's more like trying to unscramble scrambled eggs. :smile:

3 Likes

Actually I recently found that if you u use snapshots and get extra boot options in os-prober like Arch Linux or Garuda Linux, the same, then it's most probably because of an old snapshot which is outdated buy somehow not have beem deleted yet. That's why I asked for the

sudo os-prober

output

Upon trying to update os-prober (since I wasn't getting any output), I discovered a conflict:

 ╭─[email protected] in ~
 ╰─λ sudo os-prober
[sudo] password for benjamin:

 ╭─[email protected] in ~ took 2s
 ╰─λ sudo pacman -S os-prober
resolving dependencies...
looking for conflicting packages...
:: os-prober and os-prober-btrfs are in conflict. Remove os-prober-btrfs? [y/N]

I found another thread which discusses os-prober-btrfs, but did not find anything which indicates that I should answer the above yes. Anyhow, I'm wondering how to resolve this conflict, and if this is the reason I'm not getting any output.

Thanks again for all of your help.

This is great, and very helpful. I'm happy to live with the extra grub entries so long as there isn't anything wrong, or something easy to get them out of there. Cheers!

2 Likes

os-prober-btrfs is the os-prober for btrfs file systems. You don't need to install os-prober. And, please point me out which entries do you think are extra. Cause your grub output showed no extra boot entry.

:joy: Fair enough! That is good feedback.

I've never tried it because the whole idea of using a bunch of 40_custom scripts to clean up the grub menu seems kind of like sweeping the dirt under the rug. I only mentioned it because I get the impression it is popular and easy to use, plus it is in the repository. I had no idea you guys have a checkered history with the software!

Thank you, I really appreciate that! :blush:

3 Likes

This cannot be overstated.

However... :wink:

You'll not learn much about Linux if you become (too) frightened of experimentation. I mean getting down with it. You will learn much along the way. Even in failure. (Guard your data well!)

Sure, educate yourself. Becomes a theoretical GRUB expert. There are a multitude of resources for GRUB. But at the end of the day, you will only learn Linux by getting down n' dirty with it.

I will always be a Linux learner. I say this from the perspective of a someone who stumbled into it back in the Stone Age, and for years now I've kept stumbling and bumbling around in it and it hasn't killed me yet. So don't be afraid to learn.

We'll be right there with you.
:smiley:

3 Likes

Sorry for slow reply. I tried to reproduce the extra entries, but they are gone. Thanks again for your help. It's opening just as before :slight_smile:

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.