Windows 10 zur GRUB-OS-Liste hinzufügen

29

Ich habe vor kurzem einen Computer aus der Schule bekommen. Es kam mit Windows 8.1 installiert. Ich habe dann eine weitere Kopie von Windows 8.1 installiert (damit die integrierte Windows Pro-Lizenz verwendet wird) und auf Windows 10 aktualisiert. Dann habe ich Ubuntu neben Windows 8 und 10 installiert.

Beachten Sie, dass ich für / boot eine separate ext2-Partition mit 255 MB erstellt habe.

Wenn ich jetzt den Computer starte, sehe ich zuerst eine GRUB-Eingabeaufforderung (ich habe die GRUB-Eingabeaufforderung bereits ausgeblendet, weil es mir so gefällt) mit Windows 8- und Ubuntu-Optionen. Es gibt jedoch keine Windows 10-Option. Wenn ich Ubuntu auswähle, bootet der Computer in Ubuntu. Wenn ich jedoch die Option Windows 8 auswähle, werde ich an den Windows-Bootloader gesendet, wo mir Optionen zum Booten von Windows 8 oder Windows 10 zur Verfügung stehen. (Zu diesem Zeitpunkt hat der Computer jedoch bereits den Kernel und alle geladen Offenbar hat Microsoft das Konzept eines Bootloaders missverstanden und festgestellt, dass dies bedeutet, dass praktisch das gesamte System gebootet wird, bevor der Bootloader tatsächlich angezeigt wird.

Wie kann ich den Windows-Bootloader deaktivieren und GRUB eine Windows 10-Option hinzufügen? BEARBEITEN: Jemand hat geantwortet und mich aufgefordert, den Windows-Bootloader zu deaktivieren. Ich weiß jedoch immer noch nicht, wie ich Windows zur Liste der GRUB-Betriebssysteme hinzufügen kann. Kann mir jemand dabei helfen?

BEARBEITEN 2: Nachdem Windows 10 mit EasyBCD aus dem Windows-Bootloader entfernt wurde, schien es, als würde es sich nach einigen Neustarts immer wieder selbst einblenden und Windows 10 würde wieder erscheinen. Allerdings habe ich dann später Windows 10 aus der Liste der Betriebssysteme in msconfig gelöscht, und es scheint gelöscht geblieben zu sein.

Ich habe es jedoch NOCH nicht geschafft, Windows 10 in GRUB erscheinen zu lassen. Es ist, als würde GRUB es einfach nicht erkennen.

Außerdem werde ich das in die Frage stellen, damit die Leute es sehen - ich habe versucht es zu benutzen boot-repair, aber es hat KEINEM geholfen.

Hitechcomputergeek
quelle
1
@daltonfury42 Hör auf zu glauben, wenn du nicht zuhörst oder nicht verstehst, was die Anforderungen des OP sind! Es ist irreführend und kontraproduktiv, ein Tool für untypische UEFI-Installationen mit speziellen Anforderungen zu empfehlen, das die häufigsten Probleme bei herkömmlichen Startkonfigurationen behebt.
LiveWireBT
2
@LiveWireBT Es tut mir so leid. Ich habe deine Antwort gesehen. Ich habe meinen Kommentar gelöscht (und aufgehört zu glauben: P). Vielen Dank!
Daltonfury42
1
Ich denke, ich werde einfach die gesamte Windows 10-Partition löschen und auf jeden Fall auf eine VM verschieben.
Hitechcomputergeek
Ehrlich gesagt, ich bin mir nicht sicher, warum die Leute dies immer noch befürworten, da es sich bei der IMO nicht um eine gute Frage handelt. Dieses Jahr habe ich dies jedoch auf eine andere Weise gelöst - durch die Konvertierung von MBR zu GPT und UEFI-Boot. Grundsätzlich habe ich das Partitionsschema in GPT konvertiert, die Größe der Windows-Partition geändert, eine EFI-Systempartition hinzugefügt und rEFInd darauf abgelegt und mithilfe einer Windows-Installationsdiskette eine Windows-BCD erstellt. Jetzt bootet das System mit UEFI-Boot, was das Spielen mit Betriebssystemen erleichtert. Im Gegensatz zum Internet war es nicht allzu schwierig, die Windows-Installation von BIOS auf UEFI zu konvertieren, aber es war auch nicht einfach.
Hitechcomputergeek
1
Für alle, die in Zukunft so etwas tun und sich an das BIOS halten möchten - ich glaube, die Antwort liegt in der Windows-BCD. Ich glaube, dass die Windows 10-Installation keinen richtigen Bootloader oder BCD oder so etwas hat und nicht in der Lage ist, eigenständig zu booten. Wenn ich es richtig mache, habe ich die Vermutung, dass GRUB die Windows 10-Partition automatisch findet.
Hitechcomputergeek

Antworten:

25

Verwenden:

sudo update-grub
sudo grub-install /dev/[BOOT PARTITION eg. Sda6]

Befehle im Terminal von Ubuntu, wahrscheinlich wird es Ihr Problem lösen.

Mit diesem Befehl erkennt das System Ihre Windows-Installationen automatisch und fügt sie der GRUB-Liste hinzu.

Neel Shah
quelle
2
Das hat leider nicht geklappt. Es scheint die Windows 10-Partition nicht zu erkennen.
Hitechcomputergeek
1
Eigentlich hatte ich das gleiche Problem mit meinem System (habe Windows 10 und Ubuntu 14.04), und es wurde durch diese Befehle gelöst.
Neel Shah
Welcher Befehl hat es gelöst, der update-gruboder grub-install? Und haben Sie eine separate / Boot-Partition? Die Sache ist, ich habe eine separate Boot-Partition auf, ich denke, es ist eigentlich sda6.
Hitechcomputergeek
Das Ausführen dieser beiden Befehle hat es (offensichtlich) nicht gelöst.
Hitechcomputergeek
7
sudo update-grubgeschafft.
Thameera
21

Manchmal ist os-prober falsch.

Sehen Sie sich zum Beispiel die UUID Ihrer Windows 10-Partition an:

sudo blkid /dev/sda2

Dann editieren /etc/grub.d/40_customund am Ende der Datei hinzufügen:

menuentry "Windows 10" --class windows --class os {
   insmod ntfs
   search --no-floppy --set=root --fs-uuid $your_uuid_here$
   ntldr /bootmgr
}

Vergessen Sie nicht, die UUID zu ändern.

Und schließlich aktualisiere deine Grub-Konfigurationsdatei:

sudo update-grub

Quelle

noraj
quelle
2
Es ist zu beachten, dass für Windows 10 normalerweise die erste Partition NICHT die Windows-Systempartition ist (dh sdb2 ist korrekt und sdb1 ist NICHT). Dies liegt daran, wie Windows 10 während der Installation auf der Festplatte gespeichert wird und welche Partition für das System reserviert ist oder Systemreparatur steht immer an erster Stelle). Grub kann die zweite Partition oft nicht finden, wenn die erste auf der Festplatte bereits etwas Bootfähiges bietet. Der einfachste Weg, die richtige UUID zu finden, besteht darin, die größte Partition über zu finden sudo fdisk -lund sie mit dem Ergebnis von blkid abzugleichen.
Janmyszkier
9

Diese Lösung bietet einen korrekten Eintrag im Menü "grub2" und wird direkt in Windows 10 geladen, ohne dass auf das BIOS Bezug genommen wird. Es kommt von https://ihaveabackup.net/article/grub2-entry-for-windows-10-uefi, daher beanspruche ich keine Gutschrift. Es war eine große Erleichterung, eine funktionierende Lösung zu finden

Bearbeiten Sie kurz /etc/grub.d/40_custom und fügen Sie Folgendes hinzu:

menuentry 'Windows 10' {
    search --fs-uuid --no-floppy --set=root CC66-4B02
    chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

Um die UUID für die Root-Zeile --set = (im Beispiel CC66-4B02) zu ermitteln, verwenden Sie sudo fdisk -l, um die EFI-Partition zu identifizieren, und sudo blkid / dev / sda1 (oder was auch immer), um die UUID der EFI-Partition zu ermitteln . Beachten Sie, dass es sich nicht um die Windows-Partition handelt, sondern um die von Ihnen benötigte EFI-Partition. Nachdem Sie die Bearbeitung gespeichert haben, führen Sie sudo update-grub aus, um die Datei /boot/grub/menu.cfg zu generieren, und starten Sie sie zum Testen erneut.

peterthevicar
quelle
Ich denke, der Befehl sudo / dev / sda1 sollte sudo blkid / dev / sda1 sein
makapuf
@makapuf - du hast absolut recht, danke. Korrigiert
Peterthevicar
Ich habe genau dieses Tutorial befolgt und bekomme "Fehler: Partition nicht gefunden", wenn ich versuche, den Eintrag zu booten. Beim Mounten der Partition scheint "EFI / Microsoft / Boot / bootmgfw.efi" auf dieser Partition nicht vorhanden zu sein.
Xerus
8

benutze diese App EasyBCD für Windows http://neosmart.net/EasyBCD/ lade die kostenlose Version herunter und installiere sie.

Wenn Sie es öffnen, sehen Sie einen Eintrag für Windows 8 und einen für Windows 10.

Löschen Sie den Windows 8-Eintrag und Sie können loslegen.

Update nach den obigen Schritten gehen Sie zurück zu Ubuntu,

Öffnen Sie das Terminal durch Drücken von ctrl+ alt+T

Kopieren Sie dann nacheinander die Befehle dahin.

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

und auf diese Weise installieren Sie ein Tool namens Boot-Repair.

Öffnen Sie Boot Repair von Dash und Sie erhalten dieses Fenster

Bildbeschreibung hier eingeben

Wählen Sie die empfohlene Reparatur und befolgen Sie die Schritte.

Beachten Sie, dass Sie mit dem Internet verbunden sein müssen, wenn Sie Boot-Repair verwenden.

RonnieDroid
quelle
1
@Hitechcomputergeek Wenn Sie weitere Hilfe benötigen, lassen Sie mich wissen, dass ich zu Windows booten und Ihnen einige Screenshots machen werde.
RonnieDroid
Fügt das Windows 10 zu GRUB hinzu? (Lass mich raten: nein) Ich möchte von GRUB aus auf alle drei Betriebssysteme zugreifen können, und das löst nur einen Teil des Problems.
Hitechcomputergeek
Ich habe die Frage aktualisiert, wie Windows 10 zur GRUB-OS-Liste hinzugefügt werden kann. Ich habe Ihre Antwort positiv bewertet, weil sie einen Teil des Problems behoben hat. Da ich GRUB jedoch noch Windows 10 hinzufügen muss, akzeptiere ich die Antwort noch nicht.
Hitechcomputergeek
2
Außerdem ist mir aufgefallen, dass Sie sagen, Sie sudo apt-get install -y boot-repair && boot-repairmöchten die Startreparatur über den Dash öffnen, aber die Zeile hätte sie bereits geöffnet.
Hitechcomputergeek
1
Sie können dieses Tool auch im "Testmodus von Ubuntu (Live-CD-Modus)" verwenden, wo Sie es installieren, ausführen und verwenden können, nachdem Sie sich mit dem Internet oder Ihrer Frau verbunden haben.
Alamjit Singh
4

Soweit ich Ihre Frage verstanden habe, haben Sie zwei verschiedene Windows-Installationen auf einer oder mehreren Festplatten und möchten nicht, dass der Windows-Loader im Weg steht oder beide Windows-Installationen verwaltet. Ich erinnere mich, dass es bei älteren Setups möglich war, den Windows-Kernel direkt von Grub aus zu starten (hier kann ich mich irren), aber ich konnte dies bei UEFI-Setups nicht tun. Das Vorhandensein von zwei unabhängigen Windows-Bootloader-Konfigurationen, die unabhängig von Grub aufgerufen werden können, sollte dem sehr nahe kommen, wonach Sie suchen.

Es kam mit Windows 8.1 installiert.

Ich gehe davon aus, dass dies ein UEFI-fähiger Computer ist.

  1. Überprüfen Sie, ob der Computer UEFI-fähig ist (ich werde meine Antwort entfernen, wenn dies nicht der Fall ist) und machen Sie sich mit den Unterschieden zwischen BIOS und UEFI vertraut ( verschiedene Startmodi, efibootmgr, verschiedene Partitionstabellen, EFI-Systempartition (ESP), EFI-Loader) …).
  2. Überprüfen Sie dann, ob alle Betriebssysteme im UEFI-Modus installiert sind und ob Sie eine GPT-Partitionstabelle haben. Sie können Windows verwenden, dismum Partitionen in einem neuen Partitionstabellenlayout zu sichern und wiederherzustellen, und die Eingabeaufforderung auf dem neuesten Windows-Installationsmedium verwenden, um den Bootloader neu zu installieren. Weitere Informationen hierzu finden Sie im nächsten Abschnitt.
    • Da Ihnen empfohlen wurde, verschiedene andere Tools zu testen, die Ihr Problem nicht beheben, müssen Sie diese Änderungen auf einen makellosen Zustand zurücksetzen, da dies sonst immer verwirrender wird. Das tut mir leid. :(
  3. Sie können meine Antwort aus Wie boote ich Windows 8 von einer alten MBR-Partition im UEFI-Modus über GRUB?
    • Diese Antwort installiert eine unabhängige Windows-Bootloader-Konfiguration bcdbootan einem anderen Ort, an dem Grub sie aufruft. Der Einfachheit halber habe ich die Windows-Root-Partition gewählt. Sie müssen dies für jede Windows-Installation tun , damit jede Windows-Installation ihre eigene hat und nur von selbst startet (entfernen Sie die anderen Einträge aus den einzelnen Windows-Startmenüs).
    • Denken Sie daran, dass Sie für jede Windows-Installation, in der Sie booten möchten, einen eigenen Eintrag erstellen /etc/grub.d/40_customund die Anweisungen und Erläuterungen zu UUIDs, Partitionen und Partitionstabellen befolgen müssen.
    • Deaktivieren Sie wahrscheinlich alle semi-intelligenten Funktionen, die unterschiedliche Betriebssysteme wie OS-prober in Grub ( GRUB_DISABLE_OS_PROBER) erkennen, oder beheben Sie Startprobleme mit Windows oder führen Sie eine Startreparatur durch (oder bereinigen Sie sie manuell).

NB: Ihre Anfrage war es, alle Betriebssysteme mit Grub verwalten zu können, aber mit UEFI wird der traditionelle Begriff "Dualboot" fast zu einer Fehlbezeichnung. UEFI ermöglicht die Koexistenz mehrerer Bootloader auf dem ESP, und Sie können auswählen, welcher Bootloader gestartet werden soll (wenn sie in der UEFI-Firmware registriert wurden und die Hersteller-Firmware nicht aus Gründen der Bevormundung wie nur das Starten von Windows funktioniert). Das Traurige dabei ist, dass nur sehr wenige Leute darüber nachdenken können, mehr als eine (unabhängige) Version von Windows , Linux oder eine Ubuntu- Version auf einem Computer zu installieren(oder eine Festplatte, die mit mehreren Computern verwendet wird und auf jedem Computer eine andere Installation derselben Betriebssystemversion startet). Das meiste davon ist bereits möglich, aber Mechanismen in Windows und Ubuntu (Fedora,…) überschreiben eindeutig das, was sich in ihrem Namespace befindet, unter der falschen Annahme, dass es nur einen geben kann.

(Ich starte Windows8 / 10, Ubuntu, Ubuntu LTS und Fedora auf einem Computer und habe ein paar Mal mit UEFI-Booten unter verschiedenen Anforderungen gearbeitet.)

LiveWireBT
quelle
1
Ich benutze kein Windows. Aber hat jemand versucht, / EFI / Windows nach / EFI / Windows10 und / oder / EFI / Windows8 zu kopieren und jedes BCD so zu bearbeiten, dass es nur für diese Version gilt? Und dann in UEFI erstellen Sie Entires für jeden. Wenn das von UEFI aus funktioniert, kann grub direkt mit jedem verketten.
Oldfred
@oldfred Genau darauf wollte ich im unteren Bereich hinweisen, und es kann sogar einen Parameter geben bcdboot, um ein anderes Zielverzeichnis anzugeben, aber ich bin mir nicht sicher. Das Chainloading der anderen EFI-Binärdateien von nur einem ESP vereinfacht 40_customund verringert die Fehleranfälligkeit erheblich. Da haben Sie Recht. Ich glaube, ich habe mich zu sehr auf Szenarien mit mehreren Festplatten konzentriert (in diesem Fall sollten Sie bcdboot immer noch anweisen können, Windows auf Festplatte2 über ESP auf Festplatte1 zu starten, glaube ich). m (
LiveWireBT
Der Computer ist UEFI-fähig, aber ich habe ehrlich gesagt keine Ahnung, dass wtf derzeit mit den Partitionen fertig ist. In der Schule war ein benutzerdefiniertes Windows 8-Image installiert, und obwohl UEFI und Secure Boot verwendet wurden (ich glaube, das BIOS ist derzeit so konfiguriert, dass sowohl UEFI- als auch Legacy-Starts möglich sind; ich erinnere mich, dass ich Secure Boot deaktiviert habe), wurde die Festplatte selbst mit formatiert MBR. Hier ein Screenshot: imgur.com/1vDS4jf (Ja, ich plane, bald die Größe einiger Partitionen zu ändern.) Ubuntu selbst (von grepping dmesg) wurde anscheinend nicht im EFI-Modus gestartet, aber Ich weiß nicht, ob GRUB selbst das kann
Hitechcomputergeek
@Hitechcomputergeek Der Screenshot zeigt eine msdos / MBR-Partitionstabelle mit einer erweiterten Partition und keiner EFI-Partition. Wie ich bereits sagte, sollten Sie GPT haben und Sie können dismfür die Windows-Partitionen verwenden.
LiveWireBT
als UEFI gestartet werden, dann aber andere Betriebssysteme als Nicht-UEFI starten oder so. UEFI ist verwirrend. EDIT: GRUB wird nicht als UEFI gestartet. Ich habe keine Ahnung, was mit dem ursprünglichen Windows passiert ist. Eigentlich denke ich mal darüber nach, ich denke es ist möglich, dass es KEINE UEFI war. Ich nahm an, dass dies daran lag, dass es aufgrund des Ruhezustands von Windows 8 grundsätzlich unmöglich war, in das BIOS zu gelangen, es sei denn, Sie haben es zuerst gestartet und dann auf "Neustart" geklickt. Ich musste das seit der Installation von Ubuntu (und GRUB) nicht mehr wiederholen.
Hitechcomputergeek
2

Melden Sie sich einfach bei Ihrem Ubuntu-Betriebssystem an und öffnen Sie ein Terminal:

sudo update-grub

neustarten

Nidhan
quelle