Wie erstelle ich eine EFI-Systempartition?

31

TL; DR Wie erstelle ich eine EFI-Systempartition von Grund auf neu? Wie kann ich die EFI-Firmware darauf platzieren, sobald sie erstellt wurde?

Lange Version

Ich habe Toshiba T430 Laptop. Ich habe es mit installiertem Windows 7 erhalten (aber ich denke, es wurde ursprünglich mit Windows 8 ausgeliefert). Ich habe Ubuntu darauf installiert, aber einige Partitionen auf der Festplatte gelöscht, so dass ich das Windows ausgelöscht habe und nur Ubuntu habe. Unter den gelöschten Partitionen befand sich auch die EFI-Systempartition. Ich entdeckte, dass Ubuntu jetzt im Legacy-Modus (und nicht UEFI) startet. Ich versuche, diese Anleitung zur Konvertierung meiner Ubuntu-Installation von Legacy zu UEFI zu befolgen. Das Problem - da es keine EFI-Partition gibt, wenn ich mich aus dem BIOS zum Booten mit UEFI entscheide, kann ich nicht booten. Das gilt nicht nur für die Festplatte, sondern auch für USB und DVD. Ich halte das für logisch - es erwartet eine EFI-Partition und da sie nicht gefunden werden kann, kann das Booten nicht fortgesetzt werden, sei es von Festplatte oder DVD. Wie erstelle ich die EFI-Partition neu?

In der obigen Anleitung heißt es:

Erstellen einer EFI-Partition

Wenn Sie Ihre Festplatte im Ubuntu-Installationsprogramm manuell partitionieren, müssen Sie sicherstellen, dass eine EFI-Partition eingerichtet ist.

  1. Wenn Ihre Festplatte bereits eine EFI-Partition enthält (z. B. wenn auf Ihrem Computer Windows8 vorinstalliert war), kann sie auch für Ubuntu verwendet werden. Formatieren Sie es nicht. Es wird dringend empfohlen, nur eine EFI-Partition pro Platte zu haben.

  2. Eine EFI-Partition kann über eine aktuelle Version von GParted erstellt werden (die auf dem 12.04-Datenträger enthaltene Gparted-Version ist in Ordnung) und muss die folgenden Attribute aufweisen:

    1. Einhängepunkt: / boot / efi (Anmerkung: Dieser Einhängepunkt muss nicht festgelegt werden, wenn die manuelle Partitionierung verwendet wird. Das Installationsprogramm von Ubuntu erkennt ihn automatisch.)

    2. Größe: mindestens 100Mib. 200 MB empfohlen.

    3. Typ: FAT32

    4. Sonstiges: Benötigt ein "Boot" -Flag.

Ich hatte einige Probleme beim Erstellen dieser Partition:

  • Ich boote von einer Live-Ubuntu-DVD, öffne GParted, erstelle eine 200-MB-Partition und formatiere sie in FAT32.
  • In GParted kann ich den Einhängepunkt und damit die Bootflag nicht setzen.
  • Ich habe den Einhängepunkt nicht gesetzt, /etc/fstabda es sich um eine Live-CD handelt und fstab ganz anders aussah, als ich es von einem normalen Boot erwartet hatte. Wie auch immer, ich wusste einfach nicht, welche Werte ich einstellen sollte.

Ich bootete erneut über die Live-DVD und entschied mich dann, Ubuntu zu installieren. Ich habe dann eine Partition mit den genannten Kriterien erstellt - Mount Point, 200MB, FAT32, Boot Flag.

Dieses Problem tritt jedoch weiterhin auf, und es liegt vermutlich daran, dass auf dieser Partition keine EFI-Firmware vorhanden ist. Es handelt sich lediglich um eine leere Partition, die für EFI-Firmware geeignet ist.

Wie erstelle ich eine EFI-Partition, auf der die EFI-Software installiert ist, damit der Laptop wieder im UEFI-Modus gestartet werden kann?

LÖSUNG Vielen Dank für die Antworten. Was ich getan habe, war Windows 8.1 von Grund auf neu zu installieren, indem ich die gesamte Festplatte formatierte und dann (diesmal richtig) Ubuntu daneben installierte. Dies sind jetzt meine Partitionen:

Festplattenpartitionen

Sobald ich beim Setup von Win 8 alle vorhandenen Partitionen gelöscht und Windows die Festplatte neu formatieren ließ, wurden neben der Hauptinstallationspartition automatisch drei weitere Partitionen erstellt, nämlich 1, 2, 3. Nachdem ich nun ein ordnungsgemäßes ESP hatte Ich könnte beide von Festplatte oder DVD im UEFI-Modus booten.

Sie sagen, dass der ESP standardmäßig keine Informationen speichert, aber ich vermute, dass bei der Installation eines Betriebssystems einige Informationen dort abgelegt werden. Ich schätze, mein Fall war der folgende: Ich hatte ihn gelöscht und obwohl ich ihn neu erstellt habe, war er nicht mit Informationen gefüllt, da die Erstellung des ESP nach der Installation eines Betriebssystems erfolgte. Ich habe die Ubuntu-Installation verloren (keine große Sache, es war sowieso eine Neuinstallation), aber ich denke, um sie zu speichern, hätte ich den Ratschlägen von grawity folgen müssen . Hatte zwar keine Zeit, aber zum Glück ist jetzt alles in Ordnung.

Alex Popov
quelle
1
Der ESP speichert Bootloader. Wenn Sie also eine vorhandene Installation haben und den ESP löschen, können Sie den Computer nicht mehr starten. Diese Art von Problem ist eigentlich ziemlich einfach zu beheben - WENN Sie wissen, wie!
Rod Smith
Gut war alles, worum meine Frage ging :)
Alex Popov

Antworten:

37

Zunächst legen Sie den Einhängepunkt nicht in GParted fest. Dies geschieht manuell (und vorübergehend) über den mountBefehl oder permanent durch Bearbeiten /etc/fstab. Ihre Besorgnis über dieses Problem ist daher falsch.

Zweitens ist eine EFI-Systempartition (ESP) einfach eine FAT-Partition mit einem bestimmten Typcode (nämlich C12A7328-F81F-11D2-BA4B-00A0C93EC93B auf GPT-Datenträgern). Beachten Sie, dass der Einhängepunkt in /etc/fstabnicht Teil der ESP-Definition ist. Unter Linux ist es nur üblich (aber nicht erforderlich), auf den ESP zuzugreifen, indem Sie ihn unter einbinden /boot/efi, normalerweise über einen /etc/fstabEintrag. Wie Sie den Typcode einstellen, ist von Programm zu Programm unterschiedlich:

  • In setzen gdiskSie den Typencode auf EF00. ( gdiskVerwendet Zwei-Byte-Typcodes, die zu den reellen Typcodes auf der Festplatte erweitert werden. "EF00" ist nur eine Kurzbezeichnung für "C12A7328-F81F-11D2-BA4B-00A0C93EC93B".)
  • In GParted oder setzen partedSie das "Boot-Flag". Beachten Sie jedoch, dass dies nur auf GPT-Datenträgern funktioniert . Mit diesen Programmen können Sie den ESP-Typcode nicht auf MBR-Datenträgern festlegen. (Dies ist normalerweise keine große Sache, da EFI-basierte Computer normalerweise von GPT-Datenträgern booten.)
  • Im Ubuntu-Installationsprogramm identifizieren Sie die Partition als "EFI-Boot-Partition". Er legt dann den Typencode und eingerichtet wird , /etc/fstabangemessen.
  • In neueren Linux-Versionen fdisklegen Sie den Partitionstyp anhand seiner Nummer (1 für "EFI-System" auf GPT-Datenträgern oder 0xEF auf MBR-Datenträgern) oder durch Eingabe des vollständigen Typcodes auf GPT-Datenträgern fest.

Drittens enthält der ESP keine Firmware - Firmware wird per Definition in Chips auf dem Motherboard gespeichert. Daher ist Ihre Anstrengung, die EFI-Firmware auf dem ESP zu installieren, eine wilde Verfolgungsjagd. (Es gibt zwei Ausnahmen von dieser Regel. Erstens können Sie eine Firmware-Datei auf dem ESP speichern, um die Firmware auf Ihrem Computer zu aktualisieren. Dies ist jedoch nur ein temporärer Haltebereich . Zweitens der DUET- oder Clover -Bootloader, der EFI wird in der Regel als reguläres Programm vom ESP geladen. Diese Tools sind jedoch BIOS-Bootloader, mit denen BIOS-reine Computer so gestartet werden können, als wären sie EFI-Computer, dies ist jedoch nicht der FallWird normalerweise auf Computern mit EFI-Firmware verwendet, von denen Sie behaupten, dass sie auf Ihrem Computer installiert sind. Technisch sind weder DUET noch Clover Firmware; Sie sind BIOS-Bootloader, die den gleichen Job wie EFI machen.)

Schließlich kann ich mir eine Reihe möglicher Ursachen für Ihr Problem vorstellen, aber ohne weitere Informationen müsste ich ein halbes Buch schreiben, um sie alle zu behandeln. Ich empfehle Ihnen, das Boot-Info-Skript auf dem Computer auszuführen . Dadurch wird eine Datei mit dem Namen erstellt RESULTS.txt. Veröffentlichen Sie es auf einer Pastebin-Site und senden Sie es mit der URL zu Ihrem Dokument zurück. Dadurch erhalten Sie genaue Angaben zu Ihrer Konfiguration, wodurch sich die Anzahl der möglichen Ursachen für Ihr Problem erheblich verringert.

Rod Smith
quelle
Wie verwende gdiskich, um "den Typcode auf EF00 zu setzen"?
B Seven
@BSeven t, 1, ef00.
Hobbs
11

Die EFI-Partition enthält keine Firmware (die auf einem Chip auf der Hauptplatine gespeichert ist). Es speichert die Bootloader für installierte Betriebssysteme. Es ist im Grunde die EFI-Alternative, den Bootloader in den 0. Sektor Ihrer Festplatte zu stellen, wie dies bei BIOS-PCs der Fall war.

Dies bedeutet, dass sobald Sie eine solche Partition haben, diese automatisch gefüllt wird, wenn Sie das Betriebssystem installieren. (Wahrscheinlich muss die Installations-CD selbst auch im EFI-Modus gebootet werden, da sie sich sonst nicht um die Einrichtung des UEFI-Starts kümmert. In der Tat können bestimmte Teile des Setups nicht einmal im BIOS-Modus ausgeführt werden.)

Wenn Sie Ubuntu bereits installiert haben, müssen Sie:

  1. Installieren Sie die UEFI-Version von GRUB. Ich denke, es ist in der grub-efi-amd64-signedPackung.

    grub-install --target=x86_64-efi-signed
    

    (Für die nicht signierte grub-efi-amd64Version ist es x86_64-efi.)

  2. Stellen Sie sicher, dass sich GRUB wie \EFI\Boot\bootx64.efiin der EFI-Systempartition installiert hat . (Ich verwende hier die EFI-Pfadsyntax. Wenn Sie die Partition unter /bootLinux mounten , ist dies der Fall /boot/EFI/Boot/bootx64.efi.)

    Ist dies nicht der grubx64.efiFall , kopieren Sie manuell an diesen Speicherort.

    Dies ist erforderlich, da grub-installsich das System erst dann zum EFI-Startmenü hinzufügen kann, wenn es bereits im EFI-Modus gestartet wurde. (Auf die "EFI-Variablen" kann in BIOS Moed nicht zugegriffen werden.) Daher besteht die einzige Möglichkeit, GRUB zu booten, darin, sie an der Position "Fallback-Bootloader" abzulegen.

  3. Starten Sie neu. Versuchen Sie, eine Art EFI-Modus im Boot-Menü Ihrer Firmware auszuwählen (EFI-Firmwares haben sogar vor GRUB ein eigenes Boot-Menü).

  4. Überprüfen Sie, ob dmesg | grep "efi:"etwas angezeigt wird, um zu bestätigen, dass Sie sich im EFI-Modus befinden.

Grawity
quelle
1
Ich habe nicht vor, einen alten Thread aufzurufen, aber ich versuche, eine Lösung für mein Problem zu finden, und bin auf diesen Thread gestoßen. Ich versuche, die BIOS-Firmware auf meinem Dell-Computer zu aktualisieren, und Dell stellt sie als EXE-Datei im Windows-Format oder als Datei zur Verfügung, die auf einer EFI-formatierten Partition gespeichert werden sollte. Ich werde also aufgefordert, die Datei auf die EFI-Partition auf einem Wechseldatenträger herunterzuladen. Ich weiß nicht, ob das OP dies meinte, wollte aber nur darauf hinweisen, was Sie in Ihrem ersten Absatz gesagt haben.
Ray
@ Ray: Sie laden die zukünftige Firmware in diese Partition herunter . Es wird beim Einschalten des Computers immer noch nicht als eigentliche Firmware verwendet. Es wird lediglich als Datendatei für das Programm "Firmware Updater" verwendet, das es auf das Motherboard schreibt / flasht. (Erinnern Sie sich daran, dass in diesen Anweisungen stand: "Laden Sie die Datei auf eine bootfähige MS-DOS-Diskette herunter" oder so? Nun, diese Diskette enthielt auch nicht Ihr Haupt-BIOS. Sie enthielt nur das Flashen-Programm und die Daten, die es flashen sollte Gleiche hier.)
Grawity
1
Ja, ich weiß. Ich denke, ich sage nur, dass das OP nicht unbedingt falsch war, sondern nur ungenau. Ebenso haben Sie Recht, dass Firmware auf dem Chip gespeichert ist, und jetzt werde ich aufgefordert, eine zukünftige Firmware auf der EFI-Partition zu speichern. Aber jemand könnte sagen, dass Firmware im EFI gespeichert ist, wenn er seine Beschreibung nicht kennt. (dh nicht ganz falsch, aber halb falsch)
Ray
2

Erstellen Sie zwei Dateien mit dem Editor und speichern Sie sie auf Ihrem USB-Windows-Installationslaufwerk.
Speichern unter: CreatePartitions-UEFI.txt

select disk 0  
clean  
convert gpt  
rem == 1. System Partition  =====================  
create partition efi size=210  
format fs=fat32 quick label=”SYSTEM”  
active  
rem == 2. Microsoft Reserved (MSR) partition  ======  
create partition msr size=16  
rem == 3.  Windows partition  ===================  
create partition primary size=xxxxxx   
format fs=ntfs quick label=”Windows”   
assign letter=”W”  
rem == 4. Recovery tools partition  ================  
create partition primary size=460  
format fs=ntfs quick label=”Recovery”  
assign letter=:R”  
list volume

Erstellen Sie eine weitere Textdatei mit Notepad:
SaveAs: diskpart-UEFI.txt

diskpart /s D:\CreatePartitions-UEFI.txt   

REM where D:/ is the usb drive. This command runs the text file to install the partitions.

Wenn Sie MBR verwenden, lautet der Befehl: convert mbr.

Um die Größe der Windows-Partition zu erhalten, multiplizieren Sie Ihre HD-Größe mit 1024, eine Festplatte mit 100 Gigabyte mit 1024 entspricht 102400 minus 210 (EFI-Größe) minus 16 (MSR-Größe) minus 460 (reservierte Größe) der Größe, die Sie eingeben die Windows-Partitionsgröße. (xxxxxx)

Sie können die Partitionsgröße über das Terminal (Eingabeaufforderung) ändern. Cd / d D:> notepad CreatePartitions-UEFI.txt

Öffnen Sie das USB-Laufwerk mit dem Editor diskpart-UEFI.txt und lassen Sie es geöffnet oder schreiben Sie den Befehl auf, damit Sie keinen Fehler machen. Wenn Sie die Größe der Partitionen nach Ihren Wünschen geändert haben, schließen Sie sie und führen Sie dann cd / dx: / Sources und anschließend diskpart / s D: \ CreatePartitions-URFI.txt aus.
Liste Volume als letzten Befehl zeigt Ihnen die Partitionen, wenn Sie zufrieden sind, beenden Sie> Computer ausschalten> neu starten> installieren

Dave Vian
quelle
-2

benutze gnome-disks, paket "gnome-disk-utility", es ist super praktisch.

dotbit
quelle
2
Willkommen bei Super User! Ich bin nicht der DV-er, aber einzeilige Antworten können manchmal funktionieren, aber wenn Sie Ihre Antwort so bearbeiten , dass sie eine Erklärung enthält, funktioniert das besser :) Wie würden sie eine EFI-Systempartition in gnome-disk-utility erstellen?
Bertieb