Nachdem ich mein BIOS erfolgreich aktualisiert hatte, ist ein Fehler aufgetreten und ich habe einen blinkenden Cursor in der oberen linken Ecke eines schwarzen Bildschirms gefunden. Keine Fehler, kein nichts. Das BIOS listet jetzt nur noch eine SATA: <disc name>
-Startoption anstelle der üblichen UEFI ubuntu
auf. Ich verwende ein GPT-Partitionsschema.
Schließlich stellte ich fest, dass die funktionierende Lösung darin bestand, grub-efi-AMD64
ordnungsgemäß neu zu installieren. Wie mache ich das?
PS: Eigentlich ist es mir gelungen, GRUB2 EFI selbst neu zu installieren und ich werde meine Antwort hier posten, da ich keine vollständige Anleitung dazu finden konnte.
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 in /sys/firmware/efi/
verfügbar zu machen, damit efibootmgr
später nicht ausfällt. 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 bei mir nicht funktioniert.
chroot in das kaputte System (ähnlich wie ubuntu grub2 help aber 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 oben genannte Ihnen eine Made geben, aber nicht eine bootfähige
Für Fedora (bis zu 16 können 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 --part Y
müssen Sie die Y
durch die 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 dem der Mac-Abschnitt am nützlichsten ist (erstellen Sie einfach eine FAT32-Partition, kopieren Sie die Dateien, starten Sie neu, fertig).
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 Menü GRUB 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
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 irgendetwas ich etwas gegen Update-Grub unternehmen, oder das Ändern von Festplatten im Server würde dazu führen, dass er nicht 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.)
Bei genau den gleichen Schritten auf einem ThinkServer TS140 verlor UEFI nicht einmal den Verstand. 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 hat Maxines Antwort oben funktioniert, 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 Befehl efibootmgr -c
fügte zwei Einträge hinzu: 0000
und 0002
!
Der Boot0002* Linux HD
-Eintrag zuerst in der Startreihenfolge ist nicht korrekt .
Der 0000
Eintrag ist korrekt.
Um dies zu testen, habe ich versucht, ohne Unterbrechung zu booten. Dies ist der Eintrag 0002
. Wie erwartet hat es nicht funktioniert. Also habe ich den Server neu gestartet, F12 gedrückt und linuxmint
gewählt. 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 die Einträge 0001
und 0002
zu entfernen. Option 0001
war der letzte meiner vielen Versuche, das Betriebssystem wiederherzustellen.
Wenn Sie dies lesen und mit UEFI genauso frustriert sind wie ich/war, finden Sie hier einige Hinweise und Ressourcen:
»Das Booten in die UEFI-Shell ähnelt der Verwendung einer DOS-Shell.
»Intel hat ein PDF Referenzhandbuch für efi Shell - Befehle erstellt.
»Lenovos UEFI_on_TS430-Dokument ist die einzige Ressource, die mir die Verwendung von efi Shell erklärt.
» Ein weiterer Verweis auf die uefi Shell aus 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 im Stammverzeichnis ein /EFI/boot
-Verzeichnis mit bootx64.efi
befinden.
»Einige Leute kopieren ihren grubx64.efi
von dem Ort, an dem er installiert wurde, nach /EFI/boot/bootx64.efi
und dieser Cheat funktionierte für sie.
»Verwenden Sie efibootmgr -v
immer, wenn Sie Änderungen am Grub vornehmen, davor und danach, um sicherzustellen, dass Ihr Neustart in Ordnung ist.
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 ( erneut in den IT-Modus versetzt ) im 2. PCIe 3.0-Steckplatz mit 6x 3-TB-Laufwerken. RAM: 12 GB ECC (3 x 4 GB).
Die folgenden Änderungen haben dazu geführt, dass mein System nicht mehr startet:
»Tauschen Sie die S3008L-L8i-PCI-Steckplätze aus (lassen Sie die SSD + -Karte allein).
»Deaktivieren Sie die LSi-Software-RAID-BIOS-Eingabeaufforderung für Onboard-Controller.
»Fügen Sie meine alte HighPoint RocketRaid-Karte in einen freien PCIe-Steckplatz ein.
»Nehmen Sie eine Änderung an /etc/default/grub
vor und führen Sie dann update-grub
aus.
(möglicherweise muss auch grub-install
ausgeführt werden?)
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, alles hängt mit UEFI und einer Art "sicherem Boot" -Mechanismus oder so zusammen.
Ich arbeite offline, daher kam ein passendes Angebot nicht in Frage. Was ich getan habe, war, Ubuntu Desktop auf einen USB-Stick zu packen, die Pakete grub-efi
und grub-efi-AMD64
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 schreiben:
#! /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 SATA: drive
versucht (und fehlschlägt).
Sie können auch dpkg-reconfigure
anstelle von dpkg -i
verwenden, dabei werden jedoch einige Fragen zum Bootloader gestellt.
[edit] Ich habe auch nicht genug Repräsentanten, um zu kommentieren. Was ich für einen Kommentar auf eine Antwort hielt, stellt sich als Antwort heraus.
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
"EFI System" -Partition in /etc/fstab
einhängen
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
grub-efi-AMD64-bin
installieren und grub-efi-ia32-bin
deinstallieren
aptitude install grub-efi-AMD64-bin grub-efi-ia32-bin_
grub-install --target=x86_64-efi
starte Ubuntu im efi Modus neu
update-grub
teste ob es gut bootet, dann habe ich grub-efi-AMD64
installiert und grub-pc grub-gfxpayload-lists
mit deinstalliert
aptitude install grub-efi-AMD64 grub-pc_ grub-gfxpayload-lists_
Ich entscheide mich nicht zu entfernen/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
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 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 über USB schienen die internen UEFI-Grub-Einträge verschwunden zu sein, und 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. Bei 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.
Wenn Sie das Betriebssystem auf dem internen Laufwerk ausführen, auf das zuvor nicht zugegriffen werden konnte, ziehen Sie den USB-Stecker ab und führen Sie Sudo grub-install
aus.
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 normalen Modus oder in den Rettungsmodus versetzt wird, und das Laufwerk verfügt über ein eigenes Menü.