After update pc says there is no boot storage in fedora 35

after watching the LTT video, i got the answer of this issue.
i used Sudo Dnf auto remove command and it deleted the grub and many system packages. that’s a very serious issue.

i tried that command and got this list, even though the grub is not there but some important packages are there.

[surface@fedora ~]$ sudo dnf autoremove
Copr repo for PyCharm owned by phracek           46 kB/s | 194 kB     00:04    
Fedora 35 - x86_64                              1.8 MB/s |  61 MB     00:34    
Fedora 35 openh264 (From Cisco) - x86_64        911  B/s | 2.5 kB     00:02    
Fedora Modular 35 - x86_64                      1.5 MB/s | 2.6 MB     00:01    
Fedora 35 - x86_64 - Updates                    869 kB/s |  13 MB     00:15    
Fedora Modular 35 - x86_64 - Updates            134 kB/s | 718 kB     00:05    
google-chrome                                   114  B/s | 3.5 kB     00:31    
linux-surface                                   7.3 kB/s | 695 kB     01:35    
RPM Fusion for Fedora 35 - Nonfree - NVIDIA Dri 3.5 kB/s |  14 kB     00:04    
RPM Fusion for Fedora 35 - Nonfree - Steam      543  B/s | 2.1 kB     00:03    
Dependencies resolved.
 Package                                Arch   Version          Repo       Size
 LibRaw                                 x86_64 0.20.2-3.fc35    @anaconda 2.2 M
 SDL2                                   x86_64 2.0.16-4.fc35    @updates  1.5 M
 SDL2_image                             x86_64 2.0.5-7.fc35     @anaconda 168 k
 babl                                   x86_64 0.1.88-1.fc35    @updates  1.2 M
 brasero-libs                           x86_64 3.12.3-1.fc35    @anaconda 998 k
 capstone                               x86_64 4.0.2-7.fc35     @anaconda  11 M
 corosynclib                            x86_64 3.1.6-1.fc35     @updates  157 k
 cyrus-sasl                             x86_64 2.1.27-13.fc35   @anaconda 145 k
 dleyna-renderer                        x86_64 0.6.0-13.fc35    @anaconda 169 k
 edk2-ovmf                              noarch 20210527gite1999b264f1f-2.fc35
                                                                @anaconda 9.4 M
 flexiblas                              x86_64 3.0.4-6.fc35     @anaconda  68 k
 flexiblas-netlib                       x86_64 3.0.4-6.fc35     @anaconda  11 M
 flexiblas-openblas-openmp              x86_64 3.0.4-6.fc35     @anaconda  42 k
 fmt                                    x86_64 8.0.1-2.fc35     @anaconda 329 k
 folks                                  x86_64 1:0.15.3-1.fc35  @anaconda 2.6 M
 frei0r-plugins                         x86_64 1.7.0-13.fc35    @anaconda 5.9 M
 gavl                                   x86_64 1.4.0-19.fc35    @anaconda 4.2 M
 gegl04                                 x86_64 0.4.32-1.fc35    @updates  8.6 M
 genisoimage                            x86_64 1.1.11-48.fc35   @anaconda 1.1 M
 gfbgraph                               x86_64 0.2.4-1.fc35     @updates  101 k
 glusterfs                              x86_64 9.4-1.fc35       @updates  2.8 M
 glusterfs-cli                          x86_64 9.4-1.fc35       @updates  493 k
 glusterfs-client-xlators               x86_64 9.4-1.fc35       @updates  3.8 M
 glusterfs-fuse                         x86_64 9.4-1.fc35       @updates  563 k
 gnome-online-miners                    x86_64 3.34.0-9.fc35    @anaconda 386 k
 gnome-video-effects                    noarch 0.5.0-6.fc35     @anaconda 210 k
 gnutls-dane                            x86_64 3.7.2-2.fc35     @anaconda  49 k
 gnutls-utils                           x86_64 3.7.2-2.fc35     @anaconda 2.4 M
 gtk-vnc2                               x86_64 1.2.0-3.fc35     @anaconda 228 k
 gvnc                                   x86_64 1.2.0-3.fc35     @anaconda 240 k
 gvncpulse                              x86_64 1.2.0-3.fc35     @anaconda  47 k
 imath                                  x86_64 3.1.3-1.fc35     @updates  364 k
 ipxe-roms-qemu                         noarch 20200823-7.git4bd064de.fc35
                                                                @anaconda 2.7 M
 jasper-libs                            x86_64 2.0.33-1.fc35    @anaconda 326 k
 julietaula-montserrat-base-web-fonts   noarch 1:7.210-5.fc35   @anaconda 971 k
 julietaula-montserrat-fonts-common     noarch 1:7.210-5.fc35   @anaconda 7.3 k
 libbpf                                 x86_64 2:0.4.0-2.fc35   @anaconda 290 k
 libcacard                              x86_64 3:2.8.0-5.20210801gitcf6121deb4.fc35
                                                                @anaconda 119 k
 libchamplain                           x86_64 0.12.20-5.fc35   @anaconda 409 k
 libchamplain-gtk                       x86_64 0.12.20-5.fc35   @anaconda  25 k
 libdecor                               x86_64 0.1.0-1.fc35     @anaconda  96 k
 libfdt                                 x86_64 1.6.1-2.fc35     @anaconda  58 k
 libgdither                             x86_64 0.6-25.fc35      @anaconda  45 k
 libgfapi0                              x86_64 9.4-1.fc35       @updates  227 k
 libgfortran                            x86_64 11.2.1-1.fc35    @anaconda 2.7 M
 libgfrpc0                              x86_64 9.4-1.fc35       @updates  242 k
 libgfxdr0                              x86_64 9.4-1.fc35       @updates   81 k
 libglusterd0                           x86_64 9.4-1.fc35       @updates   15 k
 libglusterfs0                          x86_64 9.4-1.fc35       @updates  971 k
 libgpod                                x86_64 0.8.3-40.fc35    @anaconda 923 k
 libiscsi                               x86_64 1.19.0-4.fc35    @anaconda 223 k
 libnfs                                 x86_64 4.0.0-5.fc35     @anaconda 435 k
 libnumbertext                          x86_64 1.0.6-3.fc35     @anaconda 728 k
 libphodav                              x86_64 2.5-5.fc35       @anaconda 142 k
 libpmem                                x86_64 1.11.0-3.fc35    @anaconda 399 k
 libpmemobj                             x86_64 1.11.0-3.fc35    @anaconda 380 k
 libqb                                  x86_64 2.0.4-1.fc35     @updates  212 k
 libquadmath                            x86_64 11.2.1-1.fc35    @anaconda 331 k
 librados2                              x86_64 2:16.2.6-2.fc35  @anaconda  13 M
 librbd1                                x86_64 2:16.2.6-2.fc35  @anaconda  14 M
 librdmacm                              x86_64 37.0-1.fc35      @anaconda 151 k
 libreoffice-xsltfilter                 x86_64 1: @updates  4.3 M
 libssh2                                x86_64 1.10.0-1.fc35    @anaconda 281 k
 libtomcrypt                            x86_64 1.18.2-13.fc35   @anaconda 878 k
 libtommath                             x86_64 1.2.0-5.fc35     @updates  127 k
 libtpms                                x86_64 0.9.0-0.20211004gitdc4e3f6313.fc35.0
                                                                @updates  990 k
 libusal                                x86_64 1.1.11-48.fc35   @anaconda 469 k
 libvirt-daemon                         x86_64 7.6.0-3.fc35     @anaconda 1.6 M
 libvirt-daemon-driver-interface        x86_64 7.6.0-3.fc35     @anaconda 593 k
 libvirt-daemon-driver-network          x86_64 7.6.0-3.fc35     @anaconda 707 k
 libvirt-daemon-driver-nodedev          x86_64 7.6.0-3.fc35     @anaconda 650 k
 libvirt-daemon-driver-nwfilter         x86_64 7.6.0-3.fc35     @anaconda 683 k
 libvirt-daemon-driver-qemu             x86_64 7.6.0-3.fc35     @anaconda 2.5 M
 libvirt-daemon-driver-secret           x86_64 7.6.0-3.fc35     @anaconda 585 k
 libvirt-daemon-driver-storage          x86_64 7.6.0-3.fc35     @anaconda   0  
 libvirt-daemon-driver-storage-core     x86_64 7.6.0-3.fc35     @anaconda 767 k
 libvirt-daemon-driver-storage-disk     x86_64 7.6.0-3.fc35     @anaconda  32 k
 libvirt-daemon-driver-storage-gluster  x86_64 7.6.0-3.fc35     @anaconda  40 k
 libvirt-daemon-driver-storage-iscsi    x86_64 7.6.0-3.fc35     @anaconda  24 k
                                        x86_64 7.6.0-3.fc35     @anaconda  32 k
 libvirt-daemon-driver-storage-logical  x86_64 7.6.0-3.fc35     @anaconda  32 k
 libvirt-daemon-driver-storage-mpath    x86_64 7.6.0-3.fc35     @anaconda  16 k
 libvirt-daemon-driver-storage-rbd      x86_64 7.6.0-3.fc35     @anaconda  44 k
 libvirt-daemon-driver-storage-scsi     x86_64 7.6.0-3.fc35     @anaconda  24 k
 libvirt-daemon-driver-storage-sheepdog x86_64 7.6.0-3.fc35     @anaconda  20 k
 libvirt-daemon-driver-storage-zfs      x86_64 7.6.0-3.fc35     @anaconda  24 k
 libvirt-daemon-kvm                     x86_64 7.6.0-3.fc35     @anaconda   0  
 libvirt-gconfig                        x86_64 4.0.0-3.fc35     @anaconda 393 k
 libvirt-glib                           x86_64 4.0.0-3.fc35     @anaconda 116 k
 libvirt-gobject                        x86_64 4.0.0-3.fc35     @anaconda 240 k
 libvirt-libs                           x86_64 7.6.0-3.fc35     @anaconda  23 M
 libwsman1                              x86_64 2.7.0-5.fc35     @anaconda 358 k
 lpsolve                                x86_64  @anaconda 1.2 M
 lttng-ust                              x86_64 2.12.2-5.fc35    @anaconda 1.1 M
 lzop                                   x86_64 1.04-7.fc35      @anaconda 107 k
 mdevctl                                x86_64 1.1.0-2.fc35     @anaconda 1.7 M
 media-player-info                      noarch 23-9.fc35        @anaconda 181 k
 numactl-libs                           x86_64 2.0.14-4.fc35    @anaconda  53 k
 numad                                  x86_64 0.5-35.20150602git.fc35
                                                                @anaconda  60 k
 openblas                               x86_64 0.3.18-1.fc35    @updates   74 k
 openblas-openmp                        x86_64 0.3.18-1.fc35    @updates   39 M
 openexr-libs                           x86_64 3.1.3-1.fc35     @updates  4.7 M
 python3-beaker                         noarch 1.10.0-12.fc35   @anaconda 392 k
 python3-crypto                         x86_64 2.6.1-36.fc35    @anaconda 2.0 M
 python3-cryptography                   x86_64 3.4.7-5.fc35     @anaconda 3.1 M
 python3-mako                           noarch 1.1.4-6.fc35     @updates  532 k
 python3-markupsafe                     x86_64 2.0.0-2.fc35     @anaconda  48 k
 python3-paste                          noarch 3.5.0-5.fc35     @anaconda 2.5 M
 python3-pyOpenSSL                      noarch 21.0.0-1.fc35    @updates  386 k
 python3-tempita                        noarch 0.5.2-2.fc35     @anaconda 113 k
 qemu-audio-alsa                        x86_64 2:6.1.0-10.fc35  @updates   29 k
 qemu-audio-jack                        x86_64 2:6.1.0-10.fc35  @updates   24 k
 qemu-audio-oss                         x86_64 2:6.1.0-10.fc35  @updates   20 k
 qemu-audio-pa                          x86_64 2:6.1.0-10.fc35  @updates   28 k
 qemu-audio-sdl                         x86_64 2:6.1.0-10.fc35  @updates   20 k
 qemu-audio-spice                       x86_64 2:6.1.0-10.fc35  @updates   20 k
 qemu-block-curl                        x86_64 2:6.1.0-10.fc35  @updates   37 k
 qemu-block-dmg                         x86_64 2:6.1.0-10.fc35  @updates   16 k
 qemu-block-gluster                     x86_64 2:6.1.0-10.fc35  @updates   41 k
 qemu-block-iscsi                       x86_64 2:6.1.0-10.fc35  @updates   51 k
 qemu-block-nfs                         x86_64 2:6.1.0-10.fc35  @updates   33 k
 qemu-block-rbd                         x86_64 2:6.1.0-10.fc35  @updates   42 k
 qemu-block-ssh                         x86_64 2:6.1.0-10.fc35  @updates   39 k
 qemu-char-baum                         x86_64 2:6.1.0-10.fc35  @updates   20 k
 qemu-char-spice                        x86_64 2:6.1.0-10.fc35  @updates   21 k
 qemu-common                            x86_64 2:6.1.0-10.fc35  @updates  1.7 M
 qemu-device-display-qxl                x86_64 2:6.1.0-10.fc35  @updates   92 k
 qemu-device-display-vhost-user-gpu     x86_64 2:6.1.0-10.fc35  @updates  255 k
 qemu-device-display-virtio-gpu         x86_64 2:6.1.0-10.fc35  @updates   65 k
 qemu-device-display-virtio-gpu-gl      x86_64 2:6.1.0-10.fc35  @updates   38 k
 qemu-device-display-virtio-gpu-pci     x86_64 2:6.1.0-10.fc35  @updates   16 k
 qemu-device-display-virtio-gpu-pci-gl  x86_64 2:6.1.0-10.fc35  @updates   16 k
 qemu-device-display-virtio-vga         x86_64 2:6.1.0-10.fc35  @updates   17 k
 qemu-device-display-virtio-vga-gl      x86_64 2:6.1.0-10.fc35  @updates   15 k
 qemu-device-usb-host                   x86_64 2:6.1.0-10.fc35  @updates   51 k
 qemu-device-usb-redirect               x86_64 2:6.1.0-10.fc35  @updates   70 k
 qemu-device-usb-smartcard              x86_64 2:6.1.0-10.fc35  @updates   34 k
 qemu-img                               x86_64 2:6.1.0-10.fc35  @updates  8.7 M
 qemu-kvm                               x86_64 2:6.1.0-10.fc35  @updates    0  
 qemu-system-x86                        x86_64 2:6.1.0-10.fc35  @updates    0  
 qemu-system-x86-core                   x86_64 2:6.1.0-10.fc35  @updates   31 M
 qemu-ui-curses                         x86_64 2:6.1.0-10.fc35  @updates   48 k
 qemu-ui-egl-headless                   x86_64 2:6.1.0-10.fc35  @updates   16 k
 qemu-ui-gtk                            x86_64 2:6.1.0-10.fc35  @updates   79 k
 qemu-ui-opengl                         x86_64 2:6.1.0-10.fc35  @updates   33 k
 qemu-ui-sdl                            x86_64 2:6.1.0-10.fc35  @updates   45 k
 qemu-ui-spice-app                      x86_64 2:6.1.0-10.fc35  @updates   16 k
 qemu-ui-spice-core                     x86_64 2:6.1.0-10.fc35  @updates   69 k
 qt5-qtgraphicaleffects                 x86_64 5.15.2-4.fc35    @anaconda 659 k
 qt5-qtquickcontrols                    x86_64 5.15.2-4.fc35    @anaconda 4.9 M
 qt5-qtquickcontrols2                   x86_64 5.15.2-4.fc35    @anaconda 8.4 M
 radvd                                  x86_64 2.19-4.fc35      @anaconda 173 k
 seabios-bin                            noarch 1.14.0-6.fc35    @updates  917 k
 seavgabios-bin                         noarch 1.14.0-6.fc35    @updates  324 k
 sg3_utils-libs                         x86_64 1.46-2.fc35      @anaconda 277 k
 sgabios-bin                            noarch 1:0.20180715git-7.fc35
                                                                @anaconda 4.0 k
 sheepdog                               x86_64 1.0.1-16.fc35    @anaconda 732 k
 spice-glib                             x86_64 0.39-4.fc35      @anaconda 1.2 M
 spice-gtk3                             x86_64 0.39-4.fc35      @anaconda 299 k
 spice-server                           x86_64 0.15.0-2.fc35    @anaconda 1.1 M
 suitesparse                            x86_64 5.10.1-1.fc35    @anaconda 3.5 M
 swtpm                                  x86_64 0.7.0-1.20211109gitb79fd91.fc35
                                                                @updates  218 k
 swtpm-libs                             x86_64 0.7.0-1.20211109gitb79fd91.fc35
                                                                @updates   99 k
 swtpm-tools                            x86_64 0.7.0-1.20211109gitb79fd91.fc35
                                                                @updates  272 k
 systemd-container                      x86_64 249.7-2.fc35     @updates  1.3 M
 tbb                                    x86_64 2020.3-9.fc35    @anaconda 485 k
 usbredir                               x86_64 0.12.0-1.fc35    @updates  115 k
 userspace-rcu                          x86_64 0.13.0-3.fc35    @anaconda 386 k
 virglrenderer                          x86_64 0.9.1-2.20210420git36391559.fc35
                                                                @anaconda 462 k
 xen-libs                               x86_64 4.15.1-2.fc35    @updates  1.8 M
 xen-licenses                           x86_64 4.15.1-2.fc35    @updates  454 k
 zfs-fuse                               x86_64  @anaconda 6.0 M

1 Like

should i do the auto remove command?

I would not.

You can, but with that long list of packages - some of which you probably want, I would instead be selective of which packages I removed.

Read the man page for dnf and the autoremove option to understand exactly why it is wanting to delete all those.

1 Like

Are you sure about this? Unlike with apt (as in the LTT video), DNF has a concept of “protected packages”, and will not go through with any transaction which would remove those — and grub is on the list. See cat /etc/dnf/protected.d/* for the list on your system. I dont’ see anything that’s likely to particularly break things in your list, at least not in a non-reversible way.

It’s certainly true that dnf autoremove can take away things you weren’t expecting, but should not render a system unbootable — unless you’ve configured your boot to depend on something which is not normally essential but not added that thing as a protected package. (For example from your list, if you’ve made getting a running system that requires zfs-fuse.)

If any DNF command results in a system where you can’t use DNF to get back to where you were, that’s a bug, either in DNF itself or in Fedora packaging (a missing protected package, for example).

1 Like

It’s a surface device and i am using a custom kernel to get all the features working.
and i removed gnome boxes app and some apps i don’t use.

i am definitely sure the grub got removed. because it happened 2 times and this is my 3rd installation.

i used this guide this investigate but didn’t did till the end, Repair your Fedora's (EFI) GRUB Bootloader.

i think anyone can simulate it, removing the gnome boxes, chess and some other apps in vm and do a autoremove.

Is it possible something was also customized with the bootloader config in this process?

I did this:

  1. New install of Fedora Workstation 35 in a VM (GNOME Boxes)

  2. sudo dnf -y remove gnome-boxes

  3. There doesn’t seem to be a chess package, or any package with chess in the name. Can you remember exactly what was removed?

  4. sudo dnf autoremove

  5. Which results in…

    Last metadata expiration check: 0:01:00 ago on Wed 24 Nov 2021 10:08:16 PM EST.
    Dependencies resolved.
    Nothing to do.
  6. Okay… sudo dnf remove grub

    Problem: The operation would result in removing the following protected packages: grub2-pc
    (try to add '--skip-broken' to skip uninstallable packages)

I’m pretty sure from your package set in the first listing up above that you have Fedora Workstation 35, right? Or did you start from something else?

It’s definitely possible that there’s some package you could remove which might break the system that we haven’t marked as protected, and if there is, I’d like to find it. But I’m pretty sure it’s not grub.

1 Like


Secure boot

Source: About the secure boot Fedora Wiki Secure Boot

Since you’re currently using custom kernel, I believe it’s important to disable secure boot as on Fedora Wiki Q&A:

    Q: What if I want to build a custom kernel or load 3rd party kernel modules?
    A: You will need to disable Secure boot, or setup your own keys and sign everything with them.

How to Disable Secure Boot on Surface

I found the tutorial on how to setup the bios on Surface laptop. On the video tutorial it’s have identical bios user interfaces with your bios. Even though it’s using different distro, it should be the same.

Hope it’s help.

I know it’s not a problem of you guys, but just to clarify i used this guide to install the custom kernel. Installation and Setup · linux-surface/linux-surface Wiki · GitHub

i didn’t used -y command to remove the gnome-boxes. i used gnome-software to remove those apps

my bad it was Cheese app.

I used workstation. i am not saying it’s only grub, maybe some grub related config or depends.

@oprizal the secure boot is on right now the kernel is signed.


If you’re sure your custom kernel signed by Microsoft or other third party CA, you could repair the grub by chroot it with Fedora Live USB.

After you chroot it, use following command:

$ sudo rm -f /boot/efi/EFI/fedora/grub.cfg
$ sudo rm -f /boot/grub2/grub.cfg
$ sudo dnf reinstall shim-* grub2-efi-* grub2-common
$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg

If you’re using default partition layout, on below links there a part with title Practical chroot with btrfs subvolumes:
Fedoramagazine: OS Chroot 101: covering btrfs subvolumes

I remember something. On the Fedoramagazine above, the article didn’t mention on mounting the EFI.

On my case I always include to mount the EFI partition too. Let say your EFI on /dev/vda0, then # mount /dev/vda0 /mnt/boot/efi.

Ah, I see. That explains why my later dnf autoremove didn’t do anything and yours did: GNOME Software just removes the packages and its direct dependencies, while the dnf command-line does a “small” version of “autoremove” with every dnf remove command. So when I did it, the packages were all removed. Still, I don’t see anything there that would break the system (and it didn’t break my VM). (And I tried removing Cheese, too, just to see.)

you got the similar packages as my ones?

@oprizal it’s not and UEFI issue i think.

In the past I have experiences on building custom kernel downloaded from and it will not work unless I disable the secure boot. But I forgot which distro I used at that time, maybe Gentoo.

Secure boot is nothing and it is safe to disable it if we know what are currently running on our system.

Btw, by default on Fedora kernel already have Microsoft Surface Platform-Specific Device Drivers activated as modules and I believe you do not need to use custom kernel to get the Surface work.

But if there any part on your Surface not working correctly, you should find a solution specific to the part that is not working then find the driver and not touch the kernel unless you know exactly how to recover it if something goes wrong.

1 Like

But, of course, if you access the Internet, you cannot know what is running on your system. Secure Boot is a tool which can help increase our trust in our systems even under this reality. It is possible to use it even if you build your own kernel, and in such cases I encourage you to do so.

1 Like


Sometime we end up installing a driver and this driver maybe will reconfigure/rebuild our kernel and if this sources are unknown it’s could be dangerous.

The best practice I believe is by sticking to Fedora kernel update. If something not working with the update, then back and stick with previous working kernel version and make a report to bugzilla.

Did the autoremove and system survived.

1 Like

out of the box, the touch panel did not worked as it’s the most important i had to go with custom kernel.

1 Like

I found this from github.

There’s an instruction specific for Fedora. On that instructions it said we can use secure boot with Fedora Workstation or Silverblue.

Are you using this custom kernel?