Wie installiere ich GRUB2 EFI neu?


56

Nach dem erfolgreichen mein BIOS - Update, ist etwas schief gelaufen , und ich endete mit einem blinkenden Cursor auf der linken oberen Ecke eines schwarzen Bildschirm. Keine Fehler, kein nichts. Das BIOS listete nur noch eine SATA: <disc name>Boot-Option anstelle der üblichen UEFI auf ubuntu. Ich verwende ein GPT-Partitionsschema.

Schließlich stellte ich fest, dass die funktionierende Lösung eine ordnungsgemäße Neuinstallation war grub-efi-amd64. Wie mache ich das?

PS: Eigentlich ist es mir gelungen, GRUB2 EFI selbst zu installieren und ich werde meine Antwort hier posten, da ich keine vollständige Anleitung dazu finden konnte.


Ich hatte Probleme mit meinem Dual-Boot: Windows 10 / PCLinuxOS-Laptop. Ich habe irgendwie den grub2-Loader oder die Funktionalität verloren. Nachdem ich viele der oben genannten Probleme erfolglos ausprobiert hatte, bin ich auf die Grub2 Boot Rescue-ISO gestoßen, habe sie auf eine CD gebrannt und im Laufwerk belassen. Es war ein wenig mühsam, jedes Mal den Startvorgang durchzugehen, aber zumindest hat es funktioniert. Dann habe ich die Boot Repair Disk iso gefunden und auf eine DVD gebrannt. Zu diesem Zeitpunkt war mein Laufwerk von meinen Bemühungen wirklich verunsichert, so dass ich alles neu formatiert und neu installiert habe, diesmal Windows 10 und Mint Sonya. Dann bootete Boot Repair Disk und installierte Grub2 ov
Keith Krehbiel

Antworten:


87
  • Starten Sie Ihren Computer mit einer Live-USB / CD im UEFI-Modus . Ich hatte zwei Startoptionen <flash_drive>und UEFI: <flash_drive>die zweite wird benötigt, um die efi-Variablen verfügbar zu machen, /sys/firmware/efi/damit efibootmgrsie später nicht ausfallen. Beim Booten mit der ersten Option erhalte ich den folgenden Fehler:

    Fatal: Couldn't open either sysfs or procfs directories for accessing EFI variables.
    Try 'modprobe efivars' as root.
    

    modprobe efivars hat nicht für mich gearbeitet.

  • chroot in das kaputte System (ähnlich wie ubuntu grub2 help, jedoch mit efi-Spezifitäten):

    sudo mount /dev/sda2 /mnt #sda2 is the root partition
    sudo mount /dev/sda1 /mnt/boot/efi #sda1 is the efi partition
    for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
    sudo cp /etc/resolv.conf /mnt/etc/ #makes the network available after chrooting
    modprobe efivars # make sure this is loaded
    sudo chroot /mnt
    
  • Abhängig von Ihrer Linux-Distribution machen Sie jetzt verschiedene Dinge.

    • Für Ubuntu / Debian :

      apt-get install --reinstall grub-efi-amd64
      

      oder alternativ:

      apt-get install --reinstall grub-efi
      update-grub
      

      sollte das obige Ihnen eine Made geben, aber keine bootfähige

    • Für Fedora (bis zu 16, kann für andere arbeiten):

      yum reinstall grub-efi
      

      Im folgenden Befehl müssen Sie sdX durch das Gerät mit der EFI-Partition ersetzen, von der Sie booten möchten. In müssen --part YSie die durch die Y Nummer der EFI-Partition ersetzen (wie in /dev/sdXY).

      efibootmgr -c --disk /dev/sdX --part Y
      efibootmgr -v # verify a new record called Linux is there
      
  • Geben Sie nun Strg + D ein , um chroot zu beenden, die Bereitstellung aufzuheben und den Computer neu zu starten:

    for i in /sys /proc /dev/pts /dev; do sudo umount /mnt$i; done
    sudo umount /mnt/boot/efi #please do this. Corrupted efi partitions are not nice
    sudo umount /mnt
    sudo reboot
    

Möglicherweise müssen Sie dies an Ihre Bedürfnisse anpassen (andere Partitionstabelle, separate / Boot-Partition usw.) und es ist möglicherweise nicht die einzige Option, aber dies hat für mich ganz gut funktioniert.

Ein geeignetes Live-System zum Reparieren von Dingen ist grml . Es gibt auch eine ausführliche Anleitung zum Einrichten eines bootfähigen USB-Geräts, von denen der Mac-Abschnitt am nützlichsten ist (einfach eine FAT32-Partition erstellen, die Dateien kopieren, neu starten, fertig).


4
Kumpel! Vielen Dank! Dies hat mich gerettet, nachdem mein Lenovo X220 nach einem Reset, der die neuesten Paketaktualisierungen aktivierte und gleichzeitig einen BIOS-Reset durchführte, nicht mehr booten wollte, da dies angeblich Verbindungsprobleme mit der 3G-Karte behebt. Danach wurde das Booten aus irgendeinem Grund unmöglich. Bis ich deinen Führer benutzt habe. Übrigens, der Teil, in den Sie die Datei resolv.conf kopiert haben, hat bei mir nicht funktioniert, da es sich um einen Symlink in /run/resolvconf...(in Ubuntu 12.04) handelt. Stattdessen habe ich nur mount --bind /run /mnt/rundas gesamte /runVerzeichnis in der Chroot-Umgebung gemountet .
nem75

Ich habe die Antwort mit meinen Erfahrungen mit Fedora 16 und einem Verweis auf grml erweitert. Wenn Sie die Bearbeitung überprüfen und akzeptieren könnten, würde ich mich freuen.
Jonas Schäfer

1
Unter Ubuntu (mindestens für 12.04) update-grubwird das neueste grub2-Image nicht auf Ihre EFI-Partition kopiert, sondern nur die Datei grub.cfg aktualisiert. Die bessere Möglichkeit ist apt-get install --reinstall grub-efi(oder grub-efi-amd64), dass am Ende auch update-grub aufgerufen wird.
Nummer 5

3
Habe gestern meinen Media Player gespeichert. 300 Internetpunkte für Sie.
Stefano Borini

2
Nach dem Ausführen war update-grubmein /boot/efiOrdner noch leer (ich hatte diese neue Partition erstellt). Erst nach dem Ausführen wurden grub-installdie eigentlichen Dateien dort geschrieben. Diese Anleitung hat mir geholfen: wiki.ubuntuusers.de/EFI_Problembehebung
Philippe Gerber

8

Als mögliche Vereinfachung der ersten Methode ist es möglich, das System direkt von der Festplatte aus zu booten, indem nur der Grub der Live-CD verwendet wird. Getestet auf xubuntu 13.10 mit der Live-CD xubuntu 13.10.

Stellen Sie sicher, dass Secure Boot in Ihrem BIOS deaktiviert ist. Legen Sie die Live-CD ein und booten Sie sie über UEFI. Das GRUB-Menü der CD wird angezeigt. Drücken Sie "c", um zur Befehlszeile zu gelangen.

configfile (hd0,gpt1)/EFI/ubuntu/grub.cfg

Passen Sie den obigen Befehl grub an, wenn Sie eine andere EFI-Systempartition haben.

Nachdem Ihr System von der Festplatte gebootet wurde, sollte es ausreichen, grub auf der EFI-Systempartition erneut zu installieren und über grub-install bei der Firmware zu registrieren.

sudo grub-install

Funktioniert nicht configfile (hd0,gpt1)/EFI/ubuntu/grub.cfgtut nichts. Wie boote ich nach der Ausgabe dieses Befehls?
Autodidakt

3
Beeindruckend. Ich hätte nicht gedacht, dass es so einfach wird! Das ist eine verdammt gute Antwort! Ich habe sudo grub-install --target=x86_64-efi --efi-directory=/boot/efiden oben vorgeschlagenen Befehl nicht ausgeführt (aber der oben genannte funktioniert möglicherweise auch - ich weiß es nicht). Danach können Sie wieder auf Ihr Linux-Betriebssystem zugreifen. Dann einfach ausführen sudo update-grubund alles sollte bootfähig sein.
Zorawar

@ SandeepDatta: Ihr EFI-Verzeichnis befindet sich wahrscheinlich auf einer anderen Festplatte / Partition. Meins war auf / dev / sdb1, so lief ich: configfile (hd1,gpt1)/EFI/ubuntu/grub.cfg. Booten Sie eine Live-CD und führen Sie sie aus sudo gparted, um Ihre efi-Partition zu finden.
Zorawar

5

Wie bei Maxine habe ich festgestellt, dass meine UEFI-Einstellungen im BIOS beschädigt wurden und mein Computer nicht mehr bootet.

In meinem Fall handelt es sich um einen Lenovo ThinkServer RD430 mit Linux Mint Debian, und es schien , als würde alles, was ich gegen Update-Grub oder das Ändern von Festplatten im Server unternehmen würde, dazu führen, dass er nicht mehr startet. In meinem Fall ist das Betriebssystem linuxmint-201403-mate-dvd-64bit über USB installiert. (Im Folgenden finden Sie eine vollständige Beschreibung der Ereignisse, die dazu führen würden, dass UEFI nicht funktioniert.)

Wenn Sie auf einem ThinkServer TS140 genau dieselben Schritte ausführen, hat UEFI nicht einmal den Verstand verloren. Schaute auf die RD430-Treiberseite und mein BIOS ist zwei Versionen alt. Ich musste bisher noch nie ein BIOS-Update für ein Motherboard durchführen, daher bin ich nicht einer, der automatisch ein Update durchführt, wenn neue Versionen verfügbar sind. Nach der Aktualisierung des BIOS funktionierte Maxines Antwort oben nur mit einem Dreh ...

# efibootmgr -c --disk /dev/sdX --part Y
# efibootmgr -v
BootCurrent: 0004
Timeout: 1 seconds
BootOrder: 0002,0000,0003,0001,0004
Boot0000* linuxmint HD(1,800,1f4000,829f6cc9-5b17-479c-b3ea-61e43faecbf7)File(\EFI\linuxmint\grubx64.efi)
Boot0001* LMDE Linux Mint Debian    HD(1,800,15d505800,934c598c-fe3c-fd43-84a1-fa38e4f72552)File(\EFI\linuxmint\grubx64.efi)
Boot0002* Linux HD(1,800,1f4000,829f6cc9-5b17-479c-b3ea-61e43faecbf7)File(\elilo.efi)
Boot0003* UEFI: Built-in EFI Shell  Vendor(5023b95c-db26-429b-a648-bd47664c8012,)AMBO
Boot0004* UEFI: VerbatimSTORE N GO 1.00 ACPI(a0341d0,0)PCI(1a,0)USB(1,0)USB(4,0)HD(1,80,1d70780,00000000)AMBO
mint / # 

Der efibootmgr -cBefehl fügte zwei Einträge hinzu 0000und 0002!
Der Boot0002* Linux HDEintrag zuerst in der Startreihenfolge ist nicht korrekt .
Die 0000Eingabe ist korrekt.

Um dies zu testen, habe ich versucht, ohne Unterbrechung zu booten, was der 0002Eintrag ist. Wie erwartet hat es nicht funktioniert. Also habe ich den Server neu gestartet, F12 gedrückt und gewählt linuxmint. Wie erhofft, wurde meine LMDE-Installation gebootet.

So entfernen Sie unerwünschte Einträge über efibootmgr:

# efibootmgr -b 2 -B

Ich habe diesen Befehl verwendet, um Einträge 0001und zu entfernen 0002. Option 0001war aus dem letzten meiner vielen Versuche, das Betriebssystem wiederherzustellen.


UEFI-Notizen

Wenn Sie dies lesen und mit UEFI genauso frustriert sind wie ich / war, finden Sie hier einige Hinweise und Ressourcen:
»Das Booten mit UEFI-Shell ähnelt der Verwendung einer DOS-Shell.
»Intel hat ein PDF-Referenzhandbuch für efi- Shell-Befehle erstellt.
»Das Dokument UEFI_on_TS430 von Lenovo ist die einzige Ressource, die mir die Verwendung der efi-Shell erklärt.
» Eine weitere Referenz zur uefi-Shell aus dem nPartition Administrator's Guide .
»Sie können versuchen, von der efi-Shell aus zu einer Partition zu booten, indem Sie zum Loader navigieren und ihn ausführen.
»UEFI möchte, dass die Festplatte über eine GPT-Partitionstabelle und nicht über eine MSDOS-Partitionstabelle verfügt.
»UEFI möchte, dass die erste Partition auf Ihrer Festplatte mit fat32 oder vfat formatiert wird.
»Für einen" generischen "Start muss sich /EFI/bootim Stammverzeichnis ein Verzeichnis mit bootx64.efidarin befinden.
»Einige Leute kopieren ihre Dateien grubx64.efivon dem Ort, an dem sie installiert wurden, /EFI/boot/bootx64.efiund dieser Cheat hat für sie funktioniert.
»Wenn Sie Änderungen am Grub vornehmen, verwenden Sie efibootmgr -vVorher und Nachher, um sicherzustellen, dass Ihr Neustart in Ordnung ist.


Meine RD430 Erfahrung

Ich habe das OS 10+ Mal in der letzten Woche installiert und versucht, dies zu klären und den Server einzurichten. Meine Konfiguration ist eine SSD auf diesem RAID-Controller im PCIe 2.0-Steckplatz, auf dem LMDE installiert ist. AOC-S3008L-L8i RAID-Controller ( auf den IT-Modus zurückgesetzt ) im 2. PCIe 3.0-Steckplatz mit 6 x 3 TB-Laufwerken. RAM: 12 GB ECC (3 x 4 GB).

Die folgenden Änderungen führten dazu, dass mein System nicht
mehr bootete : »Ändern Sie die S3008L-L8i-PCI-Steckplätze (lassen Sie die SSD + -Karte in Ruhe).
» Deaktivieren Sie die LSi-Software-RAID-BIOS-Eingabeaufforderung für den Onboard-Controller.
»Fügen Sie meine alte HighPoint RocketRaid-Karte in einen offenen PCIe-Steckplatz ein.
»Nehmen Sie eine Änderung an vor /etc/default/grubund führen Sie dann aus update-grub.
( Muss vielleicht grub-installauch ausgeführt werden? )


Ich bin sehr frustriert über UEFi. Ich habe Linux mit BIOS installiert, aber es ist sehr schwierig, es mit UEFi und Refind zum Laufen zu bringen
Suici Doga

3

Ich würde das hochstimmen, aber anscheinend habe ich nicht genug Repräsentanten auf SuperUser. Ich bin froh, dass ich nach Tagen des Kampfes gegen Klone, die funktionierten, aber nicht hochfuhren, endlich eine Antwort darauf gefunden habe. Ich denke, es hängt alles mit UEFI und einer Art "sicherem Boot" -Mechanismus zusammen oder so.

Ich arbeite offline, daher kam ein passendes Angebot nicht in Frage. Was ich getan habe, war Ubuntu Desktop auf einen USB-Stick zu setzen, die grub-efiund grub-efi-amd64-Pakete zum Stammverzeichnis des USB-Sticks hinzuzufügen (grub-efi_1.99 ~ rc1-13ubuntu3_amd64.deb und grub-efi-amd64_1.99 ~ rc1-13ubuntu3_amd64.deb für Ubuntu 11.04 - entsprechend der Distribution und Architektur ändern) und Folgendes in ein Skript auf dem USB-Stick einfügen:

#! /bin/bash
sudo mount /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
dir=`dirname $0`
sudo cp $dir/grub-efi*.deb /mnt/tmp
for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt /bin/sh -c "dpkg -i /tmp/grub-efi*.deb"
sudo shutdown -r now

Starten Sie den Live-USB-Stick, öffnen Sie ein Terminal, führen Sie den Befehl aus, und der Job ist eine gute Sache! Das einzige gelegentliche Problem ist, dass UEFI manchmal in der Reihenfolge der Startprioritäten unterhalb der Festplatte verschoben wurde. Zu diesem Zeitpunkt müssen Sie das BIOS aufrufen und die Startreihenfolge ändern, um zu verhindern, dass das System gestartet wird (und ein Fehler auftritt) SATA: drive.

Sie können auch dpkg-reconfigurestatt verwenden dpkg -i, aber das stellt ein paar Bootloader-Fragen.

[edit] Ich habe auch nicht genug Repräsentanten, um zu kommentieren. Was ich als Kommentar zu einer Antwort angesehen habe, stellt sich als Antwort heraus.


Willkommen an Bord! Eigentlich brauchst du 15 Punkte, um abzustimmen, 50, um zu kommentieren (siehe superuser.com/privileges ), sieh dich nach einfachen Fragen um, die du beantworten kannst, und los geht's Vor dem Herunterfahren nichts aushängen. Ich bin froh, dass es geholfen hat.
Maxime R.

Verwirrung war mehr, weil ich Konten auf anderen verwandten Sites habe. Ich habe vergessen, dass ich neu auf dieser Seite war. Linux wird normalerweise beim Herunterfahren deaktiviert und chroot mit einem Befehl kehrt zurück, nachdem es beendet wurde. Ich denke also nicht, dass dies ein Problem verursachen sollte. Ich habe festgestellt, dass es nicht abbricht, wenn Sie die Live-Distribution nicht mit UEFI booten, aber es war keine Priorität zu testen, ob sudo chroot /mnt /bin/sh -c "dpkg -i /tmp/grub-efi*.deb" && sudo shutdown -r nowdas richtige Verhalten vorliegt.
IBBoard

1

Auf meinem 32-Bit-Ubuntu 14.10 unter Lenovo Yoga 2 Pro habe ich folgendermaßen auf UEFI-Boot umgestellt:

  • Ordner erstellen

    sudo su
    mkdir /boot/efi
    
  • Mounten Sie die "EFI System" -Partition in /etc/fstab

    fdisk -l|grep EFI
    

    dies zeigte: /dev/sda2 2050048 2582527 532480 260M EFI System

    echo "/dev/sda2 /boot/efi   vfat    defaults,sync   0   0">>/etc/fstab
    

    Mounten Sie diese Partition

    mount /boot/efi
    
  • installieren grub-efi-amd64-binund deinstallierengrub-efi-ia32-bin

    aptitude install grub-efi-amd64-bin grub-efi-ia32-bin_
    
    grub-install --target=x86_64-efi
    
  • starte Ubuntu im efi Modus neu

    update-grub
    
  • Test , wenn es feine bootet, dann habe ich installiert grub-efi-amd64und deinstalliert grub-pc grub-gfxpayload-listsmit

    aptitude install grub-efi-amd64 grub-pc_ grub-gfxpayload-lists_
    

Ich entscheide mich, nicht zu entfernen / zu booten, wenn ich gefragt werde.


Vielleicht habe ich es kompliziert gemacht und das hätte gut funktioniert:

apt-get install --reinstall grub-efi
update-grub

0

Dieser Eintrag entspricht eher der Vorbereitung Ihres Computers für die Neuinstallation der efi-Einträge. Dies ist möglicherweise auch eine effektive und einfache Möglichkeit, nach der Installation des Systems auf internen Medien (SSD, HDD) eine Rettungsdiskette zu erstellen.

Mit Linux Mint Tara (eine Linux-Variante, die eng mit Ubuntu Bionic Beaver verwandt ist) hat die Methode meine Installation blockiert und es später ermöglicht, sie zu speichern. Es entstand aus dem Wunsch nach einem dauerhaften USB-Laufwerk, und da die Zeit für die Installation eines Dienstprogramms wie Unetbootin für eine dauerhafte Installation in etwa mit einer Neuinstallation identisch ist, habe ich einfach dieselbe Live-Distribution verwendet, um eine Installation auf dem USB-Laufwerk durchzuführen wurde verwendet, um das Betriebssystem auf der internen SSD zu installieren.

Natürlich handelt es sich hierbei nicht um RAID oder ein anderes spezielles Setup, aber es war eine vorbereitete Volume-Partition auf dem USB-Laufwerk und eine Installation auf diesem USB-Laufwerk unter Verwendung der verfügbaren Methode der Distribution erforderlich, um das interne Laufwerk für eine Installation auf einem einzelnen Laufwerk zu umgehen Root-Mount (/) der Partition.

Hier verheddert sich die neue Madeninstallation mit dem internen Laufwerk. Beim Neustart auf dem USB-Stick schienen die internen UEFI-Grub-Einträge verschwunden zu sein. Beim Versuch, das Laufwerk mithilfe der Einträge im BIOS-Menü auszuwählen, blieb nur das Grub-Menü übrig.

Stattdessen zeigte das Booten von USB, dass die Methode der Distribution ein fertiges Grub-Menü mit einer Auflistung für die / dev / sda2-Partition erzeugt hatte, die die / boot / efi-Einbindung enthielt. In den meisten primären internen Laufwerksinstallationen lautet der Gruppenname der Partition hd0, gpt1.

Für den Einstieg in die fortgeschrittene Version war mehr als eine Kernel-Rettung verfügbar. Führen Sie von dort aus das Dienstprogramm grub aus und booten Sie dann normal.

Ab diesem Zeitpunkt können Sie das Betriebssystem auf dem internen Laufwerk ausführen, auf das zuvor nicht zugegriffen werden konnte. Ziehen Sie dann den USB-Stecker ab und führen Sie es aus sudo grub-install.

Wenn Sie ohne USB neu starten, sollten Sie wieder einsteigen können. Zu diesem Zeitpunkt ist der USB so konfiguriert, dass das interne Laufwerk in den Normal- oder Rettungsmodus versetzt wird, und das Laufwerk verfügt über ein eigenes Menü.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.