You are not logged in.

#1 2017-08-05 14:07:12

stiler1st
Member
Registered: 2015-06-01
Posts: 17

[SOLVED] How to boot in GRUB by default instead of Win10 (DualBoot)

Successfully installed Win10 and Archlinux in UEFI/GPT mode. Didn't add Win10 in Grub's menuentry. After rebooting my pc boots Win10. Nevertheless, I'm able to boot in GRUB command menu (grub>), if I press F9 during HP logo period. From that point I don't know exactly what to do. And I have some questions:

1. Why does my Grub shows me command menu, i.e grub> instead of booting further to Arch? (since I didn't add Win10 in menuentry for now) 
2. How to make Grub boot before Win10 without hitting F9 and how to make show me actual choices to boot instead of grub>?

Probably I could follow this advise from askubuntu, but I doubt it would work due to the issue mentioned in comments.

Possible useful info/output:

Location of .efi files:
(hd0,gpt2)/efi/Microsoft/Boot/bootmgfw.efi
(hd0,gpt2)/efi/grub/grubx64.efi
(hd0,gpt2)/grub/grub.cfg

Output of lsblk:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0    7:0    0   403M  1 loop 
sda      8:0    0 238.5G  0 disk 
├─sda1   8:1    0   450M  0 part 
├─sda2   8:2    0   100M  0 part /boot
├─sda3   8:3    0    16M  0 part 
├─sda4   8:4    0  67.8G  0 part 
├─sda5   8:5    0  78.1G  0 part 
└─sda6   8:6    0    92G  0 part /
sdb      8:16   1  14.7G  0 disk 
└─sdb1   8:17   1  14.7G  0 part 
sr0     11:0    1  1024M  0 rom  

sdb is just my usb. EFI partition is /dev/sda2. Arch installed on /dev/sda6

Output of grub.cfg:

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod ext2
set root='hd0,gpt6'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt6 --hint-efi=hd0,gpt6 --hint-baremetal=ahci0,gpt6  504b863d-5a4c-472e-8bae-5401ff4d8912
else
  search --no-floppy --fs-uuid --set=root 504b863d-5a4c-472e-8bae-5401ff4d8912
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=en_US
  insmod gettext
fi
terminal_input console
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=5
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/10_linux ###

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

Output of efibootmgr -v:

BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 2001,0003,3003,0002,2002,2004
Boot0000* USB Hard Drive (UEFI) - JetFlashTranscend 16GB	PciRoot(0x0)/Pci(0x14,0x0)/USB(1,0)/HD(1,GPT,5929044e-c800-4a7f-8d5b-cc75d2e550ca,0x800,0x1d6f7df)RC
Boot0002* grub	HD(2,GPT,760b251d-7ea1-4167-ae92-20a5d3fbf7fa,0xe1800,0x32000)/File(\EFI\grub\grubx64.efi)
Boot0003* Windows Boot Manager	HD(2,GPT,760b251d-7ea1-4167-ae92-20a5d3fbf7fa,0xe1800,0x32000)/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.4.7.9.5.}...M................
Boot2001* EFI USB Device	RC
Boot2002* EFI DVD/CDROM	RC
Boot3003* Internal Hard Disk or Solid State Disk	RC

Last edited by stiler1st (2017-08-08 09:57:31)

Offline

#2 2017-08-05 16:56:08

Head_on_a_Stick
Member
From: The Wirral
Registered: 2014-02-20
Posts: 8,842
Website

Re: [SOLVED] How to boot in GRUB by default instead of Win10 (DualBoot)

stiler1st wrote:

1. Why does my Grub shows me command menu, i.e grub> instead of booting further to Arch? (since I didn't add Win10 in menuentry for now)

The posted grub.cfg is empty and does not contain any menu entries at all.

Please provide the exact commands used to install the GRUB bootloader to the disk and configure the bootloader.

Please also list the commands used to mount your partitions and install the system — for example, were you (arch-)chrooted onto the system when you attempted to configure GRUB? It is easy to direct the output to the wrong location.

2. How to make Grub boot before Win10 without hitting F9 and how to make show me actual choices to boot instead of grub>?

Use `efibootmgr -o 2,3`, that should work.

If your UEFI firmware is uncooperative then try https://wiki.archlinux.org/index.php/Un … boot_order

The options in your linked thread may also work for you but I found that over-writing $ESP/EFI/Microsoft/Boot/bootmgfw.efi would cause my Windows 10 system to fail to upgrade properly (this was for the pre-release version, it may have changed since then).


Jin, Jîyan, Azadî

Offline

#3 2017-08-05 19:35:08

stiler1st
Member
Registered: 2015-06-01
Posts: 17

Re: [SOLVED] How to boot in GRUB by default instead of Win10 (DualBoot)

Head_on_a_Stick wrote:

Please provide the exact commands used to install the GRUB bootloader to the disk and configure the bootloader.

Well, I can't remember properly, but something like this:

# pacman -S grub efibootmgr
# mount /dev/sda2 /boot
# grub-install --target=x86_64 --efi-directory=/boot --bootloader-id=grub
# grub-mkconfig -o /boot/grub/grub.cfg
# pacman -S intel-ucode
# grub-mkconfig -o /boot/grub/grub.cfg

There's a chance I made something different, but not sure about it.

Head_on_a_Stick wrote:

Please also list the commands used to mount your partitions......

Mounted and arch-chrooted with following:

# mount /dev/sda6 /mnt
# mount /dev/sda2 /mnt/boot
# arch-chroot /mnt
Head_on_a_Stick wrote:

and install the system - ....

Installed with (if that what you mean):

# pacstrap /mnt base

But that was before I arch-chrooted just as guide says...

Head_on_a_Stick wrote:

for example, were you (arch-)chrooted onto the system when you attempted to configure GRUB? It is easy to direct the output to the wrong location.

Well, can't remember ;( It's more likely that I was, why would I exit it...

2. How to make Grub boot before Win10 without hitting F9 and how to make show me actual choices to boot instead of grub>?

Use `efibootmgr -o 2,3`, that should work.

I tried. It seems that it changes BootOrder as I observe it using `efibootmgr -v`, but after rebooting my pc reboots a 2-3 times (at least it seems so) and then it boots Win10 again ;(

Head_on_a_Stick wrote:

If your UEFI firmware is uncooperative then try https://wiki.archlinux.org/index.php/Un … boot_order

The only left thing that I didn't try from there is:

# bcdedit /set "{bootmgr}" path "\EFI\path\to\app.efi"

Can you please tell me how should I proceed from there, when I'll (probably) get in grub> menu? i.e. add ArchLinux and Win10 to menuentries.

Also, I noticed that my BIOS driver is from 2016 and a new one from 2017 is available. Should I try to update it or it's better to stick to the variant above with bcdedit? Will updating bios driver corrupt something in my arch or grub installations? Is it safe thing to do? Thanks.

Offline

#4 2017-08-05 20:36:31

Slithery
Administrator
From: Norfolk, UK
Registered: 2013-12-01
Posts: 5,776

Re: [SOLVED] How to boot in GRUB by default instead of Win10 (DualBoot)

stiler1st wrote:

Well, I can't remember properly, but something like this:

# pacman -S grub efibootmgr
# mount /dev/sda2 /boot
# grub-install --target=x86_64 --efi-directory=/boot --bootloader-id=grub
...

If this is the order that you did things, then there's a problem.
The boot partition needs to be mounted before the initial pacstrap command, as well as before installing the grub package.


No, it didn't "fix" anything. It just shifted the brokeness one space to the right. - jasonwryan
Closing -- for deletion; Banning -- for muppetry. - jasonwryan

aur - dotfiles

Offline

#5 2017-08-07 17:02:23

stiler1st
Member
Registered: 2015-06-01
Posts: 17

Re: [SOLVED] How to boot in GRUB by default instead of Win10 (DualBoot)

Use `efibootmgr -o 2,3`, that should work.

If your UEFI firmware is uncooperative then try https://wiki.archlinux.org/index.php/Un … boot_order

Nothing from this worked ;( Windows still boots before grub (but I've managed grub to show options for arch and win10).

Offline

#6 2017-08-07 20:02:48

Head_on_a_Stick
Member
From: The Wirral
Registered: 2014-02-20
Posts: 8,842
Website

Re: [SOLVED] How to boot in GRUB by default instead of Win10 (DualBoot)

stiler1st wrote:

Nothing from this worked

Don't do that.

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

If you have a working GRUB configuration then see my reply in this post for the correct `bcdedit` incantation:

https://bbs.archlinux.org/viewtopic.php … 8#p1728628


Jin, Jîyan, Azadî

Offline

#7 2017-08-07 20:44:22

stiler1st
Member
Registered: 2015-06-01
Posts: 17

Re: [SOLVED] How to boot in GRUB by default instead of Win10 (DualBoot)

Head_on_a_Stick wrote:

If you have a working GRUB configuration then see my reply in this post for the correct `bcdedit` incantation:
https://bbs.archlinux.org/viewtopic.php … 8#p1728628

Executed command like this (didn't help, still gets overwritten on a startup):

bcdedit /set {bootmgr} path \EFI\grub\grubx64.efi

Btw, my grubx64.efi file is located at \efi\grub\grubx64.efi, I guess that lower/upper case letters change nothing?

Last edited by stiler1st (2017-08-07 20:45:37)

Offline

#8 2017-08-07 20:51:23

Slithery
Administrator
From: Norfolk, UK
Registered: 2013-12-01
Posts: 5,776

Re: [SOLVED] How to boot in GRUB by default instead of Win10 (DualBoot)

stiler1st wrote:

Btw, my grubx64.efi file is located at \efi\grub\grubx64.efi, I guess that lower/upper case letters change nothing?

It's a FAT32 filesystem, case is irrelevant.


No, it didn't "fix" anything. It just shifted the brokeness one space to the right. - jasonwryan
Closing -- for deletion; Banning -- for muppetry. - jasonwryan

aur - dotfiles

Offline

#9 2017-08-07 20:56:24

Head_on_a_Stick
Member
From: The Wirral
Registered: 2014-02-20
Posts: 8,842
Website

Re: [SOLVED] How to boot in GRUB by default instead of Win10 (DualBoot)

stiler1st wrote:

Executed command like this (didn't help, still gets overwritten on a startup)

Did you issue the command with Administrator privileges?

Please post the full output of `bcdedit` (no arguments) after running the command again.

The command does not alter the NVRAM entries, it just chainloads bootmgfw.efi to grubx64.efi


Jin, Jîyan, Azadî

Offline

#10 2017-08-07 21:26:22

stiler1st
Member
Registered: 2015-06-01
Posts: 17

Re: [SOLVED] How to boot in GRUB by default instead of Win10 (DualBoot)

Did you issue the command with Administrator privileges?

Yes.

Please post the full output of `bcdedit` (no arguments) after running the command again.

After executing this command (before reboot):
http://imgur.com/RTV1P7l

P.S. sorry for image, text formatting of this output goes crazy ;(

Last edited by stiler1st (2017-08-08 09:49:46)

Offline

#11 2017-08-07 21:52:34

Head_on_a_Stick
Member
From: The Wirral
Registered: 2014-02-20
Posts: 8,842
Website

Re: [SOLVED] How to boot in GRUB by default instead of Win10 (DualBoot)

Oh dear, your motherboard firmware really doesn't work at all (bootmgfw.efi isn't even in the UEFI standard).

I think the only option left is to copy grubx64.efi to bootmgfw.efi and place the original Windows file in a different location (but still on the EFI system partition) then create a custom GRUB entry (using /etc/grub.d/40_custom) to chainload that:

menuentry 'Windows...' {
    set root=(hd0,2)
    chainloader /new/path/to/bootmgfw.efi
}

It would be useful if you could report back if this cause problems with Windows updates in future.

stiler1st wrote:

text formatting of this output goes crazy

Probably best to replace the image with a link.


Jin, Jîyan, Azadî

Offline

#12 2017-08-08 09:56:57

stiler1st
Member
Registered: 2015-06-01
Posts: 17

Re: [SOLVED] How to boot in GRUB by default instead of Win10 (DualBoot)

I think the only option left is to copy grubx64.efi to bootmgfw.efi and place the original Windows file in a different location (but still on the EFI system partition) then create a custom GRUB entry (using /etc/grub.d/40_custom) to chainload that:

menuentry 'Windows...' {
    set root=(hd0,2)
    chainloader /new/path/to/bootmgfw.efi
}

It worked.

It would be useful if you could report back if this cause problems with Windows updates in future.

I will, thanks.

Btw, should I be aware about any extra consequences of this hack? Like, can updating of grub, kernel, bios, drivers, etc. break something due to this hack? Because, if it causes extra pain like blocking Windows10 updating then I'll probably switch back to "press F9 before startup" model ;) Anyway, I'll report if something of this happens. Thank you.

Offline

#13 2017-08-08 19:42:26

Head_on_a_Stick
Member
From: The Wirral
Registered: 2014-02-20
Posts: 8,842
Website

Re: [SOLVED] How to boot in GRUB by default instead of Win10 (DualBoot)

stiler1st wrote:

should I be aware about any extra consequences of this hack? Like, can updating of grub, kernel, bios, drivers, etc. break something due to this hack?

Well, updating your BIOS firmware can't really make things any worse and it may actually cause your motherboard to start following the UEFI specification and load BOOTX64.EFI automatically.

Updating GRUB or the kernel should not affect your booting process.

I used the same hack myself for a while and the only problem was the Windows stopped being able to update itself properly — it would go through the (hours-long) rigmarole of finding, downloading and installing the updates but it would then report that the update had failed after rebooting. This was the pre-release version though, perhaps Windows is more robust now.

Last edited by Head_on_a_Stick (2017-08-08 20:04:15)


Jin, Jîyan, Azadî

Offline

#14 2017-08-08 20:29:25

ewaller
Administrator
From: Pasadena, CA
Registered: 2009-07-13
Posts: 20,368

Re: [SOLVED] How to boot in GRUB by default instead of Win10 (DualBoot)

Head_on_a_Stick wrote:

perhaps Windows is more robust now.

hmm

Last edited by ewaller (2017-08-08 20:30:06)


Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
The shortest way to ruin a country is to give power to demagogues.— Dionysius of Halicarnassus
---
How to Ask Questions the Smart Way

Offline

Board footer

Powered by FluxBB