Installing Manjaro on an nvme with an EFI partition on another disk fails

As mentioned i don’t use grub, so try this page: GRUB - ArchWiki

Regarding your remark about grub not knowing where to look for the root fs : note that the grub error message I posted in the first message mentions the right nvme partition UUID : 88cf8012-7fc3-4ee1-b671-aedf6fe32a18

If that is shown it is not from grub, but from your initrd most likely, in which case you are missing the NVMe drivers in your kernel or modules i guess…

But anyhow chopping off info is not helpful, in case of typos you dont notice…
UUID’s are no secret to keep hidden, they are randomly generated…

Thanks, the arch wiki page doesn’t mention any grub.cfg inside the EFI dir. Maybe this is ubuntu specific ?

Grub is universal, not disto specific, so you could handcraft it also…
But anyhow you obviously are past the Grub-Menu anyhow, because your message mentions data from outside the grub menu…

Oh I thougt so because the grub rescue> shows right after the error message about the missing device.

Maybe I’ll take a shot at making the file myself if using the standard tools fail.

You mention missing NVMe drivers in my kernel or modules. Is there something that I can do to fix this if this is indeed causing the issue ?

Check if the nvme and nvme-core modules are available on that system and inside the initrd.

Here is info from my Kubuntu system:

> modinfo nvme nvme-core
filename:       /lib/modules/5.19.0-35-generic/kernel/drivers/nvme/host/nvme.ko
version:        1.0
license:        GPL
author:         Matthew Wilcox <>
srcversion:     BD647EB440902AFA7FE3AE7
alias:          pci:v*d*sv*sd*bc01sc08i02*
alias:          pci:v0000106Bd00002005sv*sd*bc*sc*i*
alias:          pci:v0000106Bd00002003sv*sd*bc*sc*i*
alias:          pci:v0000106Bd00002001sv*sd*bc*sc*i*
alias:          pci:v00001D0Fd0000CD02sv*sd*bc*sc*i*
alias:          pci:v00001D0Fd0000CD01sv*sd*bc*sc*i*
alias:          pci:v00001D0Fd0000CD00sv*sd*bc*sc*i*
alias:          pci:v00001D0Fd00008061sv*sd*bc*sc*i*
alias:          pci:v00001D0Fd00000065sv*sd*bc*sc*i*
alias:          pci:v00001D0Fd00000061sv*sd*bc*sc*i*
alias:          pci:v00001D97d00002263sv*sd*bc*sc*i*
alias:          pci:v0000C0A9d0000540Asv*sd*bc*sc*i*
alias:          pci:v00001E49d00000041sv*sd*bc*sc*i*
alias:          pci:v00001CC1d00005350sv*sd*bc*sc*i*
alias:          pci:v00001E4Bd00001202sv*sd*bc*sc*i*
alias:          pci:v00001E4Bd00001002sv*sd*bc*sc*i*
alias:          pci:v00001E4Bd00001001sv*sd*bc*sc*i*
alias:          pci:v00001F40d00005236sv*sd*bc*sc*i*
alias:          pci:v00002646d0000501Esv*sd*bc*sc*i*
alias:          pci:v00002646d0000501Bsv*sd*bc*sc*i*
alias:          pci:v00002646d0000501Asv*sd*bc*sc*i*
alias:          pci:v00002646d00005016sv*sd*bc*sc*i*
alias:          pci:v00002646d00005018sv*sd*bc*sc*i*
alias:          pci:v00002646d00002263sv*sd*bc*sc*i*
alias:          pci:v00002646d00002262sv*sd*bc*sc*i*
alias:          pci:v00001CC4d00006302sv*sd*bc*sc*i*
alias:          pci:v00001CC4d00006303sv*sd*bc*sc*i*
alias:          pci:v0000144Dd0000A809sv*sd*bc*sc*i*
alias:          pci:v0000144Dd0000A80Bsv*sd*bc*sc*i*
alias:          pci:v00001D97d00002263sv*sd*bc*sc*i*
alias:          pci:v000015B7d00002001sv*sd*bc*sc*i*
alias:          pci:v00001C5Cd0000174Asv*sd*bc*sc*i*
alias:          pci:v00001C5Cd00001504sv*sd*bc*sc*i*
alias:          pci:v00001344d00006001sv*sd*bc*sc*i*
alias:          pci:v00001344d00005407sv*sd*bc*sc*i*
alias:          pci:v00001CC1d00008201sv*sd*bc*sc*i*
alias:          pci:v000010ECd00005762sv*sd*bc*sc*i*
alias:          pci:v00001CC1d000033F8sv*sd*bc*sc*i*
alias:          pci:v00001B4Bd00001092sv*sd*bc*sc*i*
alias:          pci:v00001987d00005016sv*sd*bc*sc*i*
alias:          pci:v00001987d00005012sv*sd*bc*sc*i*
alias:          pci:v0000144Dd0000A822sv*sd*bc*sc*i*
alias:          pci:v0000144Dd0000A821sv*sd*bc*sc*i*
alias:          pci:v00001C5Fd00000540sv*sd*bc*sc*i*
alias:          pci:v00001C58d00000023sv*sd*bc*sc*i*
alias:          pci:v00001C58d00000003sv*sd*bc*sc*i*
alias:          pci:v00001BB1d00000100sv*sd*bc*sc*i*
alias:          pci:v0000126Fd00002263sv*sd*bc*sc*i*
alias:          pci:v00001B36d00000010sv*sd*bc*sc*i*
alias:          pci:v00008086d00005845sv*sd*bc*sc*i*
alias:          pci:v00008086d0000F1A6sv*sd*bc*sc*i*
alias:          pci:v00008086d0000F1A5sv*sd*bc*sc*i*
alias:          pci:v00008086d00000A55sv*sd*bc*sc*i*
alias:          pci:v00008086d00000A54sv*sd*bc*sc*i*
alias:          pci:v00008086d00000A53sv*sd*bc*sc*i*
alias:          pci:v00008086d00000953sv*sd*bc*sc*i*
depends:        nvme-core
retpoline:      Y
intree:         Y
name:           nvme
vermagic:       5.19.0-35-generic SMP preempt mod_unload modversions 
sig_id:         PKCS#7
signer:         Build time autogenerated kernel key
sig_key:        3B:C3:DF:AD:34:ED:94:5C:3B:FF:9A:00:E2:0D:68:76:A4:6A:A9:69
sig_hashalgo:   sha512
signature:      89:B2:20:4D:DC:A3:99:97:33:69:B4:12:DE:78:94:C2:81:DA:14:22:
parm:           use_threaded_interrupts:int
parm:           use_cmb_sqes:use controller's memory buffer for I/O SQes (bool)
parm:           max_host_mem_size_mb:Maximum Host Memory Buffer (HMB) size per controller (in MiB) (uint)
parm:           sgl_threshold:Use SGLs when average request segment size is larger or equal to this size. Use 0 to disable SGLs. (uint)
parm:           io_queue_depth:set io queue depth, should >= 2 and < 4096
parm:           write_queues:Number of queues to use for writes. If not set, reads and writes will share a queue set.
parm:           poll_queues:Number of queues to use for polled IO.
parm:           noacpi:disable acpi bios quirks (bool)
filename:       /lib/modules/5.19.0-35-generic/kernel/drivers/nvme/host/nvme-core.ko
version:        1.0
license:        GPL
srcversion:     BDB252A57932AED4DCF69A9
retpoline:      Y
intree:         Y
name:           nvme_core
vermagic:       5.19.0-35-generic SMP preempt mod_unload modversions 
sig_id:         PKCS#7
signer:         Build time autogenerated kernel key
sig_key:        3B:C3:DF:AD:34:ED:94:5C:3B:FF:9A:00:E2:0D:68:76:A4:6A:A9:69
sig_hashalgo:   sha512
signature:      83:9F:7A:78:74:D9:6E:44:9F:D1:70:2E:8D:FE:C2:54:FA:81:65:5B:
parm:           multipath:turn on native support for multiple controllers per subsystem (bool)
parm:           iopolicy:Default multipath I/O policy; 'numa' (default) or 'round-robin'
parm:           admin_timeout:timeout in seconds for admin commands (uint)
parm:           io_timeout:timeout in seconds for I/O (uint)
parm:           shutdown_timeout:timeout in seconds for controller shutdown (byte)
parm:           max_retries:max number of retries a command may have (byte)
parm:           default_ps_max_latency_us:max power saving latency for new devices; use PM QOS to change per device (ulong)
parm:           force_apst:allow APST for newly enumerated devices even if quirked off (bool)
parm:           apst_primary_timeout_ms:primary APST timeout in ms (ulong)
parm:           apst_secondary_timeout_ms:secondary APST timeout in ms (ulong)
parm:           apst_primary_latency_tol_us:primary APST latency tolerance in us (ulong)
parm:           apst_secondary_latency_tol_us:secondary APST latency tolerance in us (ulong)

The Arch-wiki says it’s already included in the kernel, but who knows: maybe they forgot it in the 6.x version you are running: Solid state drive/NVMe - ArchWiki

Thanks for the reference !

I checked and saw that these were indeed included inside the kernel 6.1 and the generated initrd.

So, I thought I’d made a mess by passing my old / as the home partition of my new system, so I decided to backup everything and start from scratch.

I created on the HDD :

  • a 300MiB efs FAT32 partition mounted at /boot/efi
  • an encrypted 900GiB LUKS partition mounted at /home
  • a 8GiB swap partition.

On the SSD:

  • a single ext4 230GiB partition mounted at /

I installed manjaro again with this partition scheme. After reboot, I sadly get the same message as before, only the UUID associated with the system partition has changed…

I tried to generate a new boot entry using grub-install just in case, it apparently went well.

When I used grub-mkconfig however, I had the following output:

[manjaro-i3 /]# grub-mkconfig -o /boot/grub/grub.cfg 
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.1-x86_64
Found initrd image: /boot/intel-ucode.img /boot/initramfs-6.1-x86_64.img
Found initrd fallback image: /boot/initramfs-6.1-x86_64-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
grub-probe: error: cannot find a GRUB drive for /dev/sdb1.  Check your
Adding boot menu entry for UEFI Firmware Settings ...
Found memtest86+ image: /boot/memtest86+/memtest.bin
/usr/bin/grub-probe: warning: unknown device type nvme0n1.
Found memtest86+ EFI image: /boot/memtest86+/memtest.efi
/usr/bin/grub-probe: warning: unknown device type nvme0n1.

This grub-probe warning sounds somewhat alerting.
sdb was the USB live stick.

Also, one thing I’m confused about is that although a Manjaro entry has been created inside the HDD efs partition EFI dir during the fresh install, there is also a /boot/efi dir on the NVMe system partition. Isn’t it weird ?

Is the UEFi support enabled in the mainboard bios ?

Yes : when I boot using the USB stick, I get to choose between Bios and Uefi mode.

One question regarding the efs partition and /boot folder.

Using the partition scheme described above, the installer created the *.efi files in an EFI folder located on the HDD. But it also created a boot folder under the root located on the SSD. This folder contains the grub folder, the initramfs files etc. Shouldn’t these also be located on my HDD ? It’s not clear to me during which step the EFI will have enough “context” to be able to access the nvme and mount volumes.

I tried to create a vfat partition on my HDD in calamares mounted at /boot, not /boot/efi, but then I get a warning stating that I should have a partition mounted at /boot/efi, otherwise the system wouldnt boot.

Should I just ignore the warning, install this way, then generate the efi file afterwards ?

OK, so my question / lead regarding where things under /boot should live (answer: on the HDD) was the right one.

I got it working using the standard GUI calamares.

In comparison with this scheme,

just a few adjustments:

  • I added an ext4 partition on the HDD, mounted at /boot. (The big adjustment, really)
  • I could not use LUKS. For some reason, I was unable to unlock the drive at boot time :man_shrugging: . So I switched to standard ext4.

I used the boot Calamares flag for the efs partition, swap for the swap partition, and root for the root partition.

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