GRUB erkennt Windows nicht: So beheben Sie das

Der Artikel erklärt, warum Windows in einer Dual-Boot-Konfiguration mit Linux nicht im GRUB-Menü angezeigt wird und bietet Lösungen zur Aktivierung der Anzeige oder zur manuellen Integration von Windows.
Wenn Sie kürzlich eine Dual-Boot-Konfiguration mit Windows und Linux eingerichtet haben, sind Sie möglicherweise auf dasselbe Problem gestoßen wie ich: Windows wird im GRUB-Menü nicht angezeigt. Ich zeige Ihnen, wie ich es gelöst habe (und den technischen Grund dafür).
Genauer gesagt, ich habe CachyOS auf einer anderen Festplatte als meiner Windows 11-Festplatte installiert. Ich habe bereits mehrere Linux-Distributionen auf dieser Festplatte installiert, und das Bootmenü funktioniert normalerweise einfach. Meine Windows 11-Boot-Option wurde ohne großen Aufwand angezeigt. In diesem Fall waren jedoch ein paar zusätzliche Schritte erforderlich, um es zum Laufen zu bringen.
Warum Windows nicht im GRUB angezeigt wird
Wie sich herausstellt, werden GRUB-Installationen heutzutage oft mit deaktiviertem os-prober geliefert, und das war der Grund, warum Windows nicht angezeigt wurde. Falls Sie es nicht wissen, os-prober ist ein Paket, das GRUB ermöglicht, andere installierte Betriebssysteme auf Ihrem PC automatisch zu erkennen. Wenn es deaktiviert ist, kann GRUB Windows ohne manuelle Intervention nicht identifizieren.
Der Grund dafür ist das Misstrauen gegenüber dem Paket os-prober. Distribution-Entwickler, die GRUB paketieren, haben sich entschieden, os-prober als Sicherheitsvorkehrung seit 2021 zu deaktivieren, als Canonical-Entwickler Julian Andres Klode ihre Gründe für die Deaktivierung von os-prober in Ubuntu darlegten. Sie erklärten: "os-prober ist von Natur aus unsicher, da es alle Partitionen auf Ihrer Festplatte mit grub-mount einbindet, um sie auf andere Betriebssysteme zu überprüfen." Auch wenn seitdem Patches erstellt wurden, vertrauen viele einfach nicht darauf.
Sie können os-prober jedoch leicht wieder aktivieren, wenn Sie möchten. Ob Sie es tun sollten oder nicht, hängt von Ihrer Situation ab. Ich bin nicht im Geschäft, Cybersecurity-Ratschläge zu geben, ohne Ihr Bedrohungsmodell zu kennen, zumindest nicht.
Für mich fühlte ich mich wohl dabei, os-prober wieder zu aktivieren, da meine Recherchen ergaben, dass die meisten Bedenken in Bezug auf Secure Boot umgangen wurden, und ich habe Secure Boot bereits auf meinem PC deaktiviert. Es liegt erneut an Ihnen, zu entscheiden, welcher Weg der sicherste ist. In diesem Sinne zeige ich Ihnen zwei verschiedene Optionen, von denen eine os-prober ganz umgeht.
Einfache Option: os-prober aktivieren
Wenn Sie sich sicher fühlen, os-prober aktivieren zu wollen, angesichts der Sicherheitsimplikationen, können Sie dies tun, indem Sie Ihre standardmäßige GRUB-Konfiguration bearbeiten. In der Regel finden Sie die Konfigurationsdatei unter /etc/default/grub. Um sie zu bearbeiten, müssen Sie sie mit dem Texteditor Ihrer Wahl und administrativem Zugriff öffnen. Um sie mit nano zu bearbeiten, verwendete ich diesen Befehl:
sudo nano /etc/default/grub
Scrollen Sie durch die Datei, bis Sie eine Zeile finden, die #GRUB_DISABLE_OS_PROBER=false lautet. Kommentieren Sie sie aus, indem Sie das #-Symbol löschen.
Das ist alles, was Sie tun müssen, um os-prober zu aktivieren, abgesehen vom Speichern der Datei. In nano tun Sie dies, indem Sie Ctrl+o drücken, gefolgt von Enter, um den Dateinamen zu bestätigen, und dann Ctrl+x, um nano zu verlassen. Vergessen Sie nicht, GRUB zu aktualisieren, wie ich später erklären werde.
Eine weitere Option, die sicherer, aber etwas aufwendiger ist, besteht darin, os-prober zu überspringen und Windows selbst zum GRUB-Bootmenü hinzuzufügen.
Um dies zu tun, müssen Sie zuerst wissen, wo Ihr Linux-System die EFI-Partition Ihrer Windows-Installation findet. Dies können Sie herausfinden, indem Sie den folgenden Befehl ausführen, der alle Festplatten und deren Zwecke auflistet:
sudo dfisk -l
Ich sehe, dass auf meinem Windows-Laufwerk ein Gerät mit der Bezeichnung "EFI System" unter /dev/nvme0n1p1 zu finden ist. Ich werde diese Adresse kopieren und sie für den folgenden blkid-Befehl bereithalten, der die UUID des Geräts offenbart, die wir für einen benutzerdefinierten Boot-Eintrag benötigen:
sudo blkid /dev/nvme0n1p1
Suchen Sie nach dem UUID-Wert in Anführungszeichen und notieren Sie ihn. Dann werden wir die Datei 40_custom von GRUB bearbeiten, die es uns ermöglicht, benutzerdefinierte Boot-Einträge zu GRUB hinzuzufügen. Ich benutze nano dafür, aber Sie können Ihren bevorzugten Texteditor verwenden.
sudo nano /etc/grub.d/40_custom
Fügen Sie den folgenden Codeblock ein und ersetzen Sie your-Windows-EFI-partition-UUID durch die UUID, die Sie gefunden haben.
menuentry "Windows" --class windows --class os { insmod ntfs search --no-floppy --set=root --fs-uuid your-Windows-EFI-partition-UUID.
ntldr /bootmgr }
Beachten Sie, dass Sie den Text in den Anführungszeichen hinter "menuentry" nach Belieben ändern können, um den Windows-Starteintrag anzupassen.
Denken Sie daran, GRUB zu aktualisieren
Nachdem Sie Änderungen an Ihrer GRUB-Standardkonfigurationsdatei vorgenommen oder einen benutzerdefinierten Booteintrag hinzugefügt haben, vergessen Sie nicht, Ihre GRUB-Konfiguration neu zu generieren. Dieser Prozess sorgt dafür, dass Ihre Änderungen wirksam werden. Um ehrlich zu sein, habe ich das selbst vergessen, als ich os-prober deaktivierte, und war verwirrt, als Windows nach dem Neustart nicht erschien.
Einige Distributionen haben vorkonfigurierte Aliase zur Aktualisierung von GRUB, wie update-grub. Sie können zunächst versuchen, dies (als sudo) auszuführen. Wenn es nicht funktioniert, können Sie es manuell mit folgendem Befehl aktualisieren:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Warten Sie, bis die Regeneration abgeschlossen ist, und versuchen Sie dann, neu zu booten. Sie sollten Windows sowie alle anderen installierten Betriebssysteme im GRUB-Bootmenü sehen.
Erwägen Sie, GRUB zu ersetzen, um Probleme zu vermeiden
Wenn Sie sich um die Sicherheitslücken von os-prober sorgen und nicht manuell das GRUB-Menü bearbeiten möchten, empfehle ich, alternative Boot-Manager in Betracht zu ziehen.
Sie könnten zum Beispiel GRUB durch systemd-boot ersetzen, obwohl die Unterstützung für Legacy-BIOS (im Gegensatz zu UEFI) mangelhaft ist. Sie könnten auch Clover Bootloader in Betracht ziehen, der ursprünglich für Hackintoshes entwickelt wurde und sowohl UEFI als auch BIOS unterstützt. Eine weitere Option, die Ihnen ein ähnliches Erlebnis wie der Boot-Manager von macOS bietet, ist rEFInd.
Bist du neugierig auf weitere Artikel wie GRUB erkennt Windows nicht: So beheben Sie das? Entdecke spannende Inhalte in der Kategorie Linux.

Schreibe einen Kommentar