grub messed up

today i used sudo pacman -Syuto update my system, but something went wrong: my laptop battery was not enough to finish this job. So it just turned off, at the next time power-on, it just shows GRUB interface(shows kernel not loaded, and something is missing).
I tried to fix it by searching google/manjaro forum, but still can't find where's the problem.
1.get the message like this
error: file '/boot/vmlinuz-4.19-x86_64' not found. error: you need to load the kernel first.
2.try other's solution:
Using livecd v17.0.1 (and above) as grub to boot OS with broken bootloader
3.still cant fix it(now system is up-to-date), after use update-grub it shows

Generating grub configuration file ...
grub-probe: error: cannot find a GRUB drive for /dev/sdc1.  Check your
grub-probe: error: cannot find a GRUB drive for /dev/sdc1.  Check your

sda=broken system and sdc=live-cd, don't know why it choosed sdc(that's the problem?)
(Now I start up this laptop, it direct display GRUB promot)
What should i do next?
(BTW, if there's a way to backup all configs and maybe restore it after install manjaro again?(But don't want this option, fix it maybe better for this newbie XD))

can you boot on USB manjaro ( not your disk )
open a terminal and returns

inxi -Fxxxza 
parted -l

inxi -Fxxxza:
important information

  Host: manjaro Kernel: 5.4.6-2-MANJARO x86_64 bits: 64 compiler: gcc 
  v: 9.2.0 
  parameters: BOOT_IMAGE=/boot/vmlinuz-x86_64 lang=en_US keytable=us 
  tz=UTC driver=free nouveau.modeset=1 i915.modeset=1 radeon.modeset=1 
  misobasedir=manjaro misolabel=MJRO1815 quiet systemd.show_status=1 
  apparmor=1 security=apparmor 
  Desktop: KDE Plasma 5.17.4 tk: Qt 5.14.0 wm: kwin_x11 dm: SDDM 
  Distro: Manjaro Linux 
  Type: Laptop System: LENOVO product: () v: ThinkPad Edge E531 
  serial: <filter> Chassis: type: 10 serial: <filter> 
  Mobo: LENOVO model: () serial: <filter> UEFI: LENOVO 

CPU Topology: Dual Core model: Intel Celeron 1000M
parted -l

Model: <manufacturer> 120G (scsi)
Disk /dev/sda: 120GB
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   120GB  120GB  ext4

Model: <manufacturer> (scsi)
Disk /dev/sdb: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size   File system  Name  Flags
 1      1049kB  275GB   275GB  ext4
 2      275GB   550GB   275GB  ext4
 3      550GB   1000GB  450GB  ext4

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

Number  Start   End     Size    Type     File system  Flags
 2      2895MB  2899MB  4194kB  primary               esp


manjaro-chroot -a ( select 1 and enter if one line )
pacman -Syy ( check ip on )
pacman -Syyu ( finish update )
mkinitcpio -P 
exit ( quit chroot )

then you can reboot

1 Like

Tried. mkinitcpio -P returns:

==> ERROR: No presets found in /etc/mkinitcpio.d

and update-grub:

Generating grub configuration file ...
grub-probe: error: cannot find a GRUB drive for /dev/sdc1.  Check your
grub-probe: error: cannot find a GRUB drive for /dev/sdc1.  Check your

(and don't know why there is /sdc1, not sda1/sda ?)
After reboot, it shows "GNU GRUB version xxx"

error: you need to load the kernel first.

Thanks in advance:-)

have you changed something in your bios boot ?
any option before boot on USB?

Didn't changed anything about BIOS.
Before boot on USB, it lists:
1.manjaro(choosed this)
2.devices like HDD(2)/USB(that's sda/sdb and live-manjaro)

so reboot on USB manjaro ( not your disk)
open a terminal

efibootmgr -v
lsblk -fs 

efibootmgr -v

BootCurrent: 000D
Timeout: 0 seconds
BootOrder: 0011,0012,000D,0007,0008,0009,000A,000B,000C,000E
Boot0000  Setup fvfile(...)
Boot0001  Boot Menu
Boot0002  Diagnostic Splash Screen
Boot0003  Lenovo Diagnostics
Boot0004  Startup Interrupt Menu
Boot0005  ME Configuration Menu
Boot0006  Rescue and Recovery
Boot0007* USB CD  venmsg(...)
Boot0008* USB FDD
Boot0009* ATAPI CD0 
Boot000A* ATA HDD0
Boot000B* ATA HDD1
Boot000C* ATA HDD2
Boot000D* USB HDD
Boot000E* PCI LAN
Boot000F* IDER BOOT CDROM       PciRoot(0x0)/Pci(0x16,0x2)/Ata(0,1,0)
Boot0010* IDER BOOT Floppy      PciRoot(0x0)/Pci(0x16,0x2)/Ata(0,0,0)
Boot0011* manjaro       HD(1,GPT,...,0x1000,0x96000)/File(\EFI\manjaro\grubx64.efi)
Boot0012* arch  HD(1,GPT,...,0x1000,0x96000)/File(\EFI\arch\grubx64.efi)

lsblk -fs

NAME  FSTYPE   LABEL    UUID                                 FSAVAIL FSUSE% MOUNTPOINT
loop0 squashfs                                                     0   100% /run/miso/sfs/livefs
loop1 squashfs                                                     0   100% /run/miso/sfs/mhwdfs
loop2 squashfs                                                     0   100% /run/miso/sfs/desktopfs
loop3 squashfs                                                     0   100% /run/miso/sfs/rootfs
sda1  vfat             ...                                          
sda2  ext4             ...            
sdb1  ext4     name  ...            
sdb2  ext4     name     ...                
sdb3  ext4     name     ...                
sdc1  iso9660  <name> ...                    0   100% /run/miso/bootmnt
└─sdc iso9660  <name> ...                              
sdc2  vfat     MISO_EFI ...                                        
└─sdc iso9660  ......                    0   100% /run/miso/bootmnt


can you do ( only under USB manjaro ) open browser on this topic

manjaro-chroot -a 
cat /etc/fstab
lsbk -fs 
ls /boot/efi/EFI

if UUID from lsblk = UUID for /boot/efi from your /etc/fstab
then you restore grub EFI

only under chroot , case EFI & UUID ok

grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck --verbose


grub-install --recheck --verbose /dev/sda 

not forget

exit ( quit chroot )

and reboot

ps : can you explain why there is a boot archlinux ?


Solved. But at the cost, I lost some configs (maybe more than that)
Already did the "grub-install" step.
But when I check files in /boot, just reacted that (at least) something missing in this folder.
Now that I've done above but still get negative result, why not try to find already-made one and "overwrite" the broken one?
So I booted in live-manjaro and use pacman -Syu linux419, then after chroot, move the missing files(belong to live-os) to /mnt/boot (broken one), then reboot.
Finally it works, successfully back to grub interface. Choosed manjaro then it launched!

Don't know why, I just installed manjaro on this device.
(About half year ago, I found something wrong about KDE after system-update, then I edited /etc/pacman.conf, added Server=$repo/os/$arch then downgrade to fix the problem, maybe that changed something and that's why there's an "arch" as a choice.)
However, I got new problems (easier than this, and now we know it's not just damaged files under /boot)
1.wireless network didn't work after boot failed to launch: backs segmentation fault
3. **A start job is running for Wait for Network to be Configured**shows when booting and it took a long time
I thought these problems occured because of something still wrong about kernel419. Then I installed kernel49, and choosed it in grub. Then I use --overwriteto reinstall kernel419 and then update all packages, after that booted with kernel419 again to remove kernel49. Most of problems solved.
Until now I'm keep finding remaining errors, it seems like still need to fix something(ex. network driver( after reinstalled linux-firmware something need to do with this old device))
Anyway, thank you for your patience :slight_smile:

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

Forum kindly sponsored by