Stuck on grub rescue after timeshift restore

Hello, this is my first post here
Did a system restore earlier today using timeshift and it booted my into grub rescue
booted into a live usb version of EndeavourOS and followed the guide here:
https://discovery.endeavouros.com/system-rescue/repair-a-non-booting-grub/2021/03/

tried several times but with no luck, everytime I reboot I still end up on grub rescue
output of fdisk -l:

Device Start End Sectors Size Type
/dev/nvme0n1p1 4096 618495 614400 300M EFI System
/dev/nvme0n1p2 618496 1953520064 1952901569 931.2G Linux filesystem

mounted with:

sudo mount /dev/nvme0n1p2 /mnt
sudo mount /dev/nvme0n1p1 /mnt/boot/efi

access arch-chroot and I run these as well:

grub-mkconfig -o /boot/grub/grub.cfg
grub-install --target=i386-pc /dev/nvme0n1

note after mounting I can see my files and folders in /boot/grub
Currently typing this from a live usb version
Any help is appreciated

1 Like

That’s not quite right.
It should look more like the line below.

After arch-chroot:

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=EndeavourOS-grub

for a UEFI install.

So all the steps:

sudo mount /dev/nvme0n1p2 /mnt
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
sudo arch-chroot /mnt
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=EndeavourOS-grub

tried this way as well
returns this:

Installing for x86_64-efi platform.
Installation finished. No error reported.

but after reboot I return to grub rescue

output of grub-mkconfig -o /boot/grub/grub.cfg

Generating grub configuration file …
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/amd-ucode.img /boot/initramfs-linux.img
Found fallback initrd image(s) in /boot: amd-ucode.img initramfs-linux-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.
grub-probe: error: cannot find a GRUB drive for /dev/sdb1. Check your device.map.
Adding boot menu entry for UEFI Firmware Settings …
done

If the output of the fdisk -l shows the only disk in the system, try the following at the grub rescue prompt and see if you can get to boot up your system:

grub rescue> set prefix=(hd0,2)/boot/grub
grub rescue> set root=(hd0,2)
grub rescue> insmod normal
grub rescue> normal
grub rescue> insmod linux
grub rescue> linux /boot/vmlinuz-linux root=/dev/nvme0n1p2 rw
grub rescue> initrd /boot/initramfs-linux.img
grub rescue> boot
1 Like

It shows my hdd at sda and the live usb and sdb

Please post the entire output of

sudo parted -l

and also:

efibootmgr -v

sudo parted -l

Model: ATA ST2000DM008-2UB1 (scsi)
Disk /dev/sda: 2000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 1049kB 2000GB 2000GB ext4

Model: Generic Flash Disk (scsi)
Disk /dev/sdb: 8054MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
2 1833MB 1940MB 107MB primary fat16 esp

Model: Samsung SSD 980 1TB (nvme)
Disk /dev/nvme0n1: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number Start End Size File system Name Flags
1 2097kB 317MB 315MB fat32 boot, esp
2 317MB 1000GB 1000GB ext4 root

efibootmgr -v:

BootCurrent: 0004
Timeout: 1 seconds
BootOrder: 0004,0001,0000,0002,0003
Boot0000* endeavouros HD(1,GPT,fa557538-32ae-6348-95d3-35d1a47c1bed,0x1000,0x96000)/File(\EFI\ENDEAVOUROS\GRUBX64.EFI)
Boot0001* UEFI OS HD(1,GPT,fa557538-32ae-6348-95d3-35d1a47c1bed,0x1000,0x96000)/File(\EFI\BOOT\BOOTX64.EFI)…BO
Boot0002* EndeavourOS-grub HD(1,GPT,fa557538-32ae-6348-95d3-35d1a47c1bed,0x1000,0x96000)/File(\EFI\ENDEAVOUROS-GRUB\GRUBX64.EFI)
Boot0003* UEFI: Generic Flash Disk 8.07 PciRoot(0x0)/Pci(0x1,0x2)/Pci(0x0,0x0)/USB(6,0)/CDROM(1,0x369fc0,0x33298)…BO
Boot0004* UEFI: Generic Flash Disk 8.07, Partition 2 PciRoot(0x0)/Pci(0x1,0x2)/Pci(0x0,0x0)/USB(6,0)/HD(2,MBR,0xab3ab792,0x369fc0,0x33000)…BO

Like I said these are outputs from the live usb

1 Like

We could try to set Boot0002 first in order and see if the system will boot up:

In the live session (no chroot needed)

sudo efibootmgr -o 0002,0004,0001,0000,0003

If that would not work, try the following at grub rescue prompt:

grub rescue> set prefix=(hd1,2)/boot/grub
grub rescue> set root=(hd1,2)
grub rescue> insmod normal
grub rescue> normal
grub rescue> insmod linux
grub rescue> linux /boot/vmlinuz-linux root=/dev/nvme0n1p2 rw
grub rescue> initrd /boot/initramfs-linux.img
grub rescue> boot

Edit:

Perhaps

grub rescue> initrd /boot/initramfs-linux.img

should be:

grub rescue> initrd /boot/amd-ucode.img /boot/initramfs-linux.img
1 Like

The syntax for partitions is different. For MBR it is (hdX,msdosY), for GPT it is (hdX,gptY)

1 Like

IMG_20220805_221610
Tried it but still no luck
This is what the grub rescue looks like

1 Like

Try replacing (hd1,2) with (hd1,gpt2) on both commands

1 Like

Same output still not working
Is there a way to reinstall the os but keep/recover my files, gamesaves etc?
Or reinstall grub?

I would start in the live USB and first of all try to clean up some EFI boot entries.
Then we can build up the Grub environment from scratch.

Use the following pattern to remove EnOS’ boot entries (no chroot needed):

sudo efibootmgr -b nnnn -B ## replace nnnn with the actual boot number.

(They are: 0000, 0002)

Next do an arch-chroot:

sudo mount /dev/nvme0n1p2 /mnt
sudo mount /dev/nvme0n1p1 /mnt/boot/efi
sudo arch-chroot /mnt

Now we can rebuild the Grub environment:

 1. mv /etc/default/grub /etc/default/grub.old

 2. mv /etc/grub.d /etc/grub.d.old

 3. rm /boot/grub/grubenv

 4. grub-editenv /boot/grub/grubenv create

 5. pacman -S grub

 6. grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=EndeavourOS-new

 7. grub-mkconfig -o /boot/grub/grub.cfg
1 Like

output of grub-mkconfig -o /boot/grub/grub.cfg:
after doing the above commands

Generating grub configuration file …
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/amd-ucode.img /boot/initramfs-linux.img
Found fallback initrd image(s) in /boot: amd-ucode.img initramfs-linux-fallback.img
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
Adding boot menu entry for UEFI Firmware Settings …
done

sudo efibootmgr -v

BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0003,0001,0002
Boot0001* UEFI OS HD(1,GPT,fa557538-32ae-6348-95d3-35d1a47c1bed,0x1000,0x96000)/File(\EFI\BOOT\BOOTX64.EFI)…BO
Boot0002* UEFI: Generic Flash Disk 8.07 PciRoot(0x0)/Pci(0x1,0x2)/Pci(0x0,0x0)/USB(5,0)/USB(3,0)/CDROM(1,0x369fc0,0x33298)…BO
Boot0003* UEFI: Generic Flash Disk 8.07, Partition 2 PciRoot(0x0)/Pci(0x1,0x2)/Pci(0x0,0x0)/USB(5,0)/USB(3,0)/HD(2,MBR,0xab3ab792,0x369fc0,0x33000)…BO

Still no success
End up in grub rescue after reboot

1 Like

I am not seeing any EFI boot entry for EnOS ( bootloader-id=EndeavourOS-new) in the output of
efibootmgr -v

I don’t know why. My last suggestion would be to try installing the bootloader again with a couple of added options to see if it will work.

Do an arch-chroot as before and run the following

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=EnOS-Grub1 --force
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=EnOS-Grub2 --force --removable

When done, type exit to quit chroot. Open a terminal and check again with:

efibootmgr -v

to see if you get any boot entries with those bootloader id:s above.

If that won’t work, I’m afraid I am out of ideas.

output of efibootmgr -v:
after doing what you just mentioned

BootCurrent: 0003
Timeout: 1 seconds
BootOrder: 0004,0003,0001,0000,0002
Boot0000* EndeavourOS-new HD(1,GPT,fa557538-32ae-6348-95d3-35d1a47c1bed,0x1000,0x96000)/File(\EFI\ENDEAVOUROS-NEW\GRUBX64.EFI)
Boot0001* UEFI OS HD(1,GPT,fa557538-32ae-6348-95d3-35d1a47c1bed,0x1000,0x96000)/File(\EFI\BOOT\BOOTX64.EFI)…BO
Boot0002* UEFI: Generic Flash Disk 8.07 PciRoot(0x0)/Pci(0x1,0x2)/Pci(0x0,0x0)/USB(5,0)/USB(3,0)/CDROM(1,0x369fc0,0x33298)…BO
Boot0003* UEFI: Generic Flash Disk 8.07, Partition 2 PciRoot(0x0)/Pci(0x1,0x2)/Pci(0x0,0x0)/USB(5,0)/USB(3,0)/HD(2,MBR,0xab3ab792,0x369fc0,0x33000)…BO
Boot0004* EnOS-Grub1 HD(1,GPT,fa557538-32ae-6348-95d3-35d1a47c1bed,0x1000,0x96000)/File(\EFI\EnOS-Grub1\grubx64.efi)

Looks like it got installed. Could you reboot now and see if this would work?

It worked! Im currently in my Operating system, thank you very much.
I will be sure to make a donation to EndeavourOS for having such a wonderful community and to show my gratitude.

2 Likes