When I power on my computer I end up in the grub shell. This happened suddenly, I have not had this problem previously in the year or so I have been running this system.
I have tried to follow various guides to boot from grub but I run into the problem of not finding the files I expect. Particularly, I expect to find vmlinuz
with grub> ls (hd3,gpt2)/@/boot/
but instead I only find the grub2
directory. It contains the directories x86_64-efi
and i386-pc
. These directories are subvolumes in my btrfs system.
Here is the full list I get when running grub> ls
with their filesystems
(proc) procfs
(hd0)
(hd0, gpt4) ntfs win10 disk, C:/
(hd0, gpt3) unknown
(hd0, gpt2) fat win10 boot
(hd0, gpt1) ntfs win10 recovery partition
(hd1)
(hd1, msdos1) ntfs D:/
(hd2)
(hd2, gpt2) ntfs E:/
(hd2, gpt1) unknown
(hd3)
(hd3, gpt3) Linux swap
(hd3, gpt2) btrfs openSUSE disk
(hd3, gpt1) fat
(memdisk)
For completeness, I should mention that the win10 installation works as expected if I change the bootorder in my BIOS.
I have also tried to access the Linux disk by booting from a live USB like the openSUSE rescue system. I have not had any problems doing this and I have been able to confirm that the expected content of /boot
is present, as listed here
lrwxrwxrwx 1 root root 48 Mar 19 21:48 .vmlinuz-6.7.9-1-default.hmac -> ../usr/lib/modules/6.7.9-1-default/.vmlinuz.hmac
lrwxrwxrwx 1 root root 48 Mar 22 21:43 .vmlinuz-6.8.1-1-default.hmac -> ../usr/lib/modules/6.8.1-1-default/.vmlinuz.hmac
lrwxrwxrwx 1 root root 45 Mar 19 21:48 System.map-6.7.9-1-default -> ../usr/lib/modules/6.7.9-1-default/System.map
lrwxrwxrwx 1 root root 45 Mar 22 21:43 System.map-6.8.1-1-default -> ../usr/lib/modules/6.8.1-1-default/System.map
lrwxrwxrwx 1 root root 41 Mar 19 21:48 config-6.7.9-1-default -> ../usr/lib/modules/6.7.9-1-default/config
lrwxrwxrwx 1 root root 41 Mar 22 21:43 config-6.8.1-1-default -> ../usr/lib/modules/6.8.1-1-default/config
drwxr-xr-x 4 root root 4096 Jan 1 1970 efi
drwxr-xr-x 1 root root 98 Mar 24 13:25 grub2
lrwxrwxrwx 1 root root 22 Mar 23 15:59 initrd -> initrd-6.8.1-1-default
-rw------- 1 root root 50284706 Mar 23 15:59 initrd-6.7.9-1-default
-rw------- 1 root root 50412534 Mar 23 15:59 initrd-6.8.1-1-default
lrwxrwxrwx 1 root root 46 Mar 19 21:48 sysctl.conf-6.7.9-1-default -> ../usr/lib/modules/6.7.9-1-default/sysctl.conf
lrwxrwxrwx 1 root root 46 Mar 22 21:43 sysctl.conf-6.8.1-1-default -> ../usr/lib/modules/6.8.1-1-default/sysctl.conf
lrwxrwxrwx 1 root root 23 Mar 23 15:59 vmlinuz -> vmlinuz-6.8.1-1-default
lrwxrwxrwx 1 root root 42 Mar 19 21:48 vmlinuz-6.7.9-1-default -> ../usr/lib/modules/6.7.9-1-default/vmlinuz
lrwxrwxrwx 1 root root 42 Mar 22 21:43 vmlinuz-6.8.1-1-default -> ../usr/lib/modules/6.8.1-1-default/vmlinuz
Apparently, when I am in the grub shell, I can not see files that are not included in a btrfs subvolume.
Here is the output of btrfs subvolume list /
ID 256 gen 32 top level 5 path @
ID 257 gen 310939 top level 256 path @/var
ID 258 gen 310787 top level 256 path @/usr/local
ID 259 gen 310896 top level 256 path @/tmp
ID 260 gen 308322 top level 256 path @/srv
ID 261 gen 309523 top level 256 path @/root
ID 262 gen 308322 top level 256 path @/opt
ID 263 gen 310937 top level 256 path @/home
ID 264 gen 310938 top level 256 path @/boot/grub2/x86_64-efi
ID 265 gen 308322 top level 256 path @/boot/grub2/i386-pc
ID 266 gen 309550 top level 256 path @/.snapshots
ID 815 gen 138196 top level 266 path @/.snapshots/372/snapshot
ID 818 gen 138196 top level 266 path @/.snapshots/375/snapshot
ID 1104 gen 178878 top level 266 path @/.snapshots/492/snapshot
ID 1115 gen 178878 top level 266 path @/.snapshots/502/snapshot
ID 1434 gen 178878 top level 266 path @/.snapshots/626/snapshot
ID 1770 gen 290155 top level 266 path @/.snapshots/684/snapshot
ID 1771 gen 290159 top level 266 path @/.snapshots/685/snapshot
ID 1772 gen 293877 top level 266 path @/.snapshots/686/snapshot
ID 1773 gen 294379 top level 266 path @/.snapshots/687/snapshot
ID 1774 gen 294387 top level 266 path @/.snapshots/688/snapshot
ID 1775 gen 294391 top level 266 path @/.snapshots/689/snapshot
ID 1848 gen 308452 top level 266 path @/.snapshots/762/snapshot
ID 1850 gen 308308 top level 266 path @/.snapshots/763/snapshot
ID 1866 gen 308451 top level 266 path @/.snapshots/779/snapshot
ID 1867 gen 310937 top level 266 path @/.snapshots/780/snapshot
ID 1868 gen 308456 top level 266 path @/.snapshots/781/snapshot
ID 1869 gen 308459 top level 266 path @/.snapshots/782/snapshot
ID 1870 gen 308460 top level 266 path @/.snapshots/783/snapshot
ID 1871 gen 308461 top level 266 path @/.snapshots/784/snapshot
ID 1872 gen 308473 top level 266 path @/.snapshots/785/snapshot
ID 1873 gen 308476 top level 266 path @/.snapshots/786/snapshot
ID 1874 gen 308478 top level 266 path @/.snapshots/787/snapshot
ID 1875 gen 308494 top level 266 path @/.snapshots/788/snapshot
Back in the grub shell, if I run grub> btrfs-list-subvols (hd3,gpt2)
I get
ID 256 path @
and if I run grub> btrfs-get-default-subvol (hd3,gpt2)
I get
/@/.snapshots/780/snapshot
which seems strange to me.
What do I need to do to be able to boot from grub again?