Kernel missing after update

Sorry, can you explain what is the EFI partition?
Are you talking about /dev/sdc1?

The EFI system partition is the partition where your UEFI goes looking for a boot loader. It is usually a FAT32 partition between 256 and 512 MiB, and it’s marked with the boot and esp flags in the partition table. It is normally mounted at /boot/efi.

Thank you. I’ve just tried to find it with parted but it seems like there is just one ext4 partion.

(parted) print                                                            
Model: Unknown (unknown)
Disk /dev/sdc1: 491GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Disk Flags: 

Number  Start  End    Size   File system  Flags
 1      0.00B  491GB  491GB  ext4

If /dev/sdc1 is where your Manjaro system is installed, then your installed system does not boot in UEFI mode but in legacy BIOS compatibility mode, regardless of what mode the USB stick boots in.

But this :arrow_up: isn’t normal. It should say either MBR (or MSDOS) or GPT.

I don’t know. So if there isn’t any EFI partition, what should I do?

Just to make it clear. Now your installed Manjaro system will actually boot and you can log in? In this case, at least one kernel is installed, you can use the uname -a command to view it which one it is.

I strongly suspect that your parted output is not from your installed system but from the loopback image on the USB drive.

Now I’m using the USB drive, but the main HDD which has got Manjaro installed can’t boot. No kernel seem to be installed.

I’ve used parted with chmod, I don’t know if it can still cause problems.

I found these, see what can be utilized from these in your case.

https://bbs.archlinux.org/viewtopic.php?id=250486

1 Like

This is why I didn’t want to make grub-install (if not necessary) :grinning:

With update-grub it should have worked fine. We didn’t have any indication that grub install was broken, just that the grub menu config file needed an update.

1 Like

But it didn’t, and right now I don’t even know what we’re dealing with anymore. :man_shrugging:

Let’s start from the beginning. What error are you getting when you try to boot Manjaro?

Please boot from the installation USB, chroot to your Manjaro system and run the following:

parted -l
lsblk -f

And post the output of the commands

1 Like

Here`s parted output:

Model: ATA ST1000DM003-1ER1 (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name                          Flags
 1      1049kB  556MB   555MB   ntfs         Basic data partition          hidden, diag
 2      556MB   661MB   105MB   fat32        EFI system partition          boot, esp
 3      661MB   677MB   16.8MB               Microsoft reserved partition  msftres
 4      677MB   788GB   787GB   ntfs         Basic data partition          msftdata
 5      788GB   1000GB  212GB   ntfs         Basic data partition          msftdata

Model:  USB DISK 3.0 (scsi)
Disk /dev/sdb: 15.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type     File system  Flags
 2      3120MB  3124MB  4194kB  primary               esp


Model: ST500LT0 12-1DG142 (scsi)
Disk /dev/sdc: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End    Size    Type     File system     Flags
 1      1049kB  491GB  491GB   primary  ext4            boot
 2      491GB   500GB  8791MB  primary  linux-swap(v1)

Here you are lsblk output:

NAME   FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
loop0                                         
loop1                                         
loop2                                         
loop3                                         
sda                                           
|-sda1                                        
|-sda2                                        
|-sda3                                        
|-sda4                                        
`-sda5                                        
sdb                                           
|-sdb1                                        
`-sdb2                                        
sdc                                           
|-sdc1                          329.1G    22% /
`-sdc2                                        
sr0

There are problems with kernel, so I don’t know if bash could work.

So you’ve got three drives…

  • /dev/sda has a GPT partition table and has an EFI system partition, but apart from that, it holds only Windows partitions.

  • /dev/sdb has an MSDOS partition table and holds only an EFI system partition.

  • /dev/sdc has an MSDOS partition table, and it holds your Manjaro root filesystem and a swap partition.

Using an MSDOS partition table in combination with UEFI boot is possible, but it’s not recommended, and it’s officially not supported in Manjaro because not all UEFI implementations can handle that.

Also, the fact that you’ve got two separate EFI system partitions ─ while not a problem ─ makes things confusing, because if you install GRUB, which of the two EFI system partitions does it use? Or is Manjaro actually booting in legacy mode and is your GRUB really installed in the MBR of /dev/sdc?

I forgot to mention the errors I get at boot:

error: can't find command 'fwsetup'
Press any key to continue...
  Failed to boot both default and fallback entries.
Press any key to continue...

Yes, but /dev/sdb is the USB medium. /dev/sda and /dev/sdc are two completely different drives. Honestly I don’t know why why the partition table is MSDOS, when I’ve installed Manjaro on /dev/sdc/ I’ve used mostly the default settings.

It seems you didn’t run lsblk with -f parameter. But anyway, If I understand this correctly, you have Windows installed in UEFI mode, but Manjaro was installed in BIOS mode. How do you select what OS to boot?

The fwsetup error comes from grub that I think is trying to open UEFI setup from the BIOS mode. You are booting your USB in UEFI mode and that tries to prepare grub menu config in for UEFI mode (even if you actually boot your Manjaro in BIOS mode).

What I actually recommend you is to boot Manjaro also in UEFI mode. For that:

  1. Boot once again your USB in UEFI mode and chroot to your Manjaro
  2. Create a mount point for the EFI partition: mkdir /boot/efi
  3. Mount EFI partition there: mount /dev/sda2 /boot/efi
  4. Install grub to the EFI partition: grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck
  5. Update grub menu config: update-grub
  6. Reboot

This has one small problem. It makes your Manjaro install to depend on your Windows disk (because there is where the EFI partition resides). You can also try to do a EFI partition in your Manjaro disk, but I don’t want to mess up things still more.

Option B is just continue the way things were, so:

  1. Boot once again your USB but this time in BIOS mode and chroot to your Manjaro
  2. Check that your Manjaro drive is still /dev/sdc with parted -l
  3. Reinstall grub: grub-install --recheck /dev/sdc
  4. Update grub menu config: update-grub
  5. Reboot

You decide which way to go…

2 Likes

I select what OS to boot by accessing UEFI boot override settings. To make it clear, it’s not like dual booting, in fact Windows can’t recognize Manjaro as the alternative OS.

It never happened to me before.

It gives me this output:

Generating grub configuration file ...
Found theme: /usr/share/grub/themes/manjaro/theme.txt
grub-probe: error: cannot find a GRUB drive for /dev/sdb1.  Check your device.map.
grub-probe: error: cannot find a GRUB drive for /dev/sdb1.  Check your device.map.
Adding boot menu entry for UEFI Firmware Settings ...
Found memtest86+ image: /boot/memtest86+/memtest.bin
done

Now Manjaro is in UEFI mode, an I can confirm that by looking at the boot ovverride UEFI settings section. It still can`t boot, no errors are shown, I can see just a black screen for about 20 seconds and then my machine reboots.