My tumbleweed install has been wonderful! I have win10 on a small ssd for use as needed. Went there today and afterwards any effort to boot into my tw drive does absolutely nothing. As in, selected from F11 that boot doesn’t even blink. So I’m guessing win10 killed my grub.
I’m using btrfs and the drive with my tw is nvme0n1. nvme0n1p1 is a tiny 1G FAT32 partition and nvme0n1p2 is my btrfs partition. I’m using rescue by booting up a USB of the tw install disk. I’m choosing ‘root’ as the user in rescue.
I tried grub2-install /dev/nvme0n1 and was given the message ‘error, cannot find EFI directory’
@nrickert it sees the opensuse efi. Not sure how to get the output to here.
I’m using the gnome live tumbleweed usb. Following some instructions (chat gpt, I know) that seem reasonable but for a problem. It’s having me mount the @ top level of my nvme, then the EFI partition which is sdb2. That’s in the win10 ssd, so that’s how windows was able to change things. Then it has me mount and bind /dev, /proc, /sys. Then chroot into /mnt. But that doesn’t work. I can get chroot as sudo or not. But when I type sudo /mnt /bin/bash it complains that it can’t find /bin/bash.
Booting that live Gnome USB, you should be able to just run
efibootmgr -v
That might require root.
If “opensuse-secureboot” or “opensuse” shows up, then you should be able to recover your system using (as root)
efibootmgr -o 0003
except you must change that “0003” to whatever is the boot number for the “opensuse-secureboot” entry, or just the “opensuse” entry if there is no “secureboot” version.
This just changes the boot order.
Hmm, best to also add the Windows boot number (separated by a comma but no spaces).
Your Linux ESP partition is nvme0n1p1 (from your description above). It’s not clear whether the EFI file is reordered as Neil suggests, or missing completely. Try his advice first.
Revisiting your steps…from the TW live USB, you would do the following from a terminal (as root).
Mount root openSUSE partition…
mount /dev/nvme0n1p2 /mnt
Mount the correct EFI System Partition…
mkdir -p /mnt/boot/efi
mount /dev/nvme0n1p1 /mnt/boot/efi
then bind the system directories
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
then
chroot /mnt /bin/bash
You should be able to reinstall GRUB (EFI) form there.
Thanks all for the help. I’m afraid I’m making things worse by trying approaches before waiting for advice. Here’s what I think I know:
The EFI partition is on sdb2, which is the small ssd I have for win10. It now has grub2 on it for tumbleweed… The suggestion there was that I could manually get into the grub menu with set root, set prefix, inside normal, then normal. My tumbleweed main partition is on (hd4,gpt2). Setting root=(hd4,gpt2) then set prefix(hd4,gpt2)/@/boot/grub2, ins mod normal, normal did nothing. So on that front I’m stumped.
I don’t understand why the EFI is over there on the win10 disk. At this point, though, I’d just like to get things working again. Long term I’d like to remove window’s agency to break things.
So changing the boot order isn’t helpful now, right? Because the darned AI had me use --removable so grub was installed to the fallback path (I don’t quite understand that).
I’ll get the gnome usb up and see if I can get to pasting some lsblk data, etc.
One other note: from the gnome usb I had no luck chroot to /mnt. It griefs me over the /bin/bash.
Deano, I’m going to get the steps again with nrickert’s change. So AI had me mounting the EFI partition on sdb2 (the win10 disk). I’ll try your approach of mounting it on p1 of my tumbleweed drive.
Very uphill process. The gnome live usb was impossibly slow. As in Firefox wouldn’t even load. I put it on an external drive and the performance is much better. It won’t, however, let me use efibootmgr -v, saying that EFI variables are not supported on this system. Here’s an extended look at lsblock
This is my problem whenever I try to mount my tumbleweed drive then chroot in:
linux@localhost:~> chroot /mnt /bin/bash
chroot: cannot change root directory to '/mnt': Operation not permitted
linux@localhost:~> sudo chroot /mnt /bin/bash
tty: ttyname error: No such device
localhost:/ # grub2-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=openSUSE
Installing for x86_64-efi platform.
EFI variables are not supported on this system.
EFI variables are not supported on this system.
grub2-install: error: efibootmgr failed to register the boot entry: No such file or directory.
I'm guessing since the chroot failed, I was then trying to install grub2 on the live usb drive? Hence the EFI variables are not supported...
Will wait now for guidance :)