You are not logged in.

#1 2013-04-14 13:11:15

Ernestosparalesto
Member
Registered: 2013-04-14
Posts: 6

[Solved] UEFI EIO chaning bootorder

Hi,

Quite simple, cannot change uefi order. Right now windows 8 starts without any interruption and to load linux i need to push f9 and choose refind

[root@dhcppc1 mason]# efibootmgr -v
BootCurrent: 0004
Timeout: 0 seconds
BootOrder: 3003,3004,2001,2002,2003
Boot0003* Windows Boot Manager	HD(2,96800,32000,1d428d82-e241-4e4c-97f8-824bffe5a00d)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.}....................
Boot0004* rEFInd	HD(2,96800,32000,1d428d82-e241-4e4c-97f8-824bffe5a00d)File(\EFI\refind\refind_x64.efi)
Boot2001* USB Drive (UEFI)	RC
Boot3003* Internal Hard Disk or Solid State Disk	RC
Boot3004* Internal Hard Disk or Solid State Disk	RC
[root@dhcppc1 mason]# strace efibootmgr -o 4,3
execve("/usr/sbin/efibootmgr", ["efibootmgr", "-o", "4,3"], [/* 21 vars */]) = 0
brk(0)                                  = 0x1987000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=65342, ...}) = 0
mmap(NULL, 65342, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f0e6c320000
close(3)                                = 0
open("/usr/lib/libpci.so.3", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`#\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=48320, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0e6c335000
mmap(NULL, 2143376, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0e6bf00000
mprotect(0x7f0e6bf0b000, 2093056, PROT_NONE) = 0
mmap(0x7f0e6c10a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xa000) = 0x7f0e6c10a000
close(3)                                = 0
open("/usr/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \33\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=2035213, ...}) = 0
mmap(NULL, 3852848, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0e6bb50000
mprotect(0x7f0e6bcf3000, 2097152, PROT_NONE) = 0
mmap(0x7f0e6bef3000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1a3000) = 0x7f0e6bef3000
mmap(0x7f0e6bef9000, 14896, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f0e6bef9000
close(3)                                = 0
open("/usr/lib/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220:\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=84840, ...}) = 0
mmap(NULL, 2189928, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f0e6b938000
mprotect(0x7f0e6b94c000, 2093056, PROT_NONE) = 0
mmap(0x7f0e6bb4b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x13000) = 0x7f0e6bb4b000
mmap(0x7f0e6bb4d000, 6760, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f0e6bb4d000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0e6c334000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0e6c330000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f0e6c31f000
arch_prctl(ARCH_SET_FS, 0x7f0e6c330700) = 0
mprotect(0x7f0e6bef3000, 16384, PROT_READ) = 0
mprotect(0x7f0e6bb4b000, 4096, PROT_READ) = 0
mprotect(0x7f0e6c10a000, 4096, PROT_READ) = 0
mprotect(0x60c000, 4096, PROT_READ)     = 0
mprotect(0x7f0e6c331000, 4096, PROT_READ) = 0
munmap(0x7f0e6c320000, 65342)           = 0
openat(AT_FDCWD, "/sys/firmware/efi/vars", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
brk(0)                                  = 0x1987000
brk(0x19b0000)                          = 0x19b0000
brk(0x19a8000)                          = 0x19a8000
close(3)                                = 0
openat(AT_FDCWD, "/sys/firmware/efi/vars", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
getdents(3, /* 98 entries */, 32768)    = 7136
getdents(3, /* 0 entries */, 32768)     = 0
close(3)                                = 0
open("/sys/firmware/efi/vars/Boot0003-8be4df61-93ca-11d2-aa0d-00e098032b8c/raw_var", O_RDONLY) = 3
read(3, "B\0o\0o\0t\0000\0000\0000\0003\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2084) = 2084
close(3)                                = 0
open("/sys/firmware/efi/vars/Boot0004-8be4df61-93ca-11d2-aa0d-00e098032b8c/raw_var", O_RDONLY) = 3
read(3, "B\0o\0o\0t\0000\0000\0000\0004\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2084) = 2084
close(3)                                = 0
open("/sys/firmware/efi/vars/Boot2001-8be4df61-93ca-11d2-aa0d-00e098032b8c/raw_var", O_RDONLY) = 3
read(3, "B\0o\0o\0t\0002\0000\0000\0001\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2084) = 2084
close(3)                                = 0
open("/sys/firmware/efi/vars/Boot3003-8be4df61-93ca-11d2-aa0d-00e098032b8c/raw_var", O_RDONLY) = 3
read(3, "B\0o\0o\0t\0003\0000\0000\0003\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2084) = 2084
close(3)                                = 0
open("/sys/firmware/efi/vars/Boot3004-8be4df61-93ca-11d2-aa0d-00e098032b8c/raw_var", O_RDONLY) = 3
read(3, "B\0o\0o\0t\0003\0000\0000\0004\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2084) = 2084
close(3)                                = 0
open("/sys/firmware/efi/vars/BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c/raw_var", O_RDONLY) = 3
read(3, "B\0o\0o\0t\0O\0r\0d\0e\0r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2084) = 2084
close(3)                                = 0
open("/sys/firmware/efi/vars/BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c/raw_var", O_WRONLY) = 3
write(3, "B\0o\0o\0t\0O\0r\0d\0e\0r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2084) = -1 EIO (Input/output error)
close(3)                                = 0
exit_group(1)                           = ?
+++ exited with 1 +++
[root@dhcppc1 mason]# 

i found something under /sys/firmware/efi/.
i just updated bios, hp g6 2220 sl. In bios i've got lecagy_support disable, secureboot disable
I've tried the legacy_support to enable, but i've got a blanking screen on boot (radeon -> nomodeset ignored?)

any hint on what to do to find out what is happenning?
I can give other info

PS should i delete some entries? can i do a bakup of nvram?


I solved moving the refind program to /EFI/Boot/  dir, including conf

Last edited by Ernestosparalesto (2013-09-22 23:12:12)

Offline

#2 2013-04-14 13:48:34

teateawhy
Member
From: GER
Registered: 2012-03-05
Posts: 1,138
Website

Re: [Solved] UEFI EIO chaning bootorder

You can change the boot order with 'efibootmgr' .
$ man efibootmgr
-o | --bootorder XXXX,YYYY,ZZZZ
              Explicitly set BootOrder (hex)

Offline

#3 2013-04-14 13:55:08

Ernestosparalesto
Member
Registered: 2013-04-14
Posts: 6

Re: [Solved] UEFI EIO chaning bootorder

mmm that's what i tried (or at last this is what i think)

i tried with efibootmgr -o 0004 (4 and 0004 are not the same in hex?) same strace output

Offline

#4 2013-04-14 17:31:18

srs5694
Member
From: Woonsocket, RI
Registered: 2012-11-06
Posts: 719
Website

Re: [Solved] UEFI EIO chaning bootorder

Some computers seem to ignore efibootmgr. On them, you may be able to use your firmware's built-in user interface to alter the boot order; or you can boot an EFI version 2 shell and use the bcfg command, as described in the Arch wiki. Some EFIs are very badly broken and won't boot entries unless they have the label "Windows Boot Manager" and/or reside at EFI/Microsoft/Boot/bootmgfw.efi on the ESP. If you've got such a broken system, my first recommendation is to look for a firmware update to fix the bug. If no such update is available, there are two other options:

  • Use bcdedit in Windows to register your preferred boot program as the default. Typing "bcdedit /set {bootmgr} path \EFI\refind\refind_x64.efi" in an Administrator command prompt window should set rEFInd as the default, for instance. This often works even on badly broken EFIs.

  • As a last resort, you can rename rEFInd to take over the Windows location. Unfortunately, some versions of Windows undo this change when they boot, so it's not as reliable as it should be. The "mvrefind.sh" script included with rEFInd helps manage this task; however, the last time I checked it wasn't included in the Arch package, so you'll need to grab the .zip file from the rEFInd download page or do the moving manually.

If none of these workarounds works, return the computer for a refund! This is extremely important, since corporations understand precisely one language: money. If you buy a cruddy product and don't return it, the corporation that sold it to you won't care that they sold you junk, and they'll continue to sell junk to others, and perhaps to you in the future. If you return a product, though, it will cost the manufacturer money, and if they know why you returned it, they might just look into it and fix the problem in future products. Currently, there's a wide range of quality in EFI implementations, ranging from abysmal to tolerable, and IMO it's important that manufacturers who sell on the "abysmal" end be made to understand that their products are not acceptable. Sadly, most users only boot Windows and so won't complain about dual-boot problems, so those of us who do run into such problems really must put forth more effort to make the manufacturers understand what the problems are.

Offline

#5 2013-04-15 09:35:20

marvn
Member
From: Prague
Registered: 2010-01-05
Posts: 84

Re: [Solved] UEFI EIO chaning bootorder

In my case, changing order using efibootmgr had no effect. Then I found a section in BIOS (or whatever they call it now), where it can be changed and that worked for me (Acer Aspire)


core i5 4590, x86_64, nvidia 970

Offline

#6 2013-04-15 23:04:16

mrunion
Member
From: Jonesborough, TN
Registered: 2007-01-26
Posts: 1,938
Website

Re: [Solved] UEFI EIO chaning bootorder

Same for me, Marvin. I have an Acer Aspire and used their boot options in BIOS.


Matt

"It is very difficult to educate the educated."

Offline

Board footer

Powered by FluxBB