TL; DR Wie erstelle ich eine EFI-Systempartition von Grund auf? Wie kann ich die EFI-Firmware darauf installieren, sobald sie erstellt ist?
Lange Version
Ich habe einen Toshiba T430 Laptop. Ich habe ihn mit installiertem Windows 7 erhalten (aber ich glaube, er wurde ursprünglich mit Windows 8 ausgeliefert). Ich habe Ubuntu darauf installiert, aber einige Partitionen auf der Festplatte gelöscht, so dass ich am Ende das Windows gelöscht habe und nur noch Ubuntu habe. Zu den gelöschten Partitionen gehörte auch die EFI-Systempartition. Ich habe festgestellt, dass Ubuntu jetzt im Legacy-Modus (und nicht UEFI) bootet. Ich versuche, [dieser Anleitung zur Konvertierung meiner Ubuntu-Installation von Legacy zu UEFI] zu folgen (https://help.ubuntu.com/community/UEFI). Das Problem - da es keine EFI-Partition gibt, kann ich nicht booten, wenn ich im BIOS wähle, mit UEFI zu booten. Das gilt nicht nur für die Festplatte, sondern auch für usb und DVD. Ich denke, das ist logisch - er erwartet eine EFI-Partition und da er sie nicht findet, kann er nicht weiter booten, weder von Festplatte noch von DVD. Wie kann ich also die EFI-Partition neu erstellen?
In der Anleitung oben steht:
Erstellen einer EFI-Partition
Wenn Sie Ihre Festplatte manuell partitionieren im Ubuntu-Installationsprogramm partitionieren, müssen Sie sicherstellen, dass Sie eine EFI Partition einrichten.
- wenn Ihre Festplatte bereits eine EFI-Partition enthält (z. B. wenn Ihr Computer Windows8 vorinstalliert war), kann diese auch für Ubuntu verwendet werden. Nicht formatieren Sie sie nicht. Es wird dringend empfohlen, nur 1 EFI-Partition pro Festplatte.
(2) Eine EFI-Partition kann mit einer aktuellen Version von GParted erstellt werden. erstellt werden (die Gparted-Version, die auf der 12.04-Diskette enthalten ist, ist OK) und muss die folgenden Attribute aufweisen:
Einhängepunkt: /boot/efi (Anmerkung: Dieser Einhängepunkt muss nicht gesetzt werden, wenn die manuelle Partitionierung verwenden, das Ubuntu-Installationsprogramm erkennt ihn automatisch)
Größe: mindestens 100Mib. 200MiB empfohlen.
Typ: FAT32
Sonstiges: benötigt ein "boot" Flag.
Ich hatte einige Probleme beim Erstellen dieser Partition:
/etc/fstab
gesetzt, da es sich um eine Live-CD handelt und die fstab ganz anders aussah, als ich es erwartet hatte, verglichen mit einem normalen Boot. Wie auch immer, ich wusste einfach nicht, welche Werte ich setzen sollte.Ich bootete wieder über die Live-DVD und entschied mich dann für die Installation von Ubuntu. Dann habe ich eine Partition mit den genannten Kriterien erstellt - Einhängepunkt, 200MB, FAT32, Boot-Flag.
Allerdings habe ich weiterhin dieses Problem und ich vermute, dass es daran liegt, dass auf dieser Partition keine EFI-Firmware vorhanden ist, sondern nur eine leere Partition, die für EFI-Firmware geeignet ist.
Wie kann ich also eine EFI-Partition erstellen, auf der die EFI-Software installiert ist, so dass der Laptop wieder im UEFI-Modus booten kann?
LÖSUNG Ich danke Ihnen beiden für Ihre Antworten. Ich habe Windows 8.1 von Grund auf neu installiert, indem ich die gesamte Festplatte formatiert habe und dann (dieses Mal richtig) Ubuntu daneben installiert habe. Das sind jetzt meine Partitionen:
Sobald ich während der Installation von Win 8 alle vorhandenen Partitionen löschte und Windows die Festplatte neu formatieren ließ, wurden neben der Hauptinstallationspartition automatisch drei weitere Partitionen erstellt, nämlich 1, 2 und 3. Jetzt, nachdem ich ein ordentliches ESP hatte, konnte ich sowohl von der Festplatte als auch von der DVD im UEFI-Modus booten.
Sie sagen, dass die ESP standardmäßig keine Informationen speichert, aber ich denke, wenn ein Betriebssystem installiert wird, legt es dort einige Informationen ab. Mein Fall war also der folgende: Ich hatte ihn gelöscht und obwohl ich ihn neu erstellt hatte, 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 schätze, ich hätte grawity's Rat befolgen sollen, um sie zu retten. Hatte aber keine Zeit, aber zum Glück ist jetzt alles in Ordnung.
Erstens setzen Sie den Einhängepunkt nicht in GParted; das geschieht manuell (und vorübergehend) über den Befehl mount
oder dauerhaft durch Bearbeiten von /etc/fstab
. Ihre Besorgnis über dieses Problem ist also unangebracht.
Zweitens ist eine EFI-Systempartition (ESP) einfach eine FAT-Partition mit einem bestimmten Typcode (nämlich C12A7328-F81F-11D2-BA4B-00A0C93EC93B auf GPT-Festplatten). Beachten Sie, dass der Einhängepunkt in /etc/fstab
nicht Teil der ESP's Definition ist; es ist einfach üblich (aber nicht erforderlich) in Linux, auf die ESP zuzugreifen, indem man sie unter /boot/efi
einhängt, typischerweise über einen /etc/fstab
Eintrag. Die Art und Weise, wie Sie den Typcode setzen, variiert von einem Programm zum anderen:
gdisk
setzen Sie den Typcode auf EF00. (gdisk
verwendet Zwei-Byte-Typ-Codes, die sich zu den echten Typ-Codes auf der Platte erweitern; "EF00" ist nur eine Abkürzung für "C12A7328-F81F-11D2-BA4B-00A0C93EC93B".)parted
setzen Sie das "boot flag." Beachten Sie jedoch, dass dies nur auf GPT-Platten funktioniert; Sie können den ESP-Typcode auf MBR-Platten mit diesen Programmen nicht setzen. (Dies ist normalerweise kein großes Problem, da EFI-basierte Computer normalerweise von GPT-Platten booten)./etc/fstab
entsprechend ein.fdisk
wird der Partitionstyp durch seine Nummer (1 für "EFI System" auf GPT-Platten oder 0xEF auf MBR-Platten) oder durch Eingabe des vollständigen Typcodes auf GPT-Platten festgelegt.Drittens enthält das ESP keine Firmware - Firmware ist per Definition in Chips auf der Hauptplatine gespeichert. Daher ist Ihr Versuch, die EFI-Firmware auf dem ESP zu installieren, ein aussichtsloses Unterfangen. (Es gibt zwei Ausnahmen von dieser Regel. Erstens könnten Sie eine Firmware-Datei auf dem ESP speichern, um die Firmware auf Ihrem Computer zu aktualisieren. Dies ist jedoch nur ein vorübergehender Speicherplatz. Zweitens, der DUET oder Clover Bootloader, das EFI wird als reguläres Programm geladen, normalerweise vom ESP. Bei diesen Tools handelt es sich jedoch um BIOS-Bootloader, mit denen reine BIOS-Computer so gebootet werden können, als wären sie EFI-Computer; sie werden normalerweise nicht auf Computern mit EFI-Firmware verwendet, die Ihr Computer angeblich hat. Technisch gesehen sind weder DUET noch Clover Firmware; sie sind BIOS-Bootloader, die die gleiche Aufgabe wie EFI erfüllen).
Abschließend kann ich mir eine Reihe von möglichen 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 Script] (http://sourceforge.net/projects/bootinfoscript/) auf dem Computer auszuführen. Dies wird eine Datei namens RESULTS.txt
erzeugen. Senden Sie diese Datei an eine Pastebin-Seite und senden Sie die URL zu Ihrem Dokument zurück. So erhalten Sie konkrete Angaben zu Ihrer Konfiguration, was die Bandbreite möglicher Ursachen für Ihr Problem erheblich einschränkt.
Die EFI-Partition enthält nicht die Firmware (die in einem Chip auf der Hauptplatine gespeichert ist), sondern die Bootloader für die installierten Betriebssysteme. Sie ist im Grunde die EFI-Alternative dazu, den Bootloader in den 0. Sektor der Festplatte zu legen, wie es bei BIOS-PCs der Fall war.
Das bedeutet, dass eine solche Partition automatisch gefüllt wird, wenn Sie das Betriebssystem installieren. (Es ist allerdings ziemlich wahrscheinlich, dass die Installationsdiskette selbst auch im EFI-Modus gebootet werden muss, sonst macht sie sich nicht die Mühe, den UEFI-Boot einzurichten... tatsächlich können bestimmte Teile des Setups nicht einmal im BIOS-Modus durchgeführt werden.)
Wenn Sie bereits Ubuntu installiert haben, müssen Sie das tun:
Installieren Sie die UEFI-Version von GRUB; ich glaube, sie befindet sich in dem Paket grub-efi-amd64-signed
.
grub-install --target=x86_64-efi-signed
(Für die unsignierte grub-efi-amd64
Version ist es x86_64-efi
.)
Stellen Sie sicher, dass GRUB sich als \EFI\Boot\bootx64.efi
in der EFI-Systempartition installiert hat. (Ich verwende hier die EFI-Pfadsyntax; wenn Sie die Partition unter Linux unter /boot
mounten, würde sie /boot/EFI/Boot/bootx64.efi
heißen).
Wenn dies nicht der Fall ist, kopieren Sie grubx64.efi
manuell an diesen Ort.
Dies ist notwendig, weil grub-install
sich nicht selbst zum EFI-Bootmenü hinzufügen kann, wenn das System nicht bereits im EFI-Modus gebootet hat. (Auf die "EFI-Variablen" kann im BIOS-Modus nicht zugegriffen werden.) Daher ist die einzige Möglichkeit, GRUB zu booten, ihn in den "Fallback Boot Loader" zu verschieben.
Neustart. Versuchen Sie, im Bootmenü Ihrer Firmware einen EFI-Modus auszuwählen (EFI-Firmwares haben ein eigenes Bootmenü, noch vor GRUB).
Prüfen Sie, ob dmesg | grep "efi:"
etwas anzeigt, um zu bestätigen, dass Sie sich im EFI-Modus befinden.
Erstellen Sie zwei Dateien mit Notepad und speichern Sie sie auf Ihrem USB-Windows-Installationslaufwerk.
SpeichernAls: 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:
Speichern unter: 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 den MBR verwenden, lautet der Befehl: convert mbr.
Um die Größe der Windows-Partition zu ermitteln, multiplizieren Sie die Größe Ihrer Festplatte mit 1024. Eine 100-Gigabyte-Festplatte mal 1024 ergibt 102400 minus 210 (efi-Größe) minus 16 (msr-Größe) minus 460 (reservierte Größe) ergibt die Größe, die Sie in die Windows-Partition eingeben. (xxxxxx)
Sie können die Partitionsgröße über das Terminal (Eingabeaufforderung) ändern cd /d D: > notepad CreatePartitions-UEFI.txt
Öffnen Sie auf dem USB-Laufwerk mit notepad diskpart-UEFI.txt und lassen Sie den Befehl offen oder schreiben Sie ihn auf, damit Sie keinen Fehler machen.
Sobald Sie die Größe der Partitionen nach Ihren Wünschen geändert haben, schließen Sie es, führen Sie cd /d x:/Sources und dann diskpart /s D:\CreatePartitions-URFI.txt aus.
list volume als letzter Befehl zeigt Ihnen die Partitionen an, wenn Sie zufrieden sind,
beenden > Computer ausschalten > neu starten > installieren