Forums Neueste Beiträge
 

EFI will nicht booten...

09/04/2012 - 21:53 von Sieghard Schicktanz | Report spam
Hallo,

jetzt hat's mich wohl auch erwischt. Meine alte Maschine geht so langsam
"aus dem Leim", und ich hab' mir als Ersatz was neues beschafft. Statt wie
bisher "traditionelles" BIOS, P-ATA, SCSI und serielle und parallele Ports
mit (U)EFI, S-ATA und vielen USB-Anschlüssen (aber eine serielle
Schnitstelle ist doch immer noch "versteckt" drauf;).

Alles eigentlich kein Problem (bis auf die Platte, da mußte ich mir auch
ein neue leisten), aber jetzt muß das alte System auf die neue Kiste drauf.
Erste Hürde war, überhaupt was ans Laufen zu bringen, was ich aber mit
einem USB-Stick - gleich mit GPT eingerichtet, damit das auch gleich in
neuester Version làuft - fertgigebracht habe. Damit konnte ich dann die
Platte partitionieren und mit einer noch etwas reduzierten Kopie des
laufenden Systems (32 bit) einrichten,

Dann den Boot-Lader installiert - muß da ja grub2 sein, bisher hatte ich
den "alten" grub - und für den neuen 64-Bit-Prozessor eingerichtet. Ging
alles recht problemlos, und nachdem ich mir eine EFI-Shell besorgt hatte
(warum sind die Dinger eigentlich so versteckt?) und auf der dafür
erstellten EFI-System-Partition alles untergbracht, konnte ich die auch
schön starten und von der aus den grub laden und das System booten.

So, blieb(e) noch der letzte Schritt, die ganze Geschichte so einzurichten,
daß das System gleich nach dem Einschalten hochkommt.
Und da kommt's mir jetzt hoch - _NISCHT_ funktioniert da!

Weder geht der efibootmanager vom Linux, der findet einfach die EFI-
Variablen nicht, weil das "efivars"_Modul, das der _dafür_ _fertig_
_vorbereitete_ Kernel enthàlt, einfach nix anlegt, noch geht eine
Einrichtung über die EFI-Shell, weil _keine_ _einzige_ der Shells, die ich
gefunden habe, und die alle mehr oder weniger gleich sind (Version 2.0) den
dafür überall umfangreich beschriebenen Befehl "bcfg" (wohl für "boot
configuration") enthàlt!

Was'n _das_ für'n Mist?
Ich hab' zwar den - momentan für mich sehr unangenehmen - Verdacht, daß der
ganze Krams nur geht, wenn _alles_, BIOS, Boot-Lader, System-Kern und
System-Umgebung, vollstàndig 64-bittig ist - nur, wieso _gibt_ es dann den
ganzen Kram für ein 32-Bit-System überhaupt?
Oder mach' ich nur was primitives falsch, hab' was übersehen, oder nur die
passende Shell nicht gefunden? Hier komm' ich einfach nicht weiter...

(Immer über den Umweg des BIOS und Aufruf der EFI-Shell booten zu müssen
ist ja nicht so eine schöne Aussicht...)

(Weitergabe von Adressdaten, Telefonnummern u.à. ohne Zustimmung
nicht gestattet, ebenso Zusendung von Werbung oder àhnlichem)
Mit freundlichen Grüßen, S. Schicktanz
 

Lesen sie die antworten

#1 Marcus Jodorf
09/04/2012 - 23:18 | Warnen spam
Sieghard Schicktanz schrieb:

Damit konnte ich dann die Platte partitionieren und mit einer noch
etwas reduzierten Kopie des laufenden Systems (32 bit) einrichten,



Du hàttest nebenbei auch einfach nur die alte Platte einhàngen
können. Efi Kisten gehen dann normalerweise automatisch in den
Emulationsmodus und spielen „BIOS“.

Dann den Boot-Lader installiert - muß da ja grub2 sein, bisher
hatte ich den "alten" grub - und für den neuen 64-Bit-Prozessor
eingerichtet.



Mit neuen Kerneln braucht man AFAIK nicht mal mehr unbedingt einen
Bootloader. Den Kernel kann man jetzt ja auch mit EFI- statt BIOS-Code
dran backen und dann kann EFI den Kernel wohl auch direkt starten. Muß
ich bei Gelegenheit wohl mal ausprobieren.

So, blieb(e) noch der letzte Schritt, die ganze Geschichte so einzurichten,
daß das System gleich nach dem Einschalten hochkommt. Und da kommt's mir
jetzt hoch - _NISCHT_ funktioniert da!



Normal nimmt einem Grub das alles ab, wenn man das erstmalig
installiert. Dann meldet sich das selbst bei Efi entsprechend an
bzw. ruft efibootmgr selber auf.

Weder geht der efibootmanager vom Linux, der findet einfach die EFI-
Variablen nicht, weil das "efivars"_Modul, das der _dafür_ _fertig_
_vorbereitete_ Kernel enthàlt, einfach nix anlegt,



Dann liegt hier Dein Problem. Das muß vorhanden sein und funktionieren,
damit efibootmgr grub in der Firmware anmelden kann. Sonst weiß Efi
einfach nichts von Deinem grub und startet den nat. nicht.

noch geht eine Einrichtung über die EFI-Shell, weil _keine_ _einzige_
der Shells, die ich gefunden habe, und die alle mehr oder weniger
gleich sind (Version 2.0) den dafür überall umfangreich beschriebenen
Befehl "bcfg" (wohl für "boot configuration") enthàlt!



Haben die auch normal nicht. Du darfst nicht vergessen, die meiste Doku
im Netz bezieht sich auf alte Itanium Schüsseln in Serverkaliber. Da sah
das meist etwas anders aus.

Was'n _das_ für'n Mist? Ich hab' zwar den - momentan für mich sehr
unangenehmen - Verdacht, daß der ganze Krams nur geht, wenn _alles_,
BIOS, Boot-Lader, System-Kern und System-Umgebung, vollstàndig
64-bittig ist - nur, wieso _gibt_ es dann den ganzen Kram für ein
32-Bit-System überhaupt?



Firmware und Bootcode/Kernel müssen in Sachen Bitformat immer
übereinstimmen.
Normales UEFI ist 64 bittig und dementsprechend mußt Du auch einen 64
bittigen Kernel einsetzten mit einem 64 bittigen bootloader dazwischen.
Userland ist dann nat. egal.
Wenn Du einen 32 bittigen Kernel am Start hast, ist nat. klar, warum Du
auf die Nase fàllst. Das geht schlicht nicht.

Und warum es das gibt? Einfach mal über den Horizont schauen. Es gibt
durchaus 32 bit Efi. Sogar bei verbauten 64 bit CPUs.
Alte Intel Macs sind da ein prominentes Beispiel. Die machen dann so
lustige Sachen wie mit einem 32 bit Efi einen 32 bit Kernel starten, der
dann ein gemischtes Userland hat und durchaus auch Programme im 64 bit
Modus in verkleinertem Adressraum startet.

Oder mach' ich nur was primitives falsch,
hab' was übersehen, oder nur die passende Shell nicht gefunden? Hier
komm' ich einfach nicht weiter...



amd64 Kernel nehmen. Dann sollten efivars verfügbar sein und Du kannst
grub bei efi mittels efibootmgr anmelden.

(Immer über den Umweg des BIOS und Aufruf der EFI-Shell booten zu
müssen ist ja nicht so eine schöne Aussicht...)



Rein theoretisch müßte man jetzt auch wie gesagt einfach den Kernel in
der Systempartition abwerfen und direkt da rein booten können.


Gruß,

Marcus

Ähnliche fragen