fedora-silverblue / issue-tracker

Fedora Silverblue issue tracker
https://fedoraproject.org/atomic-desktops/silverblue/
125 stars 3 forks source link

[BUG?] grub error about linux16 and initrd16 #268

Closed CicadaSeventeen closed 2 years ago

CicadaSeventeen commented 2 years ago

Describe the bug When booting, there will be some additional options in grub2 which do not work at all.

To Reproduce Please describe the steps needed to reproduce the bug:

  1. Install a new SIlverblue or Kinoite in amd64 UEFI computer.
  2. Using rpm-ostree to make more than one grub options.
  3. Boot and select the lower options, and such things happen.
  4. I find that in qemu virtual machine such problem does not exist, but silverblue (with gnome DE) has same problem as Kinoite.

Expected behavior For example, on my laptop /boot/grub2/grub.cfg shows:

Fedora Linux 35.20220503.0 (Kinoite) (ostree:0)
Fedora Linux 35.20220424.0 (Kinoite) (ostree:1)
Fedora Linux 35.20220424.0 (Kinoite) (ostree:2)
Fedora Linux 35.20220401.0 (Kinoite) (ostree:3)
Fedora Linux 35.20220401.0 (Kinoite) (ostree:4)
Fedora Linux 35.20220410.0 (Kinoite) (ostree:5)
Windows Boot Manager (on /dev/nvme1n1p1)
UEFI Firmware Settings
...

But when booting, there shows 12 options rather than 7. Every Fedora Linux 35.20220503.0 (Kinoite) (ostree:x) appears twice, in which the upper one can boot but the lower one cannot. If I choose it, it will shows: something like linux16 not found and initrd16 not found. I manually change linux16 to linux and initrd16 to initrd, and the booting works. Opening /boot/gurb2/grub.cfg, there is like

menuentry 'Fedora Linux 35.20220503.0 (Kinoite) (ostree:0)' --class gnu-linux --class gnu --class os --unrestricted 'ostree-0-546f8e47-8741-4dc0-96f6-833faa7b5935' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod ext2
search --no-floppy --fs-uuid --set=root 546f8e47-8741-4dc0-96f6-833faa7b5935
linux16 /ostree/fedora-e4c1e66cf60c9e7059b1132e5c2dfaeb2c0a8a11f8824c73e039d88ed2b8e99d/vmlinuz-5.17.5-200.fc35.x86_64 resume=UUID=5ba106d7-6614-4e38-ba77-0244996d07d6 rhgb quiet root=UUID=ebbb378b-00bf-44ef-8381-a90a0a449d6a rootflags=subvol=root ostree=/ostree/boot.0/fedora/e4c1e66cf60c9e7059b1132e5c2dfaeb2c0a8a11f8824c73e039d88ed2b8e99d/0 rd.driver.blacklist=nouveau modprobe.blacklist=nouveau nvidia-drm.modeset=1
initrd16 /ostree/fedora-e4c1e66cf60c9e7059b1132e5c2dfaeb2c0a8a11f8824c73e039d88ed2b8e99d/initramfs-5.17.5-200.fc35.x86_64.img
}

In this file I do not find those options that work. I try finding them in other grub.cfg but fail. If opening them in gurb menu when booting, there are linux and initrd rather than *16 ones which makes booting possible. In /boot/efi/EFI/fedora/grub.cfg there is only

search --no-floppy --fs-uuid --set=dev 546f8e47-8741-4dc0-96f6-833faa7b5935
set prefix=($dev)/grub2

export $prefix
configfile $prefix/grub.cfg

Finally I find somethings in /boot/loader/entries looking like the lost 5 options in gurb.

OS version:

State: idle
BootedDeployment:
● fedora:fedora/35/x86_64/kinoite
                   Version: 35.20220503.0 (2022-05-03T14:17:05Z)
                BaseCommit: b63ac7ed4e3fdeb76e264f6e7fa97cec0f1699354f35d97599fa888040240400
              GPGSignature: Valid signature by 787EA6AE1147EEE56C40B30CDB4639719867C58F
           LayeredPackages: akmod-nvidia dnf fcitx5-qt gnome-boxes spice-protocol spice-server tlp virt-manager
                            xorg-x11-drv-nvidia xorg-x11-drv-nvidia-cuda
             LocalPackages: expressvpn-3.21.0.2-1.x86_64 rpmfusion-free-release-35-1.noarch
                            rpmfusion-nonfree-release-35-1.noarch
                    Pinned: yes
CicadaSeventeen commented 2 years ago

Also see https://discussion.fedoraproject.org/t/duplicated-grub-entries-on-silverblue-kinoite/33882/7

travier commented 2 years ago

I'm going to close this as a duplicate of https://github.com/fedora-silverblue/issue-tracker/issues/120. Feel free to re-open and comment with more info if you think that's another issue.