No grub after manjaro install with Win10

I followed a youtube video to install manjaro in dualboot mode with Windows10. It suggested to make room for Linux (using the Windows disk tool) which was OK and boot from usbstick, then install and in the installation process just declare that the EFI partition of Windows must be mounted on /boot/efi
Then go for the installation on the free space created. So the installation was smooth but when I rebooted, there was no grub at all. It just booted directly into Windows.

I have no problem re-instaling if needed. But what are the correct steps? Another youtube video (for linux mint actually) suggests that one must create a new efi partition 512 Mb (independent of the Windows efi) and install bootlloader there, and promises that this will work.
Before I destroy the Windows installation, any help?
I am an experienced linux user but completely ignorant of Windows. I try to setup this machine for my son who needs windows too for his studies. So although I use Linux exclusively for years I have no idea about all this dual boot thing.

Thank you.

Welcome at the forum, @antonis

Best tutorial to dual boot with Windoze:

Thank you. I will try that. Windows is such a difficult OS… how come people like it…?


I am a Linux noob so what I will advice is just a rough hint but it works (it worked my twice) if you read after a tiny bit:

  1. Boot from a Live Linux USB (usually F12 on most PC)
  2. From desktop open a terminal (Konsole etc. )
  3. Read after the usage of grub update and grub install commands on Arch or Manjaro wikis
  4. Apply one of these commands appropriately and you are done, it rebuilds your grub and creates Linux and win entries for your boot. LINUX is sealf healing by a few lines.

All these assumes that you have two OS correctly installed ready and only the boot is wrong.

In UEFI mode it will actually have then 2 boot managers. The windows one and grub. You need to choose grub, named as Manjaro, first by checking the boot order in the uefi, if not already done.

If you booted the Linux Install Disk in legacy BIOS mode, then it will not be installed as UEFI and therefore it cant be booted.

Windows and Linux can share a uefi boot partition that shouldn’t be a Problem.

1 Like

OK, I will first try to re-install creating a different efi for linux. It looks easier than to restore grub. But being curious, in the boot screen of the live usb there is an entry (last one) which says something like “search for efi”. If I do that it returns a list of say 6-7 entries. What is this? Do I need it? I ask because @megavolt wrote if I booted in Bios or Uefi mode. How do I choose the mode? Is there a mode selection somewhere that I miss?

When booting the usb stick there should be “2 usbsticks” available in the boot manager of the uefi. One for efi boot and an other for legacy if CSM or however it is named is enabled.

I would recommend to run efibootmgr -v in a live session and check the boot order and if Manjaro is available there.

If windows was installed prior to Linux and you use the same EFI partition you can try this in Windows.

Control Panel -> System -> Advanced System Settings.
On the Advanced Tab, click the Settings Button under Startup and Recovery.
You can set your startup default in here

This guide does not seem to cover the following situation: I installed manjaro dual boot with win10 folowing this guide. Before reboot the guide suggests running efibootmgr and says that it should first list Manjaro. However efibootmgr gives:

manjaro@manjaro-mate ~]$ efibootmgr
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0002,2001,0001,2002,2004
Boot0000* USB Hard Drive (UEFI) - KingstonDataTraveler 102 (KingstonDataTraveler 102)
Boot0001* Windows Boot Manager
Boot0002* Manjaro
Boot2001* EFI USB Device
Boot3001* Internal Hard Disk or Solid State Disk
[manjaro@manjaro-mate ~]$

So Windows is listed first. Is this OK? I haven’t rebooted yet. How to make sure Manjaro is the default system?

Nope Manjaro is listed first (hence the bootorder) then EFI then Windows.

you can change it with

sudo efibootmgr -o 0002, 0001,2001,2002,2004
(order is Manjaro, Windows, EfI, rest)

Ah, yes, I missed the bootorder line. I just read the OSes vertically. Thanks. So I guess I should reboot.

Nope! It booted directly into Windows. Now the guide says to run from win cmd (admin):
bcdedit /set {bootmgr} path \EFI\manjaro\grubx64.efi

But this now gives:

The set command specified is not valid.
Run “bcdedit /?” for command line assistance.
The parameter is incorrect.

Running bcdedit /? there is a section about controlling the boot manager that says:

Commands that control the boot manager

/bootsequence Sets the one-time boot sequence for the boot manager.
/default Sets the default entry that the boot manager will use.
/displayorder Sets the order in which the boot manager displays the
multiboot menu.
/timeout Sets the boot manager time-out value.
/toolsdisplayorder Sets the order in which the boot manager displays
the tools menu.

I see no other relevant entry.

Here is the full output:

PS C:\windows\system32> bcdedit /set {bootmgr} path \EFI\manjaro\grubx64.efi
The set command specified is not valid.
Run “bcdedit /?” for command line assistance.
The parameter is incorrect.
PS C:\windows\system32> bcdedit /?

BCDEDIT - Boot Configuration Data Store Editor

The Bcdedit.exe command-line tool modifies the boot configuration data store.
The boot configuration data store contains boot configuration parameters and
controls how the operating system is booted. These parameters were previously
in the Boot.ini file (in BIOS-based operating systems) or in the nonvolatile
RAM entries (in Extensible Firmware Interface-based operating systems). You can
use Bcdedit.exe to add, delete, edit, and append entries in the boot
configuration data store.

For detailed command and option information, type bcdedit.exe /? . For
example, to display detailed information about the /createstore command, type:

 bcdedit.exe /? /createstore

For an alphabetical list of topics in this help file, run “bcdedit /? TOPICS”.

Commands that operate on a store

/store Used to specify a BCD store other than the current system default.
/createstore Creates a new and empty boot configuration data store.
/export Exports the contents of the system store to a file. This file
can be used later to restore the state of the system store.
/import Restores the state of the system store using a backup file
created with the /export command.
/sysstore Sets the system store device (only affects EFI systems, does
not persist across reboots, and is only used in cases where
the system store device is ambiguous).

Commands that operate on entries in a store

/copy Makes copies of entries in the store.
/create Creates new entries in the store.
/delete Deletes entries from the store.
/mirror Creates mirror of entries in the store.

Run bcdedit /? ID for information about identifiers used by these commands.

Commands that operate on entry options

/deletevalue Deletes entry options from the store.
/set Sets entry option values in the store.

Run bcdedit /? TYPES for a list of datatypes used by these commands.
Run bcdedit /? FORMATS for a list of valid data formats.

Commands that control output

/enum Lists entries in the store.
/v Command-line option that displays entry identifiers in full,
rather than using names for well-known identifiers.
Use /v by itself as a command to display entry identifiers
in full for the ACTIVE type.

Running “bcdedit” by itself is equivalent to running “bcdedit /enum ACTIVE”.

Commands that control the boot manager

/bootsequence Sets the one-time boot sequence for the boot manager.
/default Sets the default entry that the boot manager will use.
/displayorder Sets the order in which the boot manager displays the
multiboot menu.
/timeout Sets the boot manager time-out value.
/toolsdisplayorder Sets the order in which the boot manager displays
the tools menu.

Commands that control Emergency Management Services for a boot application

/bootems Enables or disables Emergency Management Services
for a boot application.
/ems Enables or disables Emergency Management Services for an
operating system entry.
/emssettings Sets the global Emergency Management Services parameters.

Command that control debugging

/bootdebug Enables or disables boot debugging for a boot application.
/dbgsettings Sets the global debugger parameters.
/debug Enables or disables kernel debugging for an operating system
/hypervisorsettings Sets the hypervisor parameters.

Command that control remote event logging

/eventsettings Sets the global remote event logging parameters.
/event Enables or disables remote event logging for an operating
system entry.

PS C:\windows\system32>

Still it fails. I tried the suggested commands in Restore_the_GRUB_Bootloader

in the EFi section.
manjaro-chroot produces error and does not mount the installed system. So after mounting the / partition to /mnt and the efi partition /mnt/boot/efi
cd /
for i in proc sys dev; do mount -o bind $i /mnt/$i; done
chroot /mnt/
created a /etc/resolv.conf file
executed pacman -Syu grub
The system upgraded to current succesfully.

Then grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=manjaro --recheck
Produces EFI variables are not supported on this system.

So back to outside of chroot modprobe efivarfs
re enter chroot and

mount -t efivarfs efivarfs /sys/firmware/efi/efivars

back to

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

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

Now this produces:

[manjaro-mate /]# grub-mkconfig -o /boot/grub/grub.cfg
Generating grub configuration file …
Found theme: /usr/share/grub/themes/manjaro/theme.txt
Found linux image: /boot/vmlinuz-5.8-x86_64
Found initrd image: /boot/intel-ucode.img /boot/initramfs-5.8-x86_64.img
Found initrd fallback image: /boot/initramfs-5.8-x86_64-fallback.img
grub-probe: error: cannot find a GRUB drive for /dev/sda1. Check your
grub-probe: error: cannot find a GRUB drive for /dev/sda1. 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.
[manjaro-mate /]#

I thought that this may have to do with the usbstick, so I shutdown and restart. BUT AGAIN right into Windoz10…

Back to usbstick and to the live session

[manjaro@manjaro-mate ~]$ sudo parted -l
Model: Kingston DataTraveler 102 (scsi)
Disk /dev/sda: 16.1GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number Start End Size Type File system Flags
2 2541MB 2545MB 4194kB primary esp

Model: KBG30ZMV256G KIOXIA (nvme)
Disk /dev/nvme0n1: 256GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 274MB 273MB fat32 EFI system partition boot, esp
2 274MB 290MB 16.8MB Microsoft reserved partition msftres
3 290MB 151GB 150GB ntfs Basic data partition msftdata
5 151GB 151GB 537MB fat32 msftdata
6 151GB 153GB 2147MB linux-swap(v1) swap
7 153GB 256GB 102GB ext4
4 256GB 256GB 554MB ntfs Basic data partition hidden, diag

[manjaro@manjaro-mate ~]$ lsblk -f
loop0 squashfs 4.0 0 100% /run/miso/sfs/li
loop1 squashfs 4.0 0 100% /run/miso/sfs/mh
loop2 squashfs 4.0 0 100% /run/miso/sfs/de
loop3 squashfs 4.0 0 100% /run/miso/sfs/ro
sda iso9660 Joliet Ext MANJARO_MATE_2001 2020-05-14-17-25-18-00
├─sda1 iso9660 Joliet Ext MANJARO_MATE_2001 2020-05-14-17-25-18-00 0 100% /run/miso/bootmn
└─sda2 vfat FAT12 MISO_EFI AD68-2A04
├─nvme0n1p1 vfat FAT32 SYSTEM 925E-C28E

├─nvme0n1p3 ntfs Windows 428E01F98E01E5EF
├─nvme0n1p4 ntfs Windows RE tools D2B09121B0910CDB
├─nvme0n1p5 vfat FAT32 B9DD-CE37 510.7M 0% /mnt/boot/efi
├─nvme0n1p6 swap 1 12de25c7-a40e-443e-8298-77e15b587dea
└─nvme0n1p7 ext4 1.0 45eae8d4-77f1-4a61-bfda-3f05c7bf3bef 81.2G 8% /mnt
[manjaro@manjaro-mate ~]$ blkid
/dev/nvme0n1p1: LABEL=“SYSTEM” UUID=“925E-C28E” BLOCK_SIZE=“512” TYPE=“vfat” PARTLABEL=“EFI system partition” PARTUUID=“a15eefae-1da6-4ac1-9ec8-fac87f45d79d”
/dev/nvme0n1p3: LABEL=“Windows” BLOCK_SIZE=“512” UUID=“428E01F98E01E5EF” TYPE=“ntfs” PARTLABEL=“Basic data partition” PARTUUID=“864e0635-b25d-47e4-9d0a-bc73789153fe”
/dev/nvme0n1p5: UUID=“B9DD-CE37” BLOCK_SIZE=“512” TYPE=“vfat” PARTUUID=“b9b39650-ab1a-df4c-a1ec-534df53f40e8”
/dev/nvme0n1p6: UUID=“12de25c7-a40e-443e-8298-77e15b587dea” TYPE=“swap” PARTUUID=“ad06c2f4-bf34-5d40-aa83-fd79de1c1b90”
/dev/nvme0n1p7: UUID=“45eae8d4-77f1-4a61-bfda-3f05c7bf3bef” BLOCK_SIZE=“4096” TYPE=“ext4” PARTUUID=“3e5bbaa8-1424-ae47-9f18-ec15855d9923”
/dev/nvme0n1p4: LABEL=“Windows RE tools” BLOCK_SIZE=“512” UUID=“D2B09121B0910CDB” TYPE=“ntfs” PARTLABEL=“Basic data partition” PARTUUID=“b6728bf5-c5e7-4ddb-8052-fa59f5a73e98”
/dev/loop0: TYPE=“squashfs”
/dev/loop1: TYPE=“squashfs”
/dev/loop2: TYPE=“squashfs”
/dev/loop3: TYPE=“squashfs”
/dev/sda1: BLOCK_SIZE=“2048” UUID=“2020-05-14-17-25-18-00” LABEL=“MANJARO_MATE_2001” TYPE=“iso9660”
[manjaro@manjaro-mate ~]$ efibootmgr -v
BootCurrent: 0003
Timeout: 0 seconds
BootOrder: 0002,2001,0001,0000,2002,2004
Boot0000* EFI Hard Drive (KBG30ZMV256G KIOXIA) PciRoot(0x0)/Pci(0x1d,0x4)/Pci(0x0,0x0)/NVMe(0x1,00-08-0D-04-00-D2-92-45)/HD(5,GPT,b9b39650-ab1a-df4c-a1ec-534df53f40e8,0x11897800,0x100000)RC
Boot0001* Windows Boot Manager HD(1,GPT,a15eefae-1da6-4ac1-9ec8-fac87f45d79d,0x800,0x82000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS…x…B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.}…
Boot0002* manjaro HD(5,GPT,b9b39650-ab1a-df4c-a1ec-534df53f40e8,0x11897800,0x100000)/File(\EFI\manjaro\grubx64.efi)
Boot0003* USB Hard Drive (UEFI) - KingstonDataTraveler 102 (KingstonDataTraveler 102) PciRoot(0x0)/Pci(0x14,0x0)/USB(1,0)/HD(1,MBR,0x0,0x4bb7d0,0x2000)RC
Boot2001* EFI USB Device RC
Boot3001* Internal Hard Disk or Solid State Disk RC

What is so wrong with all this…???

Try to change the boot order in the UEFI, that was the way i made it on my laptop :wink:

Just to make sure… do you mean something like

sudo efibootmgr -o 0001, 0002

instead of the 0002,0001 that is now?

Stupid machine… Just for other people to know. This is an HP Pavillion x360-Convertible Model14-dh1005nv

No matter what you do with installation disks/usb etc it will load Windows. Why? because it is instructed to do so in its firmware. I was ready to quit when I thought of rechecking the “bios” settings for a last time. There is an entry called UEFI settings in Boot order in bios settings. This setting when you press enter does nothing, so I had not paid attention. After I was sure Manjaro was properly installed I re-checked.

Pressing enter on that it now brings a small menu, listing

Windows Boot Loader

with Windows Boot loader highlighted.
On the right column of the screen, it says F5 or F6 to change order. So you bring manjaro at the top and now what? You are still seeing this little menu. Pressing Esc and the F10 to save does not work! This is unreasonable. It is a shame HP. Pressing Enter and F10 to save it does not work again.

After you bring manjaro at the top, you have to press F10 to exit this menu, and then you have to press again F10 to save. I have never seen this behavior again. So this is the solution, it has nothing to do with manjaro installation and I think that the forum admins must add this information in some wiki page for people to know.

Thanks for all the help.

I just gave up trying to solve a similar situation with an HP 15-d053cl TouchSmart Notebook, because this one has an even more stupid firmware, since under “UEFI boot order”, I don’t get any sub-menu to choose from if I press enter in “OS boot Manager”. This automatically points to Windows and boots accordingly.

To boot from Manjaro, I have to press esc at POST, then press f9 boot options, then select “Manjaro” (being “OS boot Manager” the first option, which as said before, means Windows) and only then I’m presented with the GRUB screen, offering me the usual alternatives, Windows included.
Convoluted process for Manjaro, and redundant for Windows … Thanks, HP.

this command
bcdedit /set {bootmgr} path \EFI\manjaro\grubx64.efi
if is set under probably any other terminal than CMD ( of course as Administrator) will give this

The set command specified is not valid.
Run “bcdedit /?” for command line assistance.
The parameter is incorrect.

run this via CMD under Windows