• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[Gelöst] 'efibootmgr' zeigt nichts an

OP
gehrke

gehrke

Administrator
Teammitglied
susejunky schrieb:
In meinem System sind, egal ob mit oder ohne secureboot, deutlich mehr EFI-Variablen sichtbar. Ich vermute
Code:
od -An -t u1 /sys/firmware/efi/vars/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c/data
liefert bei Dir kein Ergebnis?
Korrekt, bei Robi sind ja auch mehr Variablen vorhanden. Ist auch schon an dem Output zuvor erkenntlich, dass ich gar kein /sys/firmware/efi/vars/SecureBoot* habe, aber noch viel mehr nicht. Das ist wahrscheinlich Teil des Problems.
 
OP
gehrke

gehrke

Administrator
Teammitglied
So, durfte jetzt mal die EFI-Shell probieren.

Installation:
Code:
j6:~ # cd /boot/efi; wget https://svn.code.sf.net/p/edk2/code/trunk/edk2/ShellBinPkg/UefiShell/X64/Shell.efi
Mit SecureBoot wollte die nicht starten, aber ohne schon. Ich habe dann Robi's Dump-Anweisungen befolgt und komme zu diesem von mir ge-xxx-ten Output:
Code:
Option: 00. Variable: Boot0000   
  Desc    - opensuse-secureboot
  DevPath - HD(1,GPT,<xxx>,0x800,0x4E000)/\EFI\OPENSUSE\SHIM.EFI
  Optional- N
Option: 01. Variable: Boot0001   
  Desc    - opensuse
  DevPath - HD(1,GPT,<xxx>,0x800,0x4E000)/\EFI\OPENSUSE\GRUBX64.EFI
  Optional- N
Option: 02. Variable: Boot0002   
  Desc    - UEFI OS
  DevPath - HD(1,GPT,<xxx>,0x800,0x4E000)/\EFI\BOOT\BOOTX64.EFI
  Optional- N
So ähnlich hätte ich das auch von efibootmgr erwartet, aber scheinbar werden die Variablen nicht an das OS weitergereicht. :???:
 
A

Anonymous

Gast
Interessant wäre der Befehl

Code:
dmpstore -b Boot*

Dort kommen dann die Bootvariablen im Rawformat zu Anzeige.
Beispiel:
Code:
Variable NV+RT+BS '8BE4DF61-93CA-11D2-AA0D-00E098032B8C:Boot000A' DataSize = 0xB8
  00000000: 01 00 00 00 66 00 6E 00-65 00 75 00 65 00 72 00  *....f.n.e.u.e.r.*
  00000010: 6B 00 65 00 72 00 6E 00-00 00 04 01 2A 00 01 00  *k.e.r.n.....*...*
  00000020: 00 00 00 08 00 00 00 00-00 00 00 E0 04 00 00 00  *................*
  00000030:....................
dort von Interesse die Eigenschaftren, steht in der jeweils ersten Zeile und sollten für Bootvariablen diese anzeigen NV+RT+BS
bedeutet : "NON_VOLATILE + BOOTSERVICE_ACCESS + RUNTIME_ACCESS"
Also auf deutsch übersetzt in etwa: "BootServiceVariable die auch bei einem Ausschalten des Rechner erhalten bleibt und Zugriff vom Betriebssystem auf diese Variabel möglich ist."

und wenn UEFI bei dir normal funktioniert, dann vermute ich mal, das "RT" bei dir fehlt und damit sind diese Variablen nachdem der Bootloader erfolgreichen Boot an UEFI gemeldet hat, unsichtbar und nicht mehr erreichbar ist, und damit kann dann weder Linux noch Windows im gebooteten Zustand da was auslesen oder ändern.
Möchte wetten, das bei den BootServiceVariablen in der UEFI-Spezifikation aber "RT" vorgesehen ist.

Was mich aber an der ganzen Geschichte stört, diese Variablen sind wohl von Linux bei der Installation angelegt worden, Oder hast du sie selbst per Hand im Setup eingegeben? Linux, "und zwar alles was ich bisher an Bootloaderinstalltionsscripte gesehen haben" verwendet selbst aber nichts anderes als immer nur efibootmgr :???:


robi
 
OP
gehrke

gehrke

Administrator
Teammitglied
robi schrieb:
dann vermute ich mal, das "RT" bei dir fehlt und damit sind diese Variablen nachdem der Bootloader erfolgreichen Boot an UEFI gemeldet hat, unsichtbar und nicht mehr erreichbar ist, und damit kann dann weder Linux noch Windows im gebooteten Zustand da was auslesen oder ändern.
Code:
Variable RT+BS '8BE4DF61-93CA-11D2-AA0D-00E098032B8C:BootOptionSupport' DataSize = 0x04
  00000000: 01 00 00 00                                      *....*
Variable NV+RT+BS '8BE4DF61-93CA-11D2-AA0D-00E098032B8C:BootOrder' DataSize = 0x06
  00000000: 00 00 01 00 02 00                                *......*
Variable NV+RT+BS '8BE4DF61-93CA-11D2-AA0D-00E098032B8C:Boot0000' DataSize = 0x8E
  00000000: 01 00 00 00 60 00 6F 00-70 00 65 00 6E 00 73 00  *....`.o.p.e.n.s.*
  00000010: 75 00 73 00 65 00 2D 00-73 00 65 00 63 00 75 00  *u.s.e.-.s.e.c.u.*
  00000020: 72 00 65 00 62 00 6F 00-6F 00 74 00 00 00 04 01  *r.e.b.o.o.t.....*
  00000030: 2A 00 01 00 00 00 00 08-00 00 00 00 00 00 00 E0  **...............*
  00000040: 04 00 00 00 00 00 04 14-E8 DA 25 B9 EC 4C 8B 25  *..........%..L.%*
  00000050: 05 3F 27 18 08 80 02 02-04 04 32 00 5C 00 45 00  *.?'.......2.\.E.*
  00000060: 46 00 49 00 5C 00 4F 00-50 00 45 00 4E 00 53 00  *F.I.\.O.P.E.N.S.*
  00000070: 55 00 53 00 45 00 5C 00-53 00 48 00 49 00 4D 00  *U.S.E.\.S.H.I.M.*
  00000080: 2E 00 45 00 46 00 49 00-00 00 7F FF 04 00        *..E.F.I.......*
Variable NV+RT+BS '8BE4DF61-93CA-11D2-AA0D-00E098032B8C:Boot0002' DataSize = 0x74
  00000000: 01 00 00 00 5E 00 55 00-45 00 46 00 49 00 20 00  *....^.U.E.F.I. .*
  00000010: 4F 00 53 00 00 00 04 01-2A 00 01 00 00 00 00 08  *O.S.....*.......*
  00000020: 00 00 00 00 00 00 00 E0-04 00 00 00 00 00 04 14  *................*
  00000030: E8 DA 25 B9 EC 4C 8B 25-05 3F 27 18 08 80 02 02  *..%..L.%.?'.....*
  00000040: 04 04 30 00 5C 00 45 00-46 00 49 00 5C 00 42 00  *..0.\.E.F.I.\.B.*
  00000050: 4F 00 4F 00 54 00 5C 00-42 00 4F 00 4F 00 54 00  *O.O.T.\.B.O.O.T.*
  00000060: 58 00 36 00 34 00 2E 00-45 00 46 00 49 00 00 00  *X.6.4...E.F.I...*
  00000070: 7F FF 04 00                                      *....*
Variable NV+RT+BS '8BE4DF61-93CA-11D2-AA0D-00E098032B8C:Boot0001' DataSize = 0x7E
  00000000: 01 00 00 00 66 00 6F 00-70 00 65 00 6E 00 73 00  *....f.o.p.e.n.s.*
  00000010: 75 00 73 00 65 00 00 00-04 01 2A 00 01 00 00 00  *u.s.e.....*.....*
  00000020: 00 08 00 00 00 00 00 00-00 E0 04 00 00 00 00 00  *................*
  00000030: 04 14 E8 DA 25 B9 EC 4C-8B 25 05 3F 27 18 08 80  *....%..L.%.?'...*
  00000040: 02 02 04 04 38 00 5C 00-45 00 46 00 49 00 5C 00  *....8.\.E.F.I.\.*
  00000050: 4F 00 50 00 45 00 4E 00-53 00 55 00 53 00 45 00  *O.P.E.N.S.U.S.E.*
  00000060: 5C 00 47 00 52 00 55 00-42 00 58 00 36 00 34 00  *\.G.R.U.B.X.6.4.*
  00000070: 2E 00 45 00 46 00 49 00-00 00 7F FF 04 00        *..E.F.I.......*
Danach sollten die Variablen doch dem OS zur Verfügung gestellt werden, oder habe ich das missverstanden? Demnach wäre das wohl ein Bug irgendwo?!?
robi schrieb:
Was mich aber an der ganzen Geschichte stört, diese Variablen sind wohl von Linux bei der Installation angelegt worden, Oder hast du sie selbst per Hand im Setup eingegeben? Linux, "und zwar alles was ich bisher an Bootloaderinstalltionsscripte gesehen haben" verwendet selbst aber nichts anderes als immer nur efibootmgr :???:
No, Sir. Hab ja im Suff schon viel Unsinn angestellt, aber sowas noch nicht... :???:
 
A

Anonymous

Gast
Damit bin ich mit meiner Logik am Ende, keine Ahnung wo ich weiter suchen würde. Hat mal jemand im Netz nach ähnlichen Meldungen gesucht?

Incident auf gelöst setzen: Lösungsbeschreibung: UEFI entweder Seite 10 oder Seite 15 ;)

robi
 

susejunky

Moderator
Teammitglied
robi schrieb:
... Hat mal jemand im Netz nach ähnlichen Meldungen gesucht
leider sind in den Beiträgen von gehrke keine detaillierten Angaben zur Hardware und dem verwendeten UEFI enthalten. Das erschwert eine gezielte Suche.

Bei der Suche nach der allgemeinen Problematik "keine EFI-Variablen" bin ich auf ein paar Berichte gestoßen (teilweise schon älter, kein openSUSE beteiligt), in denen beklagt wurde, dass efibootmgr keine oder nicht alle EFI-Variablen anzeigt. In den meisten Fällen hat eine Firmware-Aktualisierung das Problem behoben.

Viele Grüße

susejunky
 
OP
gehrke

gehrke

Administrator
Teammitglied
Bislang bekannt:
Code:
j6:~ # dmesg | grep -i efi
[    0.000000] efi: EFI v2.31 by American Megatrends
[    0.000000] efi:  ACPI=0x79352000  ACPI 2.0=0x79352000  SMBIOS=0x79a96e18
Hardware: ASUS X551M

Aus dem Setup abgetippt:
American Megatrends
Version: 510
GDP: 7.1.1005
 

susejunky

Moderator
Teammitglied
Hallo gehrke,

gehrke schrieb:
Bislang bekannt:
Code:
j6:~ # dmesg | grep -i efi
[    0.000000] efi: EFI v2.31 by American Megatrends
[    0.000000] efi:  ACPI=0x79352000  ACPI 2.0=0x79352000  SMBIOS=0x79a96e18
Hardware: ASUS X551M

Aus dem Setup abgetippt:

American Megatrends
Version: 510
GDP: 7.1.1005
laut dieser Seite
http://ubuntuforums.org/archive/index.php/t-2263163.html
gibt es für den Asus X551MA / X551MAV eine Firmware-Version 514.

NACHTRAG: 09.09.2015 10:00 Uhr

Und hier http://dlcdnet.asus.com/pub/ASUS/nb/X551MA/X551MAAS515.zip scheint es sogar schon eine Version 515 zu geben.

ENDE NACHTRAG

Viele Grüße

susejunky
 
OP
gehrke

gehrke

Administrator
Teammitglied
Moin susejunky,

Danke für die Recherche. Derzeit weiß ich noch nicht, ob ich das Risiko eines Firmware-Updates eingehen will. Zum einen habe ich hier 'nur' ein akademisches Problem ohne direkte Auswirkung für mich, zum anderen gehört die Hardware einem ganz schwierigen Kunden. ;)

Falls ich mich dazu durchringen kann, melde ich mich mit dem Ergebnis.
 

josef-wien

Ultimate Guru
Nach Deinen bisherigen Aussagen wurden die drei Eintragungen im UEFI-Boot-Menü nicht direkt im UEFI und nicht über die UEFI-Shell vogenommen. Somit müssen sie in einem Betriebssystem erfolgt sein, d. h. damals hatte das Betriebssystem Zugang zu den UEFI-Variablen. Danach muß irgendein (vermutlich nicht geplantes) Ereignis dazu geführt haben, daß das UEFI nur mehr lächerliche elf UEFI-Variablen dem Betriebssystem zur Verfügung stellt. Derzeit kannst Du Änderungen nur direkt im UEFI und über die UEFI-Shell vornehmen.

ASUS schreibt sowohl beim BIOS 514 als auch beim BIOS 515 "Update EC FW". Wenn das Zurücksetzen auf die Standardwerte die Situation nicht verbessert, solltest Du ein Update ausführen. Falls das auch nicht hilft, solltest Du Dich an ASUS wenden.
 
OP
gehrke

gehrke

Administrator
Teammitglied
Moin josef-wien,

ja, das ist richtig. IMHO ist die einzige Möglichkeit, wie die Variablen dort gesetzt worden sein können, die reguläre Installation von openSUSE 13.2 vor circa einem Jahr. Ich habe auf dem Notebook in dieser Richtung seit der Installation nichts gemacht, bis vor ein paar Tagen, als ich zwecks Test SecureBoot aktiviert habe. Es muss also irgendeine dynamische Komponente da involviert sein oder die Installation macht irgend etwas anders.

Ein echtes Problem habe ich ja gar nicht (noch nicht), es bootet ja sauber. Es ist lediglich die Frage, warum die Parameter-Übergabe in diesem Fall nicht funktioniert. Bin aber unsicher, ob ich deswegen ein Firmware-Update riskieren soll.
 

revealed

Guru
Hallo,

Hast du irgendeinen gebundenen Schlüssel in dem Gerät? Windowslizenz oder so... ? Am Ende könnte es beispielsweise auch an einer OEM Firmware liegen. Wer schonmal seinen SLIC key und Cert. verloren hat, weiss bescheid. Was ich vermitteln möchte. Bei Windose 8 beispielsweise gibts die COA sticker nicht mehr. Du hast nurnoch den key der im Firmware ist. Also nur Firmware vom OEM aufspielen sofern vorhanden. Und nochmal prüfen wegen deiner Lizenz.

Sonst könnte es beispielsweise passieren, dass Cert ungültig wird, wenn sich ein Hash aus Hardware und schlüssel nicht mehr abgleichen lassen, wenn sich die Bezeichnung des Gerätes ändert. Dann hättest mal knapp 100 euro über Board geworfen. Und zwar die du beim Gerätekauf bezahlt hast. Nicht die, die du ausgibst um dir ein Win zu kaufen.

Gruß,

R
 
OP
gehrke

gehrke

Administrator
Teammitglied
Ich habe gar nix zu dem Gerät. Das Teil stammt aus einem Lehrgang und war ursprünglich mit einem anderen Linux bestückt, welches ich anschließend mit openSUSE überschrieben habe. AFAIK war da nie Windows drauf und mir ist keinerlei Einschränkung bekannt. Woran sollte ich so etwas erkennen?
 

revealed

Guru
Kannst ja mal den SLIC auslesen... hier beispielsweise könnte ein Windows Schlüssel liegen:
Code:
cat /sys/firmware/acpi/tables/MSDM
Wenn eine Firmware Fehlerbehebungen bringt, wäre übrigens sowas das einzige was mich abhalten würde. Auch besteht gerade dieser Bereich rund um die Windows aktivierung einem ständigen Wandel. Das macht also hier an der Stelle eventuell schon Sinn. Und wenn du den Verlust einer Windows Lizenz nicht zu befürchten hast, wodurch du auf eine Firmware des OEM angewiesen wärest. *Leinen los!*

Recht übersichtlich erklärt und kurz gehalten ist das in dem whitepaper hier:
https://msdn.microsoft.com/en-us/library/windows/hardware/dn653305%28v=vs.85%29.aspx

Das spricht für sich.

Gruß,

R
 
OP
gehrke

gehrke

Administrator
Teammitglied
gehrke schrieb:
Bin aber unsicher, ob ich deswegen ein Firmware-Update riskieren soll.
Ach was - no risk, no fun!

Habe ein Firmware-Update über das Setup-Programm durchgeführt. Und siehe da:
Code:
j6:~ # efibootmgr -v
BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000,0001,0002,0003,0004,0005
Boot0000* opensuse-secureboot   HD(1,800,4e000,<xxx>)File(\EFI\OPENSUSE\SHIM.EFI)
Boot0001* opensuse      HD(1,800,4e000,<xxx>)File(\EFI\OPENSUSE\GRUBX64.EFI)
Boot0002* UEFI OS       HD(1,800,4e000,<xxx>)File(\EFI\BOOT\BOOTX64.EFI)
Boot0003* UEFI:CD/DVD Drive     BIOS(81,0,00)
Boot0004* UEFI:Removable Device BIOS(82,0,00)
Boot0005* UEFI:Network Device   BIOS(83,0,00)
Code:
j6:~ # od -An -t u1 /sys/firmware/efi/vars/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c/data
   1
Code:
j6:~ # ls /sys/firmware/efi/vars    
AEDID-75860b2c-f315-4ff1-9e19-029ad0129dba
AMITSESetup-c811fa38-42c8-4579-a9bb-60e94eddfb34
ASUSSetupDefault-f1920447-7a78-4c0d-a028-ba9d003985e8
ASUSTPType-8be4df61-93ca-11d2-aa0d-00e098032b8c
AcpiGlobalVariable-af9ffd67-ec10-488a-9dfc-6cbf5ee22c2e
AcpiGlobalVariable-c020489e-6db2-4ef2-9aa5-ca06fc11d36a
AsusPlatformData-d3760e8c-7fe3-4666-849b-53272416ea14
Boot0000-8be4df61-93ca-11d2-aa0d-00e098032b8c
Boot0001-8be4df61-93ca-11d2-aa0d-00e098032b8c
Boot0002-8be4df61-93ca-11d2-aa0d-00e098032b8c
Boot0003-8be4df61-93ca-11d2-aa0d-00e098032b8c
Boot0004-8be4df61-93ca-11d2-aa0d-00e098032b8c
Boot0005-8be4df61-93ca-11d2-aa0d-00e098032b8c
BootCurrent-8be4df61-93ca-11d2-aa0d-00e098032b8c
BootOptionSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c
BootOrder-8be4df61-93ca-11d2-aa0d-00e098032b8c
CapsuleLongModeBuffer-711c703f-c285-4b10-a3b0-36ecbd3c8be2
ConIn-8be4df61-93ca-11d2-aa0d-00e098032b8c
ConInDev-8be4df61-93ca-11d2-aa0d-00e098032b8c
ConOut-8be4df61-93ca-11d2-aa0d-00e098032b8c
ConOutDev-8be4df61-93ca-11d2-aa0d-00e098032b8c
DefaultBootOrder-45cf35f6-0d6e-4d04-856a-0370a5b16f53
DriverHealthCount-7459a7d4-6533-4480-bba7-79e25a4443c9
DriverHlthEnable-0885f288-418c-4be1-a6af-8bad61da08fe
ErrOut-8be4df61-93ca-11d2-aa0d-00e098032b8c
FPDT_Variable-01368881-c4ad-4b1d-b631-d57a8ec8db6b
FastBootOption-b540a530-6978-4da7-91cb-7207d764d262
GPTHDD_PRESENT-8be4df61-93ca-11d2-aa0d-00e098032b8c
HobRomImage-dde1bc72-d45e-4209-ab85-14462d2f5074
ItkBiosModVar-3812723d-7e48-4e29-bc27-f5a39ac94ef1
KEK-8be4df61-93ca-11d2-aa0d-00e098032b8c
LastBoot-b540a530-6978-4da7-91cb-7207d764d262
MSDMTBL-01368881-c4ad-4b1d-b631-d57a8ec8db6b
MemCeil.-01368881-c4ad-4b1d-b631-d57a8ec8db6b
MemoryTypeInformation-4c19049f-4137-4dd3-9c10-8b97a83ffdfa
MokListRT-605dab50-e046-4300-abb6-3dd810dd8b23
MonotonicCounter-01368881-c4ad-4b1d-b631-d57a8ec8db6b
NetworkStackVar-d1405d16-7afc-4695-bb12-41459d3695a2
OA3MSDMvariable-01368881-c4ad-4b1d-b631-d57a8ec8db6b
OsIndicationsSupported-8be4df61-93ca-11d2-aa0d-00e098032b8c
PCI_COMMON-aca9f304-21e2-4852-9875-7ff4881d67a5
PK-8be4df61-93ca-11d2-aa0d-00e098032b8c
PchInit-e6c2f70a-b604-4877-85ba-deec89e117eb
PchS3Peim-e6c2f70a-b604-4877-85ba-deec89e117eb
PlatformLang-8be4df61-93ca-11d2-aa0d-00e098032b8c
PlatformLangCodes-8be4df61-93ca-11d2-aa0d-00e098032b8c
PreviousMemoryTypeInformation-4c19049f-4137-4dd3-9c10-8b97a83ffdfa
RegisterPwrBtnHook-8be4df61-93ca-11d2-aa0d-00e098032b8c
S3SS-4bafc2b4-02dc-4104-b236-d6f1b98d9e84
SeCEOPDoneFlag-8be4df61-93ca-11d2-aa0d-00e098032b8c
SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c
Setup-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9
SetupMode-8be4df61-93ca-11d2-aa0d-00e098032b8c
SignatureSupport-8be4df61-93ca-11d2-aa0d-00e098032b8c
StdDefaults-4599d26f-1a11-49b8-b91f-858745cff824
Timeout-8be4df61-93ca-11d2-aa0d-00e098032b8c
USBCHARGE_VAR-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9
UsbMassDevNum-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9
UsbMassDevValid-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9
UsbSupport-ec87d643-eba4-4bb5-a1e5-3f3e36b20da9
WriteOnceStatus-4b3082a3-80c6-4d7e-9cd0-583917265df1
db-d719b2cb-3d3a-4596-a3bc-dad00e67656f
dbx-d719b2cb-3d3a-4596-a3bc-dad00e67656f
del_var
new_var
use_openSUSE_cert-605dab50-e046-4300-abb6-3dd810dd8b23
Nun scheint alles da zu sein. :/

Vielen Dank an alle Beteiligten!

Nachtrag:
Anleitung zum Firmware-Update und Download: http://www.asus.com/Notebooks/X551MAV/HelpDesk_Download/
In der Anleitung nicht erwähnt wird, dass man das ZIP auspacken muss. Formatierung des USB-Stickes: 1 primäre Partition, ID= '7 HPFS/NTFS/exFAT', mkfs.fat 3.0.22
Hat mich einige Zeit gekostet... :eek:ps:
 
Oben