Wie bringe ich meinen HP Laptop dazu, aus meiner neuen EFI-Datei heraus in Grub zu booten?

28

Ich besitze einen HP Pavilion Sleekbook 14-Laptop, auf dem Ubuntu 12.10 Dual Boot unter Windows 8 installiert ist. Ich habe Boot-Repair verwendet, um das Booten in Grub einzurichten.

Mein Problem ist, dass ich es nicht geschafft habe, direkt von der neu erstellten EFI-Datei zu booten. Ich habe mir die Boot-Optionen auf dem BIOS-Bildschirm angesehen, aber es gibt mir keine Wahl für Ubuntu. Die einzige Möglichkeit, Ubuntu zu starten, besteht darin, beim Einschalten des Systems F9 zu drücken und dann manuell zur Ubuntu-EFI-Datei zu navigieren. Dies funktioniert, aber wenn ich nicht genau aufpasse, wird Windows gebootet.

Nachdem ich die Ausführung von boot-repair beendet hatte, wurde mir gesagt, dass ich von sda2 / EFI / ubuntu / shimx64.efi booten soll. Ich habe einige Vorschläge erhalten, diese Datei anstelle der Windows-Datei bootmgfw.efi zu verschieben, befürchte dies jedoch brechen Dinge und nicht in der Lage, die Windows 8-Installation zu booten. Ich mag win8 schon mehr als win7, aber ich brauche es von Zeit zu Zeit für ein paar Aufgaben ...

Die Details meiner Boot-Reparatur sind hier: http://paste.ubuntu.com/1418009/

maddentim
quelle
shimx64.efi funktionierte für mich, obwohl Ubuntu Gnome in meinem Fall nach der Installation nicht bootete und die Datei auswählen musste, indem eine neue Boot-Option im BIOS erstellt wurde.
Timkofu
Es gibt unzählige Antworten zu Windows. Versuchen Sie, Linux oder Windows zu starten?
Evan Carroll
Viele schlechte Antworten sind unnötig komplex, weil Windows- sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efiProbleme die Umbenennung von grubs efi in @Vitor Abellas Antwort
Evan Carroll,

Antworten:

29

Ich hatte das gleiche Problem mit meinem HP Pavilion g6, als ich versuchte, Ubuntu 12.04.3 LTS und Windows 8 dual zu booten. Das heißt, ich hatte das Notebook auch nach "erfolgreichem" Ausführen von Boot-Repair immer noch direkt in Windows 8 gebootet F9 gedrückt, bevor das HP-Symbol angezeigt wurde, war ich in der Lage, in ein Boot-Menü (HP-Menü? Ich weiß nicht ...) zu gelangen und von dort aus den Eintrag "Ubuntu" auszuwählen, der mich zu GRUB führte 2 und schließlich zu meiner Ubuntu-Installation.

Trotzdem wollte ich in der Lage sein, den Computer direkt unter Linux zu booten, ohne dass ein Benutzereingriff erforderlich wäre.

Am Ende hat die Antwort von Rod Smith in Kombination mit den Informationen, die ich in einem anderen Forum gefunden habe, den Trick für mich getan. Ich habe Secure Boot deaktiviert und Legacy Boot ebenfalls deaktiviert.

Das habe ich gemacht:

  • Ich habe meine Ubuntu-Installation mit dem Trick der F9-Taste beim Start gebootet, um den Bootloader auswählen zu können.
  • In Ubuntu habe ich ein Terminal geöffnet.
  • Mit dem folgenden Befehl habe ich überprüft, wo sich der Windows-Bootloader befindet:

    $ sudo efibootmgr -v
    
  • In meinem Fall waren die ursprünglichen Bootloader hier: /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi. Bitte beachten Sie, dass sich Ihr Computer möglicherweise an einem anderen Ort befindet. In diesem Fall müssen Sie die folgenden Befehle anpassen.

  • Gemäß Rods Empfehlung in seiner Antwort (der Frage, wie der Bootloader manuell repariert werden kann) habe ich eine Sicherungskopie dieser Datei erstellt, indem ich sie eine Ebene nach oben verschoben habe:

    $ sudo cp /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft/bootmgfw.efi
    
  • Schließlich habe ich den GRUB2-Bootloader an dieser Stelle kopiert und das System dazu gebracht, den gewünschten Bootloader anstelle des ursprünglichen Windows-Bootloaders zu laden.

    $ sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
    

Also hatte ich endlich meinen Dual Boot mit GRUB2. Falls Windows den Bootloader nach einem Update erneut überschreibt (wie bei mir), kenne ich bereits die Schritte, um Grub wieder an seinen Platz zu bringen.

Hoffe das hilft jemandem. Bitte lassen Sie mich wissen, wenn es Probleme mit meiner Lösung gibt.

mairabc
quelle
9
Danke, es hat geholfen, aber ich konnte nicht in Windows booten. Beim Start wird GRUB gestartet und in GRUB wechselt die Option 'Windows Boot Manager' erneut in das GRUB-Menü (dies ist zu erwarten, da eine Verknüpfung mit derselben .efi-Datei besteht). Es sah so aus , obwohl ich mit der Boot-Reparatur kein Glück hatte. Ich löste es, indem ich zu Ubuntu ging und die Datei 40_custom in /etc/grub.d/ füllte, indem ich den Windows-Starteintrag, den ich in meiner Ubuntu-Paste hatte, kopierte und die URL der .efi-Datei bearbeitete, um auf die Sicherung von bootmgfw.efi zu verweisen. So enthält der Menüeintragchainloader /EFI/Microsoft/bootmgfw.efi
Vince
1
Dieser Menüeintrag funktioniert bei mir nicht
Pierre
@ Pierre May: Möglicherweise funktioniert der folgende Menüeintrag für Sie: menuentry 'Real Windows' {set root = (hd0, gpt2) chainloader /EFI/Microsoft/bootmgfw.efi} (dies setzt voraus, dass sich Ihre efi-Partition auf der ersten befindet Festplatte, auf SDA 2. Um sicherzugehen, können Sie "c" eingeben, wenn Sie sich im Grub befinden, und "ls"
eingeben
12

Ich hatte das gleiche Problem mit dem HP ProBook 4340s, dessen ursprüngliches Windows 8 bereits mit dem neuen Kubuntu 15.04 überschrieben wurde (ich bevorzuge keinen Dual-Boot). Unter anderem habe ich auch Boot-Repair ausprobiert (sowohl von HD nach der Installation als auch über die Boot-Repair-Disk ), aber diese Übung war höchstwahrscheinlich unnötig.

Ausschlaggebend waren die folgenden Änderungen im BIOS-Setup (nach dem Start des Computers drücken Sie F10 - gehen Sie zur Systemkonfiguration - öffnen Sie die Boot-Optionen ):

  1. Überprüfen Sie Customized Boot

  2. Aktivieren Sie SecureBoot

  3. Boot Mode : Wähle UEFI Hybrid oder UEFI Native (ich habe UEFI Native gewählt)

  4. UEFI Boot Order ( UEFI-Startreihenfolge) : Setzen Sie Customized Boot (Angepasster Start) an die Spitze

  5. Benutzerdefinierte Boot-Option definieren : Wählen Sie Hinzufügen und setzen Sie die Einstellung:\EFI\ubuntu\grubx64.efi

Wir haben die richtige Pfadzeichenfolge gefunden, als wir GRUB über die Option Boot from EFI File in den Fast Boot Options (F9) geöffnet haben . Zu Beginn enthielt die Optionsliste:

  • Betriebssystem-Boot-Manager
  • Booten Sie von der EFI-Datei

Nach dem Hinzufügen der benutzerdefinierten Startoption wurde diese zur Liste hinzugefügt:

  • Kundenspezifischer Boot
  • Betriebssystem-Boot-Manager
  • Booten Sie von der EFI-Datei
michal_za
quelle
Habe genau das hier auf einem HP Zbook 15, kein Glück
Cmbarbu
Wenn Sie ein uefi-System verwenden und UBUNTU 16.10 nach Windows 10 installieren, ist diese Antwort die richtige
leoredi
danke, ich musste dies tunDefine Customized Boot Option: choose Add + put the setting: \EFI\ubuntu\grubx64.efi
m3asmi
6

Hewlett-Packards UEFI bereitet mir seit einiger Zeit Herzschmerz. Ihr Fix hat mir geholfen, meinen HP-Laptop in GRUB erneut zu starten - ohne vorher F9 zu drücken.

Ich hatte ein Problem: Nach Ihrem Fix konnte ich Windows 8 in GRUB auswählen, aber Windows 8 lehnte dann den Start ab und mir wurde das GRUB-Menü erneut angezeigt.

Mein Fix:

  1. Kopieren der originalen Microsoft efi-Datei nach /boot/efi/EFI/Microsoft/Boot/bootmgf2.efi
  2. Bearbeiten /boot/grub/grub.cfg, um die umbenannte Microsoft-EFI-Datei zu erkennen

Laptop bootet jetzt zu GRUB, Ubuntu und Windows 8 startet jetzt OK von GRUB.

Arjen de Bruine
quelle
5

Normalerweise sichert das Ausführen von Boot Repair die ursprüngliche Bootloader-Datei von Microsoft ( bootmgfw.efi) bootmgfw.efi.bkpund ersetzt die ursprüngliche bootmgfw.efiDatei durch eine Kopie von GRUB (oder shim). Die von Ihnen veröffentlichte Boot Repair-Ausgabe würde dies anzeigen. Eine solche Sicherungsdatei wird jedoch nicht angezeigt. Daher empfehle ich Ihnen eines von drei Dingen:

  • Führen Sie die Startreparatur erneut aus, suchen Sie jedoch nach Optionen zum Sichern und Ersetzen des Microsoft-Bootloaders. Aktivieren Sie diese Optionen, um den Vorgang fortzusetzen. GRUB ist möglicherweise nicht in der Lage, Windows zu starten. Das scheint ein Hit oder Miss zu sein - und ein weiterer Miss, wenn Sie Secure Boot aktiviert lassen.
  • Machen Sie den Job manuell: Sichern Sie von Linux aus /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi(ich empfehle, es eine Ebene nach unten zu verschieben /boot/efi/EFI/Microsoft/bootmgfw.efi, anstatt es umzubenennen bootmgfw.efi.bkp, da letzteres nicht zum Standard gehört und andere Tools als Boot Repair und Ubuntus GRUB es nicht finden können). Kopieren Sie /boot/efi/EFI/ubuntu/grubx64.efian seiner Stelle; oder wenn Sie vorhaben, Secure Boot am Laufen zu halten, kopieren Sie /boot/efi/EFI/ubuntu/shimx64.efian seine Stelle und kopieren Sie grubx64.efinach/boot/efi/EFI/Microsoft/Bootmit seinem ursprünglichen Namen. Anschließend müssen Sie Ihre GRUB-Konfiguration ändern, damit der Windows-Bootloader an seinem neuen Speicherort oder unter seinem neuen Namen gestartet werden kann. (Ich habe gehört, dass GRUB den Windows-Bootloader noch nicht im Secure Boot-Modus starten kann. Wenn Sie Windows über GRUB starten möchten, müssen Sie Secure Boot möglicherweise deaktivieren. OTOH, ich habe es selbst noch nie versucht Daher könnte ich mich in dieser Hinsicht über die Fähigkeiten von GRUB irren.)
  • Deaktivieren Sie Secure Boot, booten Sie dann unter Linux und installieren Sie meinen rEFInd-Boot-Manager mithilfe des Debian-Pakets. Sobald das erledigt ist, tippe sudo mvrefind.sh /boot/efi/EFI/refind /boot/efi/EFI/Microsoft/Boot. Der letztere Befehl verschiebt und benennt Dateien auf eine Weise um, die der eben beschriebenen manuellen Prozedur oder der Durchführung der Boot-Reparatur entspricht, aber rEFInd als Standard-Bootloader anstelle von GRUB konfiguriert. Wenn Sie Secure Boot verwenden möchten, können Sie dies tun, indem Sie Dateien jonglieren und eine neue Version von shim installieren (Ubuntus shim ist früh genug, damit es mit rEFInd nicht richtig funktioniert). Wenn Sie rEFInd auf diese Weise installieren, können Sie starten, ohne GRUB zu verwenden, und die Kombination aus dem Installationsskript (das vom Paketsystem ausgeführt wird, wenn Sie das Debian-Paket installieren) und dem mvrefind.shSkript kann die Probleme umgehen, die Sie haben.

Die Probleme, die Sie haben, hängen bekanntermaßen mit Fehlern in der EFI-Implementierung von HP zusammen. Grundsätzlich ist die Firmware fest programmiert, um von Microsofts Bootloader zu booten und das Booten von irgendetwas anderem zu erschweren oder unmöglich zu machen. Ich empfehle Ihnen nachdrücklich, sich bei HP darüber zu beschweren. Sie werden solche Probleme nur beheben, wenn sich die Leute beschweren.

Von den drei Lösungen ist die Verwendung von Boot Repair wahrscheinlich die am einfachsten zu handhabende; Wie ich jedoch bemerkte, kann die nicht standardmäßige Benennung, die Boot Repair verwendet, in Zukunft zu Problemen für andere Dienstprogramme führen. Die manuellen Einstellungen erfordern mehr Aufwand, um arbeiten zu können, sind aber auf lange Sicht sauberer. Einige Leute haben Probleme damit gemeldet, dass GRUB den Windows-Bootloader kettenweise lädt. Daher können beide Optionen zu Kopfschmerzen führen. Es ist viel wahrscheinlicher, dass rEFInd entweder Linux oder Windows ohne Probleme bootet. Wie Sie jedoch anhand der Prozedur erkennen können, ist es wahrscheinlich, dass ein bisschen mehr Aufwand erforderlich ist, als Boot Repair erneut auszuführen, obwohl dies wahrscheinlich weniger ist als manuelles Datei-Jonglieren. Die Verwendung von rEFInd in Verbindung mit Secure Boot erfordert derzeit mehr Rüstungssprünge. (Einzelheiten finden Sie in der Dokumentation zu rEFInd.

Alle drei Lösungen bergen Risiken. EFI-Implementierungen unterscheiden sich viel zu stark voneinander, was bedeutet, dass entweder eine automatisierte oder eine manuelle Prozedur, die auf einem Computer gut funktioniert, auf einem anderen Computer kläglich fehlschlagen kann. Um sich zu schützen, empfehle ich, Ihr ESP zu sichern (normalerweise /boot/efiunter Linux). Packen Sie die Dateien einfach in einen Tarball oder kopieren Sie sie in ein Sicherungsverzeichnis. Wenn etwas schief geht, können Sie mit einer Notfall-CD booten und die Dateien wiederherstellen. Das wird wahrscheinlich den Computer wieder zum Booten bringen.

Rod Smith
quelle
Vielen Dank! Ich habe noch keine Ihrer Optionen ausprobiert, werde es aber an diesem Wochenende tun.
Maddentim
Ihr rEFInd-Bootmanager sieht interessant aus. Sie sagen also, ich kann Secure Boot deaktivieren und trotzdem Win8 verwenden? Eine Frage, die ich habe, ist, dass tar mir bei dem Versuch, tar / boot / efi auszuführen, Fehler bei einigen Dateien im Ubuntu-Ordner gemeldet hat. Sie haben seltsame Namen wie "ame =" App.lic ". Siehe Zeilen 809 bis 817 in paste.ubuntu.com/1418009 Diese letzte Installation war eigentlich mein dritter Versuch. Ich denke, sie sind Müll und können entfernt werden. Was machen Sie? Ich werde zurückschreiben, nachdem ich einen Ihrer Schritte ausgeführt habe.
maddentim
Ich habe mehrere Berichte von Leuten gesehen, die Secure Boot deaktiviert haben und keine Probleme beim Booten von Windows haben. Das ist also kein Problem. Wenn Sie es aus Sicherheitsgründen aktiviert lassen möchten, ist das verständlich, aber Sie sollten sich keine Sorgen darüber machen, dass Windows nicht mehr booten kann. Was Ihren tarFehler betrifft, klingt das so, als ob ein Skript einen Fehler hatte und Dateien mit seltsamen Namen erstellt hat. Ich hatte diese Dateien in Ihrer Ausgabe noch nicht bemerkt, aber es ist denkbar, dass der Fehler, der sie verursacht hat, auch für Ihre Startprobleme verantwortlich ist. In diesem Fall kann das Problem mit rEFInd möglicherweise umgangen werden, die anderen Lösungen schlagen jedoch möglicherweise fehl.
Rod Smith
rEFInd wurde nicht erfolgreich installiert. Ich denke, LovinBuntu hat das Problem identifiziert. / boot / EFI ist schreibgeschützt. Hier ist ein Teil der Ausgabe: mkdir: Verzeichnis kann nicht erstellt werden /boot/efi//EFI/refind': Read-only file system cp: cannot create regular file /boot/efi//EFI/refind/refind_x64.efi ': Keine solche Datei oder Verzeichnis Treiber für ext4 (ext4_x64.efi) installieren mkdir: Verzeichnis kann nicht erstellt werden `/ boot / efi // EFI / refind ': Schreibgeschütztes Dateisystem Kopierte RefInd-Binärdateien
am
3

Ich habe einen Tag für das gleiche Problem verbracht und es endlich gelöst. Das Folgende ist die genaue Lösung. Der vollständige Artikel zur Lösung des Problems ist hier, der von Rod Smith geschrieben wurde .

Nützliche Informationen

Zum Booten in die GPT-Partitionstabelle mit efi-Bootloadern. efiDateien werden von Betriebssystemen zum Zeitpunkt der Installation erstellt und müssen dem UEFI-BIOS des Computers zur Verfügung gestellt werden, damit die entsprechenden Betriebssysteme gestartet werden können.

Zum Speichern der EFI-Dateien benötigen wir eine EFI-Partition. Dies ist normalerweise eine Partition mit weniger als 200 MB und einem fat32Format mit der Bezeichnung EFI system. Es enthält .efiDateien und ihre Abhängigkeiten (in Form von .dlloder .efi), die zum Booten in eine der bootfähigen Partitionen (normalerweise Betriebssysteme) erforderlich sind. Auf meinem Computer hat diese Partition die folgende Struktur:

\EFI
   |_Boot
     |_fw
   |_Microsoft
     |_Boot
     |_Recovery
   |_Ubuntu
     |_fw

Normalerweise können .efiDateien einen beliebigen Namen haben, aber es scheint, dass einige Computer nach bestimmten Namen suchen. Deshalb erwähne ich auch die Standardnamen.

  1. BootOrdner: Ist wird als Standard-Startoption erkannt und wenn der NVRAM aus einem bestimmten Grund gelöscht wird. Dies wird standardmäßig verwendet. Der Name des efi-Bootloaders lautet "bootx64.efi". Wenn Sie einen Standard-efi-Bootloader auswählen möchten, kopieren Sie Ihre efi-Datei und alle umliegenden Dateien in den Bootordner und benennen Sie die efi-Datei Ihrer Quelle in "bootx64.efi" um.

  2. MicrosoftOrdner: Enthält die Windows-EFI-Startdateien. Es gibt mehrere efi-Dateien, die wichtigste ist jedoch "efibootmgfw.efi". Ich bin sicher, dass dies von Windows zum Booten verwendet wird.

  3. UbuntuOrdner: Enthält die efi-Datei von Ubuntu oder Mint. Es gibt mehrere .efiDateien, die wichtigste ist jedochgrubx64.efi

was ist zu tun?

Zum Zeitpunkt der Installation des Betriebssystems sind bereits einige Startoptionen installiert. Sie können jedoch aus verschiedenen Gründen aus den Startoptionen des BIOS entfernt werden, z. B. wenn Sie eine Festplatte entfernen und neu installieren oder ein neues Betriebssystem oder sogar eine neue Motherboard-Batterie installieren. Es gibt zwei Lösungen, um die Startoptionen wiederherzustellen.

  1. (Nicht empfohlen) Wie in einigen Antworten beschrieben, können wir eine funktionierende Boot-Option durch eine nicht funktionierende ersetzen. Das Problem bleibt jedoch in umgekehrter Richtung.

  2. Registrieren Sie die fehlende efi-Bootloader-Datei manuell.

Wie macht man?

  1. Booten Sie von einem bootfähigen Linux-Flash (ich verwende Linux Mint's bootfähigen Flash). Dies muss ein EFI-USB sein. (GPT USB, das von Programmen wie Rufus erstellt werden kann)

  2. Mounten Sie die EFI-Partition, Ihre Distribution erledigt dies möglicherweise automatisch. Überspringen Sie diesen Schritt, falls /bootverfügbar, und zeigen Sie eine ähnliche Struktur wie oben. Moderne Ubuntus sollten dies für Sie tun.

    1. Suchen Sie die Adresse Ihrer EFI-Partition. Dies kann mit einem partedBefehl oder einem DisksProgramm erfolgen. Dies ist normalerweise die erste oder zweite Partition auf der bootfähigen Festplatte. ( /dev/sda1Oder /dev/sda2) Diese Partition liegt normalerweise zwischen 100 MB und 200 MB mit FAT32 und dem Partitionstyp des EFI-Systems.

    2. Hängen Sie die EFI-Partition ein. Mit dem dfBefehl können Sie überprüfen, ob die Partition zuvor bereitgestellt wurde.

      df  /boot/efi
      

      Wenn die Partition zuvor nicht gemountet wurde (wird im vorherigen Befehl nicht angezeigt), mounten Sie die Partition mithilfe des mountBefehls:

      mount  /dev/sda1  /boot/efi
      
  3. Wenn Sie jetzt browsen /boot/efi, sehen Sie die Dateistruktur, die der oben erläuterten ähnelt. Kontrollieren Sie, ob Sie dort den Ordner Ihres verlorenen Betriebssystems finden können. In meinem Fall konnte das BIOS des Computers nur die Windows-Startoption sehen, aber ich hatte auch die Linux-Mint-Grub-Startoption.

    • (Nicht empfohlen) Meine Windows-Boot-Option hat so funktioniert. Als erstes habe ich zu Testzwecken eine Sicherungskopie des Microsoft-Ordners erstellt, der eine Reihe von Dateien zusammen mit der Windows-Boot-EFI-Datei enthält. ( bootmgfw.efi) Dann umbenannt ich die ubuntu - Ordner in Microsoft, das nächste ich die umbenannte grubx64.efizu bootmgfw.efi. Nach dem Neustart wird anstelle des Bootens in Windows das Grub-Menü geladen, diesmal war das Booten in Windows jedoch nur mit Grub möglich. Und direktes Booten von Windows war nicht möglich.

      sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
      
    • ( Empfohlener Weg ) Schreiben Sie einfach die Adresse der EFI-Datei, deren zugehöriges Betriebssystem in den Startoptionen des BIOS angezeigt werden soll. In meinem Fall fehlte Linux Mint in der Boot-Liste des Computer-BIOS. Die Adresse der /efi/ubuntu/grubx64.efiEFI- Datei war relativ zum Stammverzeichnis der EFI-Partition. Dann habe ich es mit dem Befehl efibootmgr im NVRAM registriert .

      efibootmgr -c -d /dev/sda -p 1 -l \\efi\\ubuntu\\grubx64.efi -L nameForBootOption
      

      In einem p 1Teil des Befehls definiert die 1 die Partitionsnummer der EFI-Partition auf der angegebenen Festplatte. nameForBootOptionist ein benutzerdefinierter Name für die Startoption

* Achten Sie darauf, die richtige Adresse zu schreiben. Wenn Sie die Partition in Linux mounten. Es hängt die Partition in einem Ordner unter dem Stammverzeichnis ein, der die reale Adresse so erweitert, dass /media/mint/CC1F-9708/EFI/ubuntunur ein /EFI/ubuntuTeil angegeben werden muss.

* Das DisksProgramm ist ein wunderbares grafisches Tool, das standardmäßig auf dem bootfähigen Flash von Linux Mint läuft. Es kann verwendet werden, um die EFI-Partition zu überprüfen und zu finden, und es kann auch zum Mounten der EFI-Partition verwendet werden, ohne einen Mount- oder Parted-Befehl zu verwenden. Sie müssen nur im Menü "Einstellungen" unter "Datenträger" danach suchen.

Tekin
quelle
Ging den nicht empfohlenen Weg. Hat perfekt funktioniert.
Evan Carroll
1

Sie sind von diesem Fehler betroffen: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1091477

Lösung:

  1. Erstellen Sie über Gparted eine weitere EFI-Partition (FAT32, 200 MB, innerhalb der ersten 100 GB der Festplatte).
  2. Bewegen Sie die "Boot" -Flag darauf
  3. Lasse Ubuntu dieses neue ESP verwenden (zB über Boot-Repair -> Recommended Repair).
LovinBuntu
quelle
Nun, ein weiteres ESP innerhalb der ersten 100 GB zu erstellen, bedeutet, die Win8-Partition über 200 MB zu verschieben ... Ich denke, da muss man vorsichtig sein. Könnte das Booten von Windows unterbrechen. Vielleicht sollte ich es einfach wegblasen. Ich mag es sowieso nicht einmal. Ich brauche es nur wirklich, um Netflix zu sehen!
maddentim
Aktualisieren Sie das Boot-Repair-Paket ('boot-sav' und 'boot-repair'), führen Sie dann die empfohlene Reparatur aus und geben Sie die neue URL an, die angezeigt wird.
LovinBuntu
getan. paste.ubuntu.com/1562554
maddentim
1

Nach der Installation von Cent-OS 7 über Windows 10 hatte ich ein ähnliches Problem. Hier ist der folgende Prozess, dem ich gefolgt bin.

  • Das ursprüngliche Betriebssystem war Windows 10
  • installierte cent-os 7 mit uefi usb erstellt von rufus

Problem: Windows 10 wurde geladen und das Startmenü des Cent-Betriebssystems wurde nicht einmal angezeigt.

  1. Wie ich es gelöst habe:
  2. ging zu Bios
  3. Aktivierter Legacy-Start (nur ein zusätzlicher Schritt für zukünftige Vorsichtsmaßnahmen)
  4. Gehen Sie zu Boot options
  5. Klicken Sie auf OS Boot Manager
  6. CentOS UEFI über Fenster bewegen: Zum Speichern F10 drücken
  7. Klicken Sie erneut auf OD Bootmanager und überprüfen Sie es.
  8. Drücken Sie F10, um zu speichern und zu beenden

Jetzt bootet Ihr System in Centos UEFI

seit wir legacy boot aktiviert haben, können wir esc key wählen, um zu BIOS oder anderen bootoptionen zu gelangen

abhirathore2006
quelle
1

Ich habe eine Möglichkeit gefunden, meinen HP Pavilion g7-2269wm (UEFI) dazu zu bringen, rEFInd zu booten (GRUB ist möglicherweise auch möglich), ohne ihn durch bootmgfw.efirEFInd oder GRUB zu ersetzen

Ich habe rEFInd installiert und mit rEFInd zur Liste der Bootmanager hinzugefügt sudo efibootmgr -c -d /dev/sda -p 2 -L "rEFInd" -l "\EFI\refind\shimx64.efi"

Mit F9 neu gestartet, um rEFInd und dann Ubuntu auszuwählen.

Dann umbenannt bootmgfw.efiin bootmgfwms.efiusing

sudo mv /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft/Boot/bootmgfwms.efi

Dann habe ich neu gestartet und es wurde in rEFInd neu gestartet, ohne dass F9 verwendet werden musste. Der Windows 10-Eintrag fehlte jetzt, also habe ich Ubuntu ausgewählt.

Dann lief ich, um den Windows 10-Eintrag zurückzuerhalten

sudo mv /boot/efi/EFI/Microsoft/Boot/bootmgfwms.efi /boot/EFI/EFI/Microsoft/Boot/bootmgfw.efi

Dann habe ich neu gestartet und rEFInd kommt ohne Drücken von F9 und Windows 10 erscheint als Eintrag.

Suici Doga
quelle
1

Es ist eine weitere Antwort für mairabc, für diejenigen, die wie Vince oder ich nicht in Windows booten können. Du brauchst die fs_uuid:

# grub-probe --target=fs_uuid /boot/efi/EFI/Microsoft/bootmgfw.efi

und der hints_string:

# grub-probe --target=hints_string /boot/efi/EFI/Microsoft/bootmgfw.efi

Dann müssen Sie die Datei /etc/grub.d/40_custom so bearbeiten:

menuentry "Microsoft Windows x86_64 UEFI-GPT" {
    insmod part_gpt
    insmod fat
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --no-floppy --set=root your_hints_string your_fs_uuid
    chainloader /EFI/Microsoft/bootmgfw.efi
}

Speichern Sie es und machen Sie a

# update-grub

Neustart in Windows ...

Pierre
quelle
1

Auf meinem HP-Laptop habe ich Schritt für Schritt Folgendes getan:

1 - Starten Sie Ubuntu mit F9

2 - Überprüfen Sie, wo sich der Windows-Bootloader befindet

sudo efibootmgr -v

In meinem Fall /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi

3 - Backup .efi Datei:

sudo cp /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft/bootmgfw.efi

4 - Ersetzen Sie die ursprüngliche .efi-Datei durch die Ubuntu-Datei ( der Trick ):

sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi

5 - Windows 10 Menüeintrag auf Grub hinzufügen. Öffne /etc/grub.d/40_customund füge diesen Menüeintrag am Ende der Datei hinzu:

menuentry "Windows 10 click here!" {
    search --set=root --file /EFI/Microsoft/bootmgfw.efi
    chainloader /EFI/Microsoft/bootmgfw.efi
}

6 - Speichern 40_customund:

sudo update-grub

7 - Auf BIOS Secure Boot deaktivieren (Ich bin nicht sicher, ob es benötigt wird)

8 - Wenn alles geklappt hat, bootet es standardmäßig auf Ubuntu und Windows 10 ist eine weitere Option auf Grub.

Es war einfacher als ich dachte.

Vitor Abella
quelle
sudo cp /boot/efi/EFI/ubuntu/grubx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efihat einwandfrei funktioniert.
Evan Carroll
@EvanCarroll, denkst du, ich sollte meine Antwort verbessern? Es sind wirklich die Schritte, die ich tue.
Vitor Abella
Ich bin mir nicht sicher, ob diese Antwort überhaupt benötigt wird, um ehrlich zu sein. Es sind viele Wörter, aber Ihre Methode dort ist die gleiche, die Tekin in dem nicht empfohlenen Abschnitt hat. Für Benutzer, die nur Linux verwenden, ist diese Methode aufgrund ihrer Einfachheit großartig.
Evan Carroll
1

Ich habe einen 2018 HP Laptop, 14 Zoll mit Windows 10 und Ubuntu Dual Boot. Früher habe ich F9 gedrückt, um das gewünschte Betriebssystem auszuwählen, und das schon seit ein paar Wochen.

Lösung:

  • Fahren Sie herunter und drücken Sie F10, um ins BIOS zu gelangen

  • Navigieren Sie zu dem Teil des BIOS, in dem die Startreihenfolge aufgeführt ist

  • Drücken Sie im OS Boot Manager die Eingabetaste.

  • Verwenden Sie F5 oder F6, um Ubuntu mit Windows zu wechseln.

  • Speichern und schließen.

Elliot Rushton
quelle
0

Dies ist KEIN Windows-Problem! Die HP-Firmware ist völlig fehlerhaft, da sie die UEFI-Firmare-Variable "BootOrder" nicht verwendet (oder gar nicht richtig unterstützt). Ich denke, die einzige Lösung dafür ist, die Windows-Bootloader-Datei (wie einige bereits erwähnt) durch Ihre grub.efi zu ersetzen.

Jörg
quelle
0

Mein Szenario ähnelt dem von Michal Žarnay am 19. August 15 um 15:20 Uhr: Ich habe einige HP Pavillion Slimline 400-314 Minitürme bekommen, hatte keine Notwendigkeit für das vorinstallierte Windows 8, partitionierte also sofort die Festplatte neu und installierte Ubuntu 14.04 und Grub2.

Leider ist das BIOS-Menü des Pavillion in der Boot-Konfiguration stark eingeschränkt. Es hat nicht die meisten der ausgefallenen Möglichkeiten, die die meisten anderen hier beschreiben. Selbst der Versuch, die Startreihenfolge zu ändern, schlägt fehl.

Die einzige Lösung, mit der ich arbeiten musste, ist die Verwendung der "Alternative Naming" -Umgehung, wie im Abschnitt "Alternative Naming Solutions" dieses Blogs beschrieben .

syzygy
quelle
1
Willkommen bei Ask Ubuntu! Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Mark Kirby
0

Ich bestätige, dass die Schritte von @Vitor Abella das Dual-Boot-Problem für mein HP 2000-Notebook gelöst haben, mit der Ausnahme, dass ich einen der folgenden Schritte ausführen muss (wie von @mairabc erwähnt):

  • Legacy-Boot aktivieren (standardmäßig ist der Sicherheits-Boot deaktiviert)

oder

  • Deaktivieren Sie den Legacy-Start und aktivieren Sie den Sicherheitsstart.
VictorL
quelle
0

Wenn Sie sich nicht in den Startdateien bewegen möchten , können Sie versuchen, die Startreihenfolge manuell zu ändern:

Rufen Sie Ubuntu manuell auf und überprüfen Sie die aktuelle Startsequenz und deren IDs mit:

sudo efibootmgr -v

Ändern Sie dann die Startsequenzen mit -o und den IDs (in der Startreihenfolge von links nach rechts):

sudo efibootmgr -o 0000,3000,0001,2001,2002,2003



Beispiel :
1. Aktuelle Starteinstellungen anzeigen

$ sudo efibootmgr -v
BootCurrent: 0001
Timeout: 2 seconds
BootOrder: 0001,3000,0000,2001,2002,2003
Boot0000* ubuntu    HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\ubuntu\shimx64.efi)
Boot0001* Windows Boot Manager  HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/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.}....................
Boot2001* USB Drive (UEFI)  RC
Boot2002* Internal CD/DVD ROM Drive (UEFI)  RC
Boot3000* Internal Hard Disk or Solid State Disk    RC
Boot3001* Internal Hard Disk or Solid State Disk    RC
Boot3002* Internal Hard Disk or Solid State Disk    RC
Boot3003* Internal Hard Disk or Solid State Disk    RC

2.Ändern Sie die Startreihenfolge (wir möchten ubuntu zuerst starten, damit das Startmenü beim Start angezeigt wird):
Beachten Sie, dass beim ersten Versuch ein Fehler aufgetreten ist, da Boot2003 (Diskettenlaufwerk?) Nicht gefunden wurde, wie Sie sehen können wurde jedoch nach dem Neustart neu erstellt.

$ sudo efibootmgr -o 0000,3000,0001,2001,2002,2003
Invalid boot order entry value: 0000,3000,0001,2001,2002,2003
                                                         ^
Boot entry 2003 does not exist

$ sudo efibootmgr -o 0000,3000,0001,2001,2002
BootCurrent: 0000
Timeout: 2 seconds
BootOrder: 0000,3000,0001,2001,2002
Boot0000* ubuntu
Boot0001* Windows Boot Manager
Boot2001* USB Drive (UEFI)
Boot2002* Internal CD/DVD ROM Drive (UEFI)
Boot3000* Internal Hard Disk or Solid State Disk
Boot3001* Internal Hard Disk or Solid State Disk
Boot3002* Internal Hard Disk or Solid State Disk
Boot3003* Internal Hard Disk or Solid State Disk

3.Starten Sie neu. Das Boot-Menü sollte jetzt erscheinen. (2003 wird automatisch neu hinzugefügt):

$ sudo efibootmgr -v
BootCurrent: 0000
Timeout: 2 seconds
BootOrder: 0000,3000,0001,2001,2002,2003
Boot0000* ubuntu    HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/File(\EFI\ubuntu\shimx64.efi)
Boot0001* Windows Boot Manager  HD(2,GPT,c451cb3c-a684-45ac-9925-4046e57c40cb,0x145800,0x82000)/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.}....................
Boot2001* USB Drive (UEFI)  RC
Boot2002* Internal CD/DVD ROM Drive (UEFI)  RC
Boot3000* Internal Hard Disk or Solid State Disk    RC
Boot3001* Internal Hard Disk or Solid State Disk    RC
Boot3002* Internal Hard Disk or Solid State Disk    RC
Boot3003* Internal Hard Disk or Solid State Disk    RC
Deruijter
quelle
0

Meine Lösung wurde realisiert, nachdem ich wusste, dass grub4dos geladen wurde

mach diesen Eintrag in men.lst

title Linux
find --set-root /-name.efi
boot /-name.efi
rustyg8z
quelle
0

Nach der Installation von Ubuntu 14.04 64 Bit auf einem Notebook HP-15-r248nf mit installiertem Windows 8-Upgrade auf 10, die reibungslos verlief, abgesehen von einem Problem mit einer unterbrochenen Wifi-Verbindung mit einem Realtek Wifi-Treiber (behoben mit echo "options rtl8723be fwlps=N ips=N" | sudo tee /etc/modprobe.d/rtl8723be.conf), bootete der PC immer noch unter Windows.

Ubuntu durch Grub wurde nur verfügbar, wenn die ESC-Taste während der Startphase verwendet wurde. boot-repair hat nicht geholfen, es hat tatsächlich eine ganze Reihe von Optionen in grub installiert, aber grub war immer noch nicht direkt erreichbar.

Tatsächlich war es lediglich erforderlich, die Startreihenfolge von der Standardeinstellung zu ändern.

  • Geben Sie beim Booten nach dem Einschalten des PCs Esc und anschließend F10 ein, um das BIOS-Setup aufzurufen.
  • Gehen Sie zur Registerkarte "Systemkonfiguration", bis zu "Startoptionen". Drücken Sie Enter. Deaktivieren Sie "Secure Boot"
  • Wechseln Sie zur UEFI-Startreihenfolge. Ich habe mit F5 / F6 den OS-Boot-Manager an die Spitze gestellt (wahrscheinlich nicht erforderlich).
  • Wählen Sie mit der Eingabetaste „OS Boot Manager“. Bewegen Sie Ubuntu mit F5 / F6 nach oben über den Windows-Start-Manager.
  • Verlassen Sie das BIOS-Setup mit F10 Save / exit und bestätigen Sie die vorgenommenen Änderungen.

Nun werden Sie zu grub weitergeleitet, wo Sie die Option Ubuntu ausgewählt haben, die mit einem Stern oben markiert ist und die nach einer kurzen Verzögerung automatisch startet.

wpb
quelle
2
Bitte formatieren Sie dies ein wenig. Ich kann nicht einmal sagen, ob es eine Antwort ist.
TheWanderer
0

Mein EFI-Bootproblem wurde folgendermaßen gelöst:

Die efibootmgr -oOption wird beim Neustart überschrieben, sodass sie nicht funktioniert.

Ich fand jedoch heraus, dass die -nOption tut. Also im Live-USB-Ubuntu laufen efibootmgrund herausfinden, die vierstellige Nummer für Ubuntu und laden Sie diese Nummer mit der -nOption. Um einen Neustart von Ihrem System aus zu ermöglichen, erstellen Sie ein Skript wie das folgende:

#!/bin/sh
/usr/bin/efibootmgr -n 0000

Ersetzen 0000mit dem Ubuntu-Eintrag. Mit Running crontab -ekönnen Sie Ihren Cron bearbeiten. Fügen Sie eine Zeile wie diese hinzu:

@reboot /home/"user"/"path"/efibootsj

Dadurch wird das Skript efibootsj(oder wie auch immer der Name lautet) ausgeführt, sobald der Computer gestartet wird.

Sven
quelle