Grub zeigt nach dem Dual-Boot keine Windows 8 Option an

25

Also habe ich meinen Windows 8-Rechner mit Ubuntu 12.04 erfolgreich dual-gebootet. Ich habe jedoch immer noch keine bequeme Methode zum Auswählen des Betriebssystems, das beim Booten geladen werden soll.

Nach der Installation von Ubuntu lädt mein Computer immer noch Windows 8 direkt. Ich habe dann grubx64.efidie Whitelist meines Bootloaders hinzugefügt . Aber danach lädt mein Rechner Ubuntu direkt, ohne dass ein Schatten von GRUB auftaucht!

Ich habe Boot-Repair verwendet und die URL paste.ubuntu erhalten : paste.ubuntu.com/1326074 . Nach dem Ausführen von Boot-Repair (und erneutem Auflisten der grubx64.efiDatei) wird GRUB nun angezeigt, jedoch ohne Windows 8-Option!

Zuletzt lief ich sudo fdisk -lund es gab mir das:

WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! The util fdisk doesn't support GPT. Use GNU Parted.


Disk /dev/sda: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x6396389f

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1  1465149167   732574583+  ee  GPT
Partition 1 does not start on physical sector boundary.

Ich vermute, mein Problem hat etwas mit der Warnung von fdiskoben zu tun, aber ich weiß nicht, was ich damit anfangen soll. Wie gehe ich jetzt vor?

Bearbeiten

Mein etc/default/grubist wie folgt:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

Nur zur Veranschaulichung: Dies ist das, was ich beim Installieren meines Dual-Boot befolgt habe. Das Tutorial (das 11.10 verwendet, muss ich beachten) erwähnt nichts über dieses Problem. Gibt es etwas, was ich nicht hätte tun sollen?

Himmelsleser
quelle
Lesen Sie diese Antwort, kann Ihnen helfen: askubuntu.com/questions/84501/…
NickTux

Antworten:

17

Erstens ist Ihre fdisk -lAusgabe kein Problem. Dadurch wird Ihre Festplatte einfach als das GUID-Partitionierungssystem (GPT) identifiziert . Um Ihre Partitionen anzuzeigen, müssen Sie stattdessen ein GPT-fähiges Tool verwenden, wie gdiskoder parted, statt fdisk, die GPT nicht verstehen.

Zweitens können Sie GRUB möglicherweise dazu bringen, Windows in einer Kette zu laden, indem Sie einen geeigneten Eintrag zu a hinzufügen /etc/grub.d/40_customund anschließend a ausführen sudo update-grub. Ein Eintrag könnte ungefähr so ​​aussehen:

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

Die Details können jedoch von Ihrer Installation abhängen.

Drittens können Sie, wenn Sie rEFInd für hässlich halten, immer ein anderes rEFInd-Thema ausprobieren oder ein eigenes erstellen, wie in der rEFInd-Dokumentation beschrieben. Wenn Sie alternativ einen Bootloader im Textmodus bevorzugen, können Sie die textonlyOption in festlegen refind.conf. Sie können ein ähnliches Ende erreichen, indem Sie zu Gummiboot wechseln.

Viertens, wenn rEFInd regelmäßig Fehler meldet, notieren Sie sich diese oder machen Sie ein Bild des Bildschirms mit einer Digitalkamera und melden Sie sie mir. (Ich bin der Betreuer von REFInd.) Fehler können nicht behoben werden, wenn niemand sie meldet. Wenn es sich nicht um Fehler in rEFInd handelt, können die Meldungen Hinweise zur Behebung des Problems enthalten.

Schließlich ist es möglich, Linux über rEFInd (oder gummiboot) zu booten, ohne GRUB zu verwenden. Sie benötigen lediglich einen anderen EFI-Bootloader. Ich persönlich bevorzuge den EFI-Stubloader des Linux-Kernels . Dies ist jedoch nur in Kerneln der Version 3.3.0 und höher verfügbar. Da Ubuntu 12.04 mit einem 3.2.0-Kernel ausgeliefert wird, müssen Sie entweder eine vorgefertigte Version 3.3.0 für Ubuntu 12.04 finden (ich habe von solchen Dingen gehört, aber ich habe keine Links zur Hand) oder Ihre erstellen eigene aus dem Quellcode. (Sie könnten auch Ubuntu 12.10 installieren, das mit einem geeigneten Kernel geliefert wird, aber vermutlich möchten Sie eine LTS-Version, sodass dies möglicherweise nicht optimal ist.) Weitere Informationen zum Booten von Linux finden Sie auf der Seite rEFInd-DokumentationWeitere Informationen zum Einrichten finden Sie hier. Sie können auch ELILO oder GRUB Legacy verwenden. Wenn Sie der Verzögerung einfach widersprechen, können Sie das GRUB 2-Zeitlimit verringern und festlegen, dass das Menü standardmäßig nicht angezeigt wird.

Rod Smith
quelle
1
Erstens, wow, ich habe nicht gemerkt, dass Sie der Verwalter von REFInd sind. Als nächstes bezüglich des GRUB-Menüeintrags ... Ich habe es versucht, aber es funktioniert nicht. Unter anderem habe ich versucht, meine ESP-Partition einzustellen, aber ohne Erfolg. Ich habe sogar versucht, einen dieser grafischen GRUB-Editoren zu verwenden (ich habe den Namen vergessen). In Bezug auf rEFInd sind die gemeldeten Fehler nicht kritisch (ich bearbeite meinen Beitrag, um dies zu beachten). Beim Start wird lediglich mitgeteilt, dass bestimmte .efi-Dateien nicht gefunden werden können. Ich habe keine Ahnung, woher sie kommen.
Skytreader
Überprüfen Sie, ob die angegebene Datei auf dem ESP vorhanden ist. Stellen Sie außerdem sicher, dass die Groß- und Kleinschreibung des Dateinamens korrekt ist. (Es sollte keine Rolle spielen, aber ich kenne ein fehlerhaftes EFI, in dem es funktioniert!) Wenn das nicht hilft, welche Fehlermeldung (falls vorhanden) gibt GRUB zurück, wenn Sie versuchen, Windows über diesen Eintrag zu starten?
Rod Smith
8

Starten Sie Ubuntu von CD,
wählen Sie "Ubuntu testen", stellen Sie eine Verbindung
zum Internet her,
öffnen Sie ein Terminalfenster mit Ctrl- Alt- tund führen Sie dann Folgendes aus:boot-repair

Wenn die Boot-Reparatur nicht gefunden wird, installieren Sie sie:

sudo add-apt-repository ppa:yannubuntu/boot-repair &&
sudo apt-get update &&
sudo apt-get install -y boot-repair &&
boot-repair

Klicken Sie auf Empfohlene Reparatur. Schreiben Sie die neue URL auf ein Blatt Papier. Starten Sie den PC neu. Sie sollten ein GRUB-Menü mit Zugriff auf Ubuntu und Windows erhalten. Geben Sie bei Problemen die neue URL an.

Scott Stensland
quelle
7

Beide Antworten mit /EFI/Microsoft/Boot/bootmgfw.efiwürden reichen. Allerdings habe ich mich verdammt gehackt, um die richtigen Einstellungen für zu bekommen set root='(hd0,gpt1)'. Wenn Sie wissen, dass es sehr einfach ist

Wenn GRUB beginnt: Drücken Sie c den Befehl geben , lsauf die Aufforderung.
Sie erhalten eine Liste von Partitionen auf Festplatten wie (hd0, GPT1) usw.
Typ ls(hd0, GPT1) und die anderen versuchen.
Schauen Sie sich das Etikett an und wenn es EFI anzeigt, wissen Sie, dass Sie einen Treffer haben.

Warnung: Je nachdem, wie Sie Ubuntu installiert haben, sind möglicherweise weitere Partitionen mit EFI gekennzeichnet. Probieren Sie sie alle aus.

Jørgen
quelle
6

Versuche zu rennen sudo update-grub. Dies sollte hoffentlich Windows 8 automatisch erkennen und zu GRUB hinzufügen und das Menü neu konfigurieren.

Wenn dies fehlschlägt, teilen Sie Ihre /etc/default/grubDatei hier, wir werden einen Blick darauf werfen.

Tom Klino
quelle
1
Hallo. sudo update-grubhabe den Trick nicht getan. Ich habe meine Frage so bearbeitet, dass sie meine enthält /etc/default/grub. Inzwischen studiere ich die Antwort NikTh verlinkt.
Skytreader
3

Versuchen Sie, eine Datei mit dem Namen zu erstellen, die /etc/grub.d/30_windowsFolgendes enthält:

#! /bin/bash
cat << EOF
menuentry "Windows 8" {
    insmod part_gpt
    insmod chain
    set root='(hd0,gpt1)'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
EOF
Dann starten sudo update-grubund neu starten .

Vollständiges Tutorial

Handelsmarke
quelle
1
  1. Bitte lade super Grub herunter und folge den Anweisungen. Ich verlasse mein Zuhause nie ohne es. Sehr hilfreich, wenn das Menü nicht angezeigt wird.

  2. Sie müssen auf eine CD laden und sie starten. Befolgen Sie einfach die dazugehörigen Anweisungen.

  3. Es kann auch verwendet werden, um Fenster zu reparieren. Da Sie nur in Windows 8 booten können, möchten Sie den Linux-Fix auswählen.

Spielen Sie damit herum, aber lesen Sie die Anweisungen. Sie werden sich nach einer Weile wie ein Experte fühlen. RS

Fuchs
quelle
0

Mein ultimativer Workaround

(* Weil Tom's nicht funktioniert hat und NikThs Link zu kompliziert ist. Aber hey, danke für die Mühe!)

Installieren Sie rEFInd .


Ich akzeptiere meine eigene Antwort, bis jemand auf einen möglichen Fehler und eine Fehlerbehebung hinweist oder meine Probleme behebt (bei der leider nur die Frage gestellt wird, wie ich Windows 8 einfach in GRUB einbinden kann ).

( Edit 06.08.17: Ich habe letztendlich rEFInd verwendet, um dieses Problem zu lösen (siehe akzeptierte Antwort oben).)

Bei weitem keine perfekte Lösung, die Verwendung von rEFInd scheint ein sehr hackiger Job zu sein. Zum einen sieht es hässlich aus (sorry rEFInd) und teilt mir mit, dass der Zugriff auf bestimmte .efi-Dateien ({ext2_x64, hfs_x64, iso9660_x64, reiserfs_x64} .efi) beim Start verweigert wurde Drücken Sie*. Und schließlich lädt die Auswahl von Ubuntu efi immer noch GRUB, was ein völlig unnötiger Schritt ist, zumindest da ich nicht die Mühe habe, mehrere Kernelversionen zu behalten.

Zusammenfassend...

Vorteile: Mein System funktioniert jetzt mehr oder weniger wie meine Dual-Boots vor UEFI. Nachteile: Es sieht hässlich und eine längere Startzeit.

* Ich muss beachten, dass dieses RefInd über install.shauf meiner Ubuntu-Partition installiert wurde . Frühere Erfahrungen mit rEFInd (Einrichtung über Windows) hatten dieses Problem nicht.

Himmelsleser
quelle
Wenn eine frühere rEFInd-Installation über Windows keine Fehler über Dateien liefert, die nicht gefunden wurden, aber Ihre aktuelle Installation unter Linux, dann geht meines Erachtens eines von zwei Dingen vor sich: 1) Sie haben ein Motherboard mit Ein Fehler bei der Unterscheidung zwischen Groß- und Kleinschreibung. In diesem Fall kann das Verwechseln mit Dateien oder Verzeichnissen die Situation verbessern. oder 2) Ihr ESP hat etwas Merkwürdiges (z. B. FAT16 oder FAT32 oder kleinere Schäden am Dateisystem). Einige EFIs scheinen sehr pingelig in Bezug auf die Dateisysteme auf ihren ESPs zu sein. Genaue Dateinamen können hilfreich sein, um das Problem einzugrenzen.
Rod Smith
Okay. Mein Fehler. Es wurde nicht gesagt, dass es bestimmte Efis nicht finden kann, nur, dass der Zugriff auf bestimmte Efis verweigert wurde (also nehme ich an, die besagten Efis sind da, nur nicht zugänglich?). Ich habe diese Dateien jetzt notiert, obwohl ich immer noch keine Ahnung habe, woher sie stammen.
Skytreader
"Zugriff verweigert" ist meiner Erfahrung nach ein ungewöhnlicher Fehler bei EFI. AFAIK, EFI unterstützt keine Eigentumsrechte oder Berechtigungen wie Linux, daher ist dies nur dann sinnvoll, wenn ein Festplattenlesefehler aufgetreten ist. Ich habe seltsame Disk Write- Fehler unter EFI gesehen, die beim nächsten Neustart verflogen sind. Wenn dieses Problem weiterhin besteht, können Sie einen SMART-Test auf Ihrer Festplatte durchführen, falls ein Hardwarefehler vorliegt, und das ESP sichern und neu schreiben, falls es einen seltsamen Dateisystemschaden gibt, den dosfsck nicht beheben kann. Abgesehen davon kann es nützlich sein, zu melden, welche Dateien Probleme verursachen.
Rod Smith
1
Die Meldung "Zugriff verweigert" bezieht sich mit ziemlicher Sicherheit auf Secure Boot. Eine solche Meldung wird angezeigt, wenn rEFInd versucht, eine nicht signierte EFI-Binärdatei im sicheren Startmodus zu laden. Das Rätselhafte daran ist, dass Sie rEFInd überhaupt starten können, da es nicht selbst signiert ist. Ich vermute, Sie haben eine seltsame fehlerhafte, halb aktivierte Secure Boot-Einstellung in Ihrer Firmware. Die derzeit einfachste Lösung besteht darin, Secure Boot vollständig zu deaktivieren. Es gibt jedoch auch andere. Weitere Informationen finden Sie auf meiner Webseite unter rodbooks.com/efi-bootloaders/secureboot.html .
Rod Smith
Auf meinem HP Laptop muss ich f9 drücken und dann booten, sonst lädt Windows. Es gibt auch eine Option, um Windows auch von Grub zu booten, obwohl ich es nie benutze. Wenn mir Windows langweilig ist, schalte ich es einfach ein und warte auf Windows. Wenn ich Ubuntu booten möchte, drücke ich einfach F9, sobald ich mich einschalte.
Geoffmcc