Dual-Boot Ubuntu 12.10 unter UEFI unter Windows 8 (GRUB - Fehler: Befehl Drivemap kann nicht gefunden werden)

8

Hallo, nach einer erfolgreichen Installation von Ubuntu 12.10 amd64 kann ich Windows 8 jetzt nicht mehr starten.

Hier sind meine Aktionen:

  1. Mit Windows 8 Computer Managment wurde Platz (15 GB) für Ubuntu geschaffen
  2. Booten Sie Ubuntu 12.10 amd64 LiveUSB mit EFI und aktiviertem Secure Boot
  3. Erstellt am Ende 2 neue Partitionen (13 GB Ext4 Root und 2 GB Swap)
  4. Ausgewählte Windows 8 EFI-Systempartition zum Installieren des Bootloaders

Grub gibt mir beim Booten:

  1. Ubuntu (funktioniert ohne Probleme)
  2. Windows-Wiederherstellungsumgebung (viele Fehler)
  3. Windows 8 (2 Fehlermeldungen beschreiben unten)

Die 2 Fehlermeldungen sind:

  • error: can't find command drivemap.
  • error: invalid EFI file path
Kouros
quelle
Berichtigung Ich habe "die neu erstellte EFI-Systempartition" ausgewählt, um den Bootloader zu installieren, aber in Wirklichkeit hat er den Bootloader auf dem Windows 8 EFS installiert ...
Kouros
Haben Sie vorher ein Backup gemacht? dh die Windows 8-Start- / Systempartition ist etwas Kleines wie 150-350 MB, also haben Sie es vielleicht getan dd if=/dev/sda1 of=/media/some_usb_pendrive/backupfile? Wenn eine solche Sicherung vorhanden ist, würde ich das Windows-System wiederherstellen / partitio starten, das möglicherweise "beschädigt" wurde.
Menschheit und
Entschuldigung, kein Backup, aber ich habe es geschafft, Windows 8 mithilfe der Wiederherstellungsumgebung wiederherzustellen (durch Drücken der Assist-Taste anstelle der Einschalttaste)
Kouros
Haben Sie Ihre eigene Frage ernsthaft dupliziert? Installieren Sie Ubuntu 12.10 auf UEFI unter Windows 8
duxk.gh
HINWEIS: Durch das Upgrade auf 13.04 wurde diese Änderung in meiner Installation entfernt.
GCB

Antworten:

6

Ich habe eine vorübergehende Lösung gefunden.

Fügen Sie dem GRUB-Bootmenü einen benutzerdefinierten Eintrag hinzu

Fügen Sie den folgenden Code an an /etc/grub.d/40_custom.

menuentry "Windows 8" {
    insmod part_gpt
    insmod chain
    set root='(hd0,gpt1)'
    chainloader /EFI/microsoft/BOOT/bootmgfw.efi
}

Sie können Ctrl+ Alt+ verwenden T, um ein Terminal zu öffnen und auszuführen sudo nano /etc/grub.d/40_custom, dann den Code zu kopieren und einzufügen. Zum Schluss drücken Sie Ctrl+ Ozum Speichern und Ctrl+ Xzum Verlassen.

Heads up: hd0,gpt1 Hier ist die ID meiner EFI-Systempartition (ESP). Wenn Ihr ESP während des Startvorgangs nicht die erste Partition auf Ihrer ersten Festplatte ist , ist Ihre Partition anders! ZB hd1,gpt2für die zweite Partition auf dem zweiten Laufwerk.

Ersetzen Sie part_gptdurch, part_msdoswenn das Laufwerk MBR- und Legacy-Partitionierung verwendet, und wechseln Sie ebenfalls hd0,gpt1zu hd0,msdos1.

Übernehmen Sie die Änderungen an GRUB

Führen Sie einfach den folgenden Befehl aus, der eine neue GRUB-Konfiguration einschließlich des neuen benutzerdefinierten Eintrags generieren soll:

sudo update-grub

Jetzt neu starten, sollten Sie jetzt in der Lage sein, Windows 8 zu starten. Wenn nicht und Windows sich über eine beschädigte BCD-Konfiguration beschwert, fahren Sie mit dem Superuser fort: Wie kann ich den Windows 8 EFI-Bootloader reparieren?


Warnung: In einigen Fällen wird GRUB beim Starten von Windows 8 durch den Windows-Boot-Manager als Standard-Boot-Manager ersetzt.

Kouros
quelle
Was soll ich anstreben? Ich dachte, es wäre die Windows-Datenpartition (gpt4 hier), aber es funktionierte mit gpt1, der einzigen EFI-Partition, die ich habe. Ich dachte, die Installation von Ubuntu hätte den Windows-Inhalt der EFI-Partition überschrieben, wie es Grub mit dem MBR tut ...
GCB
1
Diese Lösung funktioniert bei mir nicht. Erscheint das Zeichen `im set root='(hd0,gpt1)'beabsichtigten. Es gibt Fehler für mich (ich versuche es mit gpt3) auch ohne diesen Charakter auch. Der Fehler ist wie (hd0,gpt1)nicht gefunden.
Iammilind
3

Die falschen Windows-Einträge in GRUB sind auf diesen Fehler zurückzuführen: https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1024383

Lösung: Führen Sie Boot-Repair 's Recommended Repairvon einer liveCD (oder liveUSB) aus.

LovinBuntu
quelle
1
Ich musste "Secure Boot" im BIOS deaktivieren, bevor dies funktionieren würde.
Robin Winslow
@RobinWinslow Ja, Boot-Repair hat auch bei mir funktioniert (Lenovo Thinkpad S540), aber nur, wenn ich es SecureBootim BIOS deaktiviert habe , sonst beschwert sich Windows 8 immer noch ... Wäre schön, wenn dies unter Beibehaltung von SecureBoot
funktionieren
0

Ich habe einen Weg gefunden, Windows 8 herunterzufahren. Siehe /superuser/499923/preinstalled-windows-8-and-linux-uefi-dual-boot-on-a-laptop/528581

Führen Sie unter W8 in einem Befehlsfenster mit erhöhten Berechtigungen powercfg / h aus. Zu diesem Zeitpunkt hat W8 möglicherweise bereits die EFI-Partition überschrieben. Ich brauchte ein paar Iterationen, um bootmgfw.efi zu ändern und zurückzusetzen, bis es feststeckte, aber jetzt bin ich glücklich.

Ich kann nicht sagen, ob es ausreicht, nur W8 zu booten, oder ob Sie sich anmelden und dann neu starten müssen. Vielleicht kann jemand mit mehr Geduld (ich habe mehr als einen halben Tag daran gearbeitet) sagen.

Lupe
quelle
0

Ich habe das gleiche Problem auf meinem Asus-x202-Laptop (mit W8 und Ubuntu 13.04).

Eine etwas nervige Umgehung ist für den Moment gut genug: Gehen Sie im Boot-Menü zum System (oder starten Sie das BIOS von Anfang an mit wahrscheinlich f2). Wenn Sie die Überschreibung zum Booten verwenden, wird Windows wie gewohnt gestartet.

user184354
quelle
1
Worauf beziehen Sie sich genau unter "Override to Boot"? Ich verstehe diesen Teil Ihrer Antwort nicht.
Gertvdijk
0

Die Option "Zum Booten überschreiben" ist ein Menü auf der Registerkarte "Booten" des Motherboard-Konfigurationsmenüs. Damit können Sie jeden Bootloader auswählen und sofort starten, der noch auf Ihrem Rig installiert ist.

vic
quelle
1
@edwin Diese Antwort könnte erweitert werden, aber es scheint ein Versuch zu sein, die gestellte Frage zu beantworten. vic : Willkommen bei Ask Ubuntu! Ich empfehle, dies zu bearbeiten, um weitere Informationen zur Verwendung dieser Funktion sowie eine ausführlichere Erklärung der Gründe für die Lösung dieses Problems hinzuzufügen. Vielen Dank.
Eliah Kagan
0

Ich habe ein ähnliches Problem mit meinem neuen HP Pavillion Sleekbook, Modell 15-b142dx. Es kam mit vorinstalliertem W8. Ich konnte die Größe der Windows-Partition in Windows ändern und dann 64-Bit-Ubuntu 13.04 von einem USB-Stick installieren. Beim Neustart wurde W8 jedoch normal ohne Startmenü gestartet. Also habe ich "Boot-Repair" verwendet, wodurch das System nicht mehr bootfähig war. Beim Start würde gedruckt:

Failed to open \EFI\Microsoft\Boot\grubx64.efi - 800000000000000E 
Failed to load grub
Failed to open \EFI\BOOT\grubx64.efi - 800000000000000E
Failed to load grub
Failed to open \EFI\BOOT\grubx64.efi - 800000000000000E
Failed to load grub

Es würde dann herunterfahren.

Nach einigem Ausprobieren stellte ich fest, dass ich durch Drücken von F10 während des Startvorgangs zum BIOS gelangen würde, wo ich Secure Boot deaktivieren könnte. Beim nächsten Start bekam ich ein langes Menü von grub mit vielen Einträgen wie:

Windows UEFI bkpbootmgfw.efi
Windows Boot UEFI loader
EFI/HP/BIOSUpdate/CryptRSA32.efi
.
.
.

Diese waren alle in der Datei "/etc/grub.d/25_custom" enthalten. Ich habe eine Sicherungskopie dieser Datei erstellt und dann alle Einträge außer dem Windows Boot UEFI-Loader entfernt. (Dies ist einer der Einträge, mit denen W8 gestartet werden kann.) Ich habe dann "update-grub" ausgeführt und bin mit einem viel schöneren Boot-Menü gelandet und kann jedes Betriebssystem booten.

user200241
quelle