RapaNui
Anmeldungsdatum: 16. Juli 2007
Beiträge: 1925
Wohnort: Penco / Chile
|
Hola Zusammen, efibootmgr ist ein Linuxtool zum manipulieren des EFI-Bootloaders. Da ich selbst kein EFI-Board besitze habe ich den Artikel aus den spärlichen Inet-Informationen heraus aufgebaut. Hiermit gebe ich ausdrückich den Artikel an EFI-Board-Besitzer frei, die evtl. mehr Informationen bzw. Fehlerkorrekturen beitragen können. Für mich sieht der Artikel fertig aus.
RapaNui
|
Lasall
Ehemalige
Anmeldungsdatum: 30. März 2010
Beiträge: 7723
|
Hi RapaNui, der Artikel ist wikimäßig perfekt und inhaltlich macht er auf mich auch einen guten Eindruck 👍 ! Ich gehe davon aus, dass hier noch etwas Diskussion stattfinden wird, ansonsten läuft die (3-Tage-)Frist ab jetzt. Gruss
Lasall
|
RapaNui
(Themenstarter)
Anmeldungsdatum: 16. Juli 2007
Beiträge: 1925
Wohnort: Penco / Chile
|
Hola Lasall, Danke, man bemüht sich 😇
|
Shakesbier
Anmeldungsdatum: 14. Juli 2008
Beiträge: 1165
|
Hallo zusammen, Lasall schrieb: [...] ansonsten läuft die (3-Tage-)Frist ab jetzt.
Nicht dass ich an RapaNuis Recherche zum Artikel zweifele, aber komplett ohne eine Rückmeldung das der Artikel von jemandem getestet wurde, würde ich ihn nur ungern ins Wiki entlassen. Abgesehen davon ist der Artikel natürlich gut ☺
|
RapaNui
(Themenstarter)
Anmeldungsdatum: 16. Juli 2007
Beiträge: 1925
Wohnort: Penco / Chile
|
Hallo Shakesbier, das kann ich gut nachvollziehen, darum hab ich ja auch auf meine fehlenen Möglichkeiten hingewiesen.
Vllt. kann ja encbladexp mehr dazu sagen, er hatte das Thema ja auch auf seinem Block, wenn auch unter Arch: http://blog.stefan-betz.net/2012/6/9/uefi-boot-auf-einem-lenovo-x220-mit-arch-linux
|
linrunner
Anmeldungsdatum: 7. August 2007
Beiträge: 3271
|
Ich hab die meisten Kommandos selbst schon probiert, dass passt so. Ich würde allerdings vorschlagen das letzte Kommando stark zu vereinfachen (und ein sudo hinzufügen):
sudo efibootmgr --create --label "Precise Pangolin - GRUB2" --loader "\\EFI\\grub\\grubx86.efi"
Die anderen Optionen bringen nicht viel, sondern verwirren eher. Die EFI-Partition findet efibootmgr mühelos selbst, denn der Artikel setzt ja eh ein im UEFI-Mode installiertes und gestartetes System voraus. EDITH würde noch einen Warnhinweis hinzufügen: setzt man bei einem UEFI-System die BIOS Settings auf Defaults zurück, so wird das NVRAM gelöscht und der schöne Ubuntu-Eintrag ist weg. Zumindest ist das bei ThinkPads so.
|
RapaNui
(Themenstarter)
Anmeldungsdatum: 16. Juli 2007
Beiträge: 1925
Wohnort: Penco / Chile
|
Danke linrunner für die Rückmeldung. linrunner schrieb: Ich würde allerdings vorschlagen das letzte Kommando stark zu vereinfachen (und ein sudo hinzufügen):
sudo efibootmgr --create --label "Precise Pangolin - GRUB2" --loader "\\EFI\\grub\\grubx86.efi"
Mit dem sudo hast Du natürlich recht, ist ein Tippfehler 😳 und korrigiert.
Die anderen Optionen bringen nicht viel, sondern verwirren eher. Die EFI-Partition findet efibootmgr mühelos selbst, denn der Artikel setzt ja eh ein im UEFI-Mode installiertes und gestartetes System voraus.
Ob sie nicht viel bringen, k.A., wird auf jeden Fall immer so gebraucht (auch bei den engl. Kollegen), man macht damit wohl auch nichts falsch. Die Angabe des Datenträgers und der Partition finde ich schon wichtig, im Sinne einer klaren Darstellung, es wird eben nicht immer die sda1 genutzt (Hab auch bewusst die Langform der Optionen genutzt).
EDITH würde noch einen Warnhinweis hinzufügen: setzt man bei einem UEFI-System die BIOS Settings auf Defaults zurück, so wird das NVRAM gelöscht und der schöne Ubuntu-Eintrag ist weg. Zumindest ist das bei ThinkPads so.
Das verstehe ich nicht bzw. hat das etwas mit dem Programm zu tun? Ich habe da keine Option für das zurücksetzen des BIOS gefunden.
|
linrunner
Anmeldungsdatum: 7. August 2007
Beiträge: 3271
|
RapaNui schrieb: Die Angabe des Datenträgers und der Partition finde ich schon wichtig, im Sinne einer klaren Darstellung, es wird eben nicht immer die sda1 genutzt (Hab auch bewusst die Langform der Optionen genutzt).
Warum sollte man im Geradeausfall etwas angegeben, das efibootmgr automatisch richtig ermittelt? Die Partition ist eingehängt wenn man diesen Befehl ausführt. Das ist selbst wenn man von einem Rettungssystem aus unterwegs ist so.
Das verstehe ich nicht bzw. hat das etwas mit dem Programm zu tun? Ich habe da keine Option für das zurücksetzen des BIOS gefunden.
Mit dem Programm direkt nicht, aber mit der Haltbarkeit der EFI-Boot-Einträge.
|
RapaNui
(Themenstarter)
Anmeldungsdatum: 16. Juli 2007
Beiträge: 1925
Wohnort: Penco / Chile
|
linrunner schrieb: Warum sollte man im Geradeausfall etwas angegeben, das efibootmgr automatisch richtig ermittelt? Die Partition ist eingehängt wenn man diesen Befehl ausführt.
Ja, dass stimmt. Würde es vllt. Sinn machen, ein weiteres Beispiel aufzunehem, bei dem man auf eine weitere Platte/Partition installiert und wie könnte man dies betiteln/beschreiben?
Das ist selbst wenn man von einem Rettungssystem aus unterwegs ist so.
Diesen Teil hast Du zwar bewusst gestrichen 😉 , aber der interessiert, wahscheinlich nicht nur mich, dennoch. Hast Du oder könntest Du da ein paar Aussagen zu machen?
Muss die Live im EFI-Modus gestartet sein? Ich verstand das immer als muss, da eben auch /sys/firmeware/efi benötigt wird. Ich hab irgendwo gelesen, es soll ein chroot eingrichtet werden, dass erschließt sich mir z.Zt. noch nicht? Sinn des PGMs ist es den NVRAM zu bearbeiten, dass erreiche ich über den EFI-Start und der Bereitstellung von efivars. Nach dem Neustart wird eben dieser NVRAM ausgelesen, dabei sollte es doch irrelevant sein unter welcher Umgebung ich den beschrieben habe (Es gibt ja auch EFI-Shells, die man z.B. von USB laden kann).
Wenn es dazu eine konkrete Aussage gäbe, dann könnte man diese eben auch als Beispiel einbauen.
Mit dem Programm direkt nicht, aber mit der Haltbarkeit der EFI-Boot-Einträge.
Auch dass stimmt, aber ich sehe noch nicht den Sinn darin dies im Artikel zu vermerken (heißt nicht, dass ich es nicht will). Wenn ich z.B. einen Router oder ein BIOS mittels Jumper oder vorgesehenem Klick auf den Default (Voreinstellung) zurücksetze, dann sollte doch klar sein, dass meine Veränderungen nicht mehr da sind.
|
Newubunti
Anmeldungsdatum: 16. Februar 2008
Beiträge: 5068
|
linrunner schrieb: Die EFI-Partition findet efibootmgr mühelos selbst, denn der Artikel setzt ja eh ein im UEFI-Mode installiertes und gestartetes System voraus.
Bist Du Dir da sicher? Sucht efibootmgr überhaupt nach der EFI-System-Partition. Denn laut manpage verwendet es ja als Standardwert für die Partition 1 . D.h. für mich eigentlich, dass das Programm gar nicht nach der EFI-Partition sucht, sondern eben einfach die Partition verlinkt, deren Nummer angegeben wird. Wird keine Nummer angegeben, dann verwendet es 1 , was für die meisten Systeme auch automatisch der richtige Wert sein dürfte. Das alles spricht aber nicht dafür, dass das Programm während des Ablaufs die Richtigkeit der Angabe verifiziert, was übrigens auch meiner praktischen Erfahrung entspricht. Das bedeutet übrigens auch, dass es nicht Voraussetzung ist, dass die EFI-System-Partition für Manipulationen am NVRAM mittels efibootmgr eingebunden sein muss. RapaNui schrieb:
Hast Du oder könntest Du da ein paar Aussagen zu machen? Nach meiner Beobachtung - allerdings ohne dauerhaft über ein EFI-System zu verfügen - ist es so:
Dann würde mich darüber hinaus auch interessieren, ob Ihr auch beobachten könnt, dass im EFI-Modus, das Modul efivars nicht mit lsmod gelistet wird. Ein modporbe efivars wird ohne Rückmeldung ausgeführt, also nach dem, was man in anderen Anleitungen liest erfolgreich, führt aber zu keiner Veränderung bei lsmod . Unter /sys/firmware/efi/vars sind die Variablen aber im EFI-Modus stets gelistet. Diese Beobachtung kann ich derzeit nur so für Virtualbox im EFI-Modus treffen, da ich wie gesagt dereit kein EFI-System habe und die, die ich zur Verfügung hatte, hatte ich zu kurz, um das untersuchen zu können. Die VB muss sich hier aber nicht unbedingt Standard-Konform verhalten.
Ich sehe in diesem Zusammenhang nicht die Notwendigkeit für eine chroot-Umgebung. Mit dem Programm direkt nicht, aber mit der Haltbarkeit der EFI-Boot-Einträge.
Auch dass stimmt, aber ich sehe noch nicht den Sinn darin dies im Artikel zu vermerken (heißt nicht, dass ich es nicht will). Wenn ich z.B. einen Router oder ein BIOS mittels Jumper oder vorgesehenem Klick auf den Default (Voreinstellung) zurücksetze, dann sollte doch klar sein, dass meine Veränderungen nicht mehr da sind.
Ich fände den Vermerk schon sinvoll. Ich weiß nicht, ob jeder der mit EFI-Boot-Problemen zu tun hat, da gleich von selber drauf kommt. Im übrigen macht es - falls es stets so ist wie beim Thinkpad von linrunner schon deswegen Sinn, weil ja auch am Anfang davor gewarnt wird, es mit Bedacht einzusetzen. Stell Dir vor jemand löscht einen der Standardeinträge aus Versehen. Dann ist es doch gut zu wissen, dass das Resetten des EFI die Standardeinstellungen wieder bringt und eben dabei gleichzeitig, die zuvor eigens erstellten löscht. Im Beispiel würde ich übrigens folgenden Pfad verwenden: sudo efibootmgr --create --label "Precise Pangolin - GRUB2" --loader "\\EFI\\ubuntu\\grubx86.efi" Denn das ist der Pfad, der während der Installation von Ubuntu angelegt wird. grub wäre es nur, wenn man GRUB vollständig unabhängig von Ubuntu händisch installiert. Gruß,
Martin
|
linrunner
Anmeldungsdatum: 7. August 2007
Beiträge: 3271
|
Newubunti schrieb: Bist Du Dir da sicher? Sucht efibootmgr überhaupt nach der EFI-System-Partition.
Na gut, ich werde es mal testen (mit Virtualbox). Newubunti schrieb: Stell Dir vor jemand löscht einen der Standardeinträge aus Versehen.
Das Setzen der BIOS Defaults löscht alle Ubuntu-Einträge. Ich vermute, nur Windows bleibt als "Standard" davon verschont (nicht probiert, mein X220 ist und bleibt Windows-frei) ... 😉
|
Newubunti
Anmeldungsdatum: 16. Februar 2008
Beiträge: 5068
|
linrunner schrieb: Newubunti schrieb: Bist Du Dir da sicher? Sucht efibootmgr überhaupt nach der EFI-System-Partition.
Na gut, ich werde es mal testen (mit Virtualbox).
Eigentlich interessiert mich mehr, wie es sich auf dem Thinkpad verhält oder einem anderen realen EFI-System. Virtualbox dürfte sich ja bei Dir nicht anders verhalten als bei mir. Unter VB ist es bei mir so, dass ich einen Eintrag z.B. für Partition 2 setzen kann, auch wenn das gar keine EFI-System-Partition ist. Das ist für mich von der Funktion des Programms her gesehen auch logisch so. Es geht ja letztlich nur um das Setzen eines Links im NVRAM. Das ist ja - mal von der --delete-Option abgesehen - nichts besonders destruktives und im Prinzip ist es nicht verkehrt, dass ich im Zweifel bestimmen kann, wie der Link gesetzt werden soll. Das ist ja ohnehin die einzige Möglichkeit auf die Bootfähigkeit unter EFI Einfluss zu nehmen. Bei VB ist es aber im übrigen bei mir so, dass sich die Einträge nur irgendwie virtuell setzen lassen. Letztlich muss ich den Link über des EFI-Menü von VB manuell setzen, was bei VB glücklicherweise geht. Die realen EFI-Systeme, die ich bisher erlebt habe, erlauben ein manuelles Setzen des Links in der Regel nicht. Wenn dann efibootmgr nicht richtig mit dem EFI-Bootmanager kommuniziert, dann hat man keine Chance eine an sich korrekte EFI-Installation über das EFI-Boot-Menü zu starten.
Newubunti schrieb: Stell Dir vor jemand löscht einen der Standardeinträge aus Versehen.
Das Setzen der BIOS Defaults löscht alle Ubuntu-Einträge. Ich vermute, nur Windows bleibt als "Standard" davon verschont (nicht probiert, mein X220 ist und bleibt Windows-frei) ... 😉
Das wäre, wenn es denn so ist, zwar nicht optimal aber auch nicht weiter störend. Das setzen der Links ist ja jetzt auch nicht aufwendiger, als eine Neuinstallation von GRUB bei BIOS. Gruß,
Martin
|
RapaNui
(Themenstarter)
Anmeldungsdatum: 16. Juli 2007
Beiträge: 1925
Wohnort: Penco / Chile
|
Newubunti schrieb:
und
Dann würde mich darüber hinaus auch interessieren, ob Ihr auch beobachten könnt, dass im EFI-Modus, das Modul efivars nicht mit lsmod gelistet wird.
Wenn dem so ist, dann sollte das "unnütze" laden des Moduls im Text bestehen bleiben. Es macht nichts falsch und kann (evtl./z.Zt.) nicht überprüft werden, stellt aber, wenn nicht geladen, eine zusätzliche Fehlermeldung dar, die so umgangen werden kann. (Dumme Frage: Kann ich den NVRAM evtl. damit bei nicht-EFI-Boot trotzdem zugänglich machen? Legt das Modul erst das SysFS zu EFI an?)
Ich fände den Vermerk schon sinvoll.
Wie sollte dieser Vermerk aussehen, er darf ja nicht Board-spezifisch ausfallen. Bei so etwas
Hinweis:Setzt man bei einem UEFI-System die BIOS Settings auf Defaults zurück, so wird das NVRAM gelöscht und die Einträge werden zurückgesetzt.
sehe ich weiteren Erklärungsbedarf. Besser noch minimalistischer/allgemeiner? Textvorschläge? EFI fällt zwar auch unter „basic input/output system“ aber es kann dabei zu Ungereimtheiten kommen:
BIOS ist nicht gleich EFI-BIOS. Es ist bekannt, dass jeder Hersteller dort wieder sein "eig. Süppchen" kocht: Wo ist diese Funktion bei den versch. Implementierungen und wie heißt sie dort jeweils? Löscht das wirklich nur die manuellen Eingaben und belässt, wie bei linrunner vermutet, die "Windows-Einträge" bestehen? Woher kommt dann der Windows-Loader bei einem manuellen neu anlegen der ESP? Was beinhalten die Defaults genau? Stehen die im Handbuch zum Board? Wie kann ich sicherstellen, dass der OEM-Händler dort nicht bei der Installation eigene Einträge hinterlegt hat, die dann auch weg sind?
Im Beispiel würde ich übrigens folgenden Pfad verwenden:
Sollte natürlich auf Ubuntu abgestellt sein - geändert.
|
Newubunti
Anmeldungsdatum: 16. Februar 2008
Beiträge: 5068
|
RapaNui schrieb: Newubunti schrieb:
und
Dann würde mich darüber hinaus auch interessieren, ob Ihr auch beobachten könnt, dass im EFI-Modus, das Modul efivars nicht mit lsmod gelistet wird.
Wenn dem so ist, dann sollte das "unnütze" laden des Moduls im Text bestehen bleiben. Es macht nichts falsch und kann (evtl./z.Zt.) nicht überprüft werden, stellt aber, wenn nicht geladen, eine zusätzliche Fehlermeldung dar, die so umgangen werden kann. (Dumme Frage: Kann ich den NVRAM evtl. damit bei nicht-EFI-Boot trotzdem zugänglich machen? Legt das Modul erst das SysFS zu EFI an?)
Da habe ich mich vielleicht nicht genau genug ausgedrückt. Es ist so: Du startest das System - egal ob von CD oder eine EFI-Installation auf Festplatte - im EFI-Modus. Du führst im Terminal aus: sudo ls /sys/firmware/efi/vars Ergebnis: Du bekommst eine Liste der EFI-Vars. Diese bekommt man dagegen im BIOS-Modus nicht. Also sind aus meiner Sicht die efivars bereitgestellt. efibootmgr funktioniert grundsätzlich auch. Wenn keine efivars bereitstehen, so führt dies AFAIK zu Fehlermeldungen bei efibootmgr . Nun denkst Du Dir, dass bei Ubuntu im EFI-Modus wahrscheinlich das Modul efivars per Standard geladen ist. lsmod listet es aber nicht. Daraufhin versuchst Du das Modul zu laden: sudo modprobe efivars Ergebnis: Dieser Befehl wird ohne Rückmeldung ausgeführt, was AFAIK beim Laden von Modulen normal ist. Jetzt führst Du erneut lsmod aus. Ergebnis: efivars wird nach wie vor nicht gelistet. Nun prüfst Du mal mit sudo modinfo efivars Ergebnis: ERROR: modinfo: could not find module efivars
Das ist wie gesagt die Situation unter Virtualbox im EFI-Modus. Allerdings gibt es in der folgenden Bugmeldungen einen Hinweis am Ende darauf, dass das Modul wohl tatsächlich in Ubuntu nicht vorhanden ist: https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/48753 Wenn es auf realen Systemen auch so wäre, wie bei mir unter VB beobachtet, dann hat das Laden absolut keinen Sinn. Das finden wir aber nur heraus, wenn wir die Leute nicht dazu anleiten, das Modul einfach mal zu laden. Es gibt dann zwei Möglichkeiten: Die Leute werden sich beschweren, dass es bei efibootmgr zu einer Fehlermeldung kommt. Die Leute beschweren sich nicht, weil es funktioniert. Dann wäre es in Ubuntu mit der Einbindung von efivars irgendwie anders realisiert oder das Modul efivars wird geladen aber nicht gelistet - was IMO ein sehr merkwürdiger BUG wäre.
Das bekommen wir aber nur heraus, wenn das mal jemand auf einem realen System testet oder man im Moment eben gerade nicht dazu anleitet, einfach mal sudo modprobe efivars auszuführen.
Ich fände den Vermerk schon sinvoll.
Wie sollte dieser Vermerk aussehen, er darf ja nicht Board-spezifisch ausfallen. Bei so etwas
Hinweis:Setzt man bei einem UEFI-System die BIOS Settings auf Defaults zurück, so wird das NVRAM gelöscht und die Einträge werden zurückgesetzt.
sehe ich weiteren Erklärungsbedarf. Besser noch minimalistischer/allgemeiner? Textvorschläge? EFI fällt zwar auch unter „basic input/output system“ aber es kann dabei zu Ungereimtheiten kommen:
BIOS ist nicht gleich EFI-BIOS. Es ist bekannt, dass jeder Hersteller dort wieder sein "eig. Süppchen" kocht: Wo ist diese Funktion bei den versch. Implementierungen und wie heißt sie dort jeweils? Löscht das wirklich nur die manuellen Eingaben und belässt, wie bei linrunner vermutet, die "Windows-Einträge" bestehen? Woher kommt dann der Windows-Loader bei einem manuellen neu anlegen der ESP? Was beinhalten die Defaults genau? Stehen die im Handbuch zum Board? Wie kann ich sicherstellen, dass der OEM-Händler dort nicht bei der Installation eigene Einträge hinterlegt hat, die dann auch weg sind?
Da kann ich keine verbindlichen Aussagen zu machen. Ich muss Dir ja nicht erklären, dass ich nach wie vor der Meinung bin, dass es noch etwas mehr praktischer Erfahrungen bedarf, bevor man verbindliche Artikel - auch wenn es nur ein Wiki ist - veröffentlicht. Der Artikel ist an sich so gut, wirft aber inhaltlich halt Fragen auf, die man nur in der Praxis gegenprüfen kann. IMO veröffentlicht man so keine Artikel. Wenn ein Artikel veröffentlich wird, dann sollte er wenigstens auf einem realen System komplett geprüft sein.
|
RapaNui
(Themenstarter)
Anmeldungsdatum: 16. Juli 2007
Beiträge: 1925
Wohnort: Penco / Chile
|
Newubunti schrieb: IMO veröffentlicht man so keine Artikel. Wenn ein Artikel veröffentlich wird, dann sollte er wenigstens auf einem realen System komplett geprüft sein.
Also viel geschreibsel um, ja um am Ende das zu sagen, was Shakesbier schon gesagt hat. Ok, damit kann ich leben, da ich ihm ja selbst zugestimmt habe. Sieh es als das was es ist: Ein nicht veröffentlicher Musterartikel zu efibootmgr in der Baustelle. linrunner hat zwar eine Rückmeldung gegeben und die Aussage des Artikels auch unter Ubutnu bestätigt, aber, so wie es aussieht, wohl auch nur unter einer Virtualisierung und damit eben nicht in einem realen System. Damit bleibt der Artikel vorerst in der Baustelle, solange bis sich weitere EFI-User dazu äußern bzw. konstruktiv dazu beitragen können - no problem.
|