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 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.
This is why I didn’t want to make grub-install
(if not necessary)
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.
But it didn’t, and right now I don’t even know what we’re dealing with anymore.
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
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:
- Boot once again your USB in UEFI mode and chroot to your Manjaro
- Create a mount point for the EFI partition:
mkdir /boot/efi
- Mount EFI partition there:
mount /dev/sda2 /boot/efi
- Install grub to the EFI partition:
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck
- Update grub menu config:
update-grub
- 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:
- Boot once again your USB but this time in BIOS mode and chroot to your Manjaro
- Check that your Manjaro drive is still
/dev/sdc
withparted -l
- Reinstall grub:
grub-install --recheck /dev/sdc
- Update grub menu config:
update-grub
- Reboot
You decide which way to go…
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.