Wie binde ich meine Windows-Partition in Grub ein?
Ich habe es gewagt und Linux Mint 22 auf eine meiner SSDs installiert, will aber im Bootmanager gefragt werden, welches Betriebssystem ich gerne booten will. Bislang hämmer ich jedesmal auf meiner F11-Taste herum bis mich mein Bios fragt, was es denn sein soll - aber ich denke, das geht geschickter.
Ich habe den Menü-Eintrag von diesem Thread hier angelegt:
und der Menü-Eintrag erscheint auch, aber vermutlich habe ich nur ein Verständnisproblem. Die Windows-Partition ist laut Ordner-Ansicht unter /dev/sdb2 mountbar, also ging ich davon aus, dass ich bei das Beispiel aus dem Forum so abändere:
menuentry "Windows" {
insmod part_msdos
insmod ntfs
set root='(sdb2,msdos1)'
chainloader +1
}
Das funktioniert aber nicht, Grub zeigt mir beim Booten den Fehler an, dass die Platte nicht gefunden werden kann. Was habe ich falsch gemacht?
3 Antworten
Wie bmke schon erörtert hat, gibt es den os-prober, der die die geeigneten Menüeinträge generieren kann. Der wird normalerweise (wenn installiert und aktiv) beim Aufruf von grub-config mit ausgeführt.
Für die dreckigen Details bei Mint würde ich Dir die entsprechende Doku/Community ans Herz legen.
Schau insbesondere mal in
/etc/Default/grub
ob dort ein Eintrag zu os-prober ist.
Spuckt os-prober denn überhaupt etwas aus, wenn Du ihn gezielt ausführst?
Wie dem auch sei, wenn Du einen eigenen manuellen Menüeintrag machen willst, den Bootsektor des Dateisystems zu chainloaden geht typischerweise, wenn Windows im LEgacy Mode mit Boot via MBR etc. installiert wurde. BEi UEFI solltest Du den Bootloader Chainloaden, das ganze sieht grob so aus:
insmod part_gpt
insmod chain
set root=(hd0,gpt1)
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
boot
Letztlich muß das an die vorhandenen Rahmenbedingungen angepasst werden.
Unklare Fragestellung, bitte Infos im OP ergänzen:
Ist im UEFI als Bootmodus UEFI oder CSM eingestellt?
Hast du evtl. dieses Problem? https://www.gutefrage.net/diskussion/achtung-linux-boot-medien-updaten-gehen-nicht-mehr-wegen-windows-update
wiki.ubuntuusers.de hat auch viele Infos zu diesen Dingen, auch wenn's nicht deine Distri ist und hier und da etwas anders sein kann.
Hab mich aber auch schon wg. kaputtem UEFI wahnsinnig geärgert, weil es nie gescheit lieft.
Noch eine dumme Frage: Wenn du unter Windows im Startmenü beim Klick auf "neu starten" Shift festhältst, kommt dann nicht das Menü, wo du andere Geräte booten kannst? Bei mir erscheint dann "Ubuntu" (hab Kubuntu) und dann kommt Grub.
notting
[...] Ist im UEFI als Bootmodus UEFI oder CSM eingestellt? [...]
erm, wo kann ich das sehen?
Dein Beitrag beschreibt das Gegenteil: "Windows bootet, Linux aber nicht". Bei mir ist es anders herum: Linux findet das installerte Windows nicht. Und ich will Grub jetzt lediglich mit dem Kopf auf die Tischkante stoßen und ihm zeigen: "DAAAA isses doch!"
Das mit dem Neu starten probiere ich gleich mal. Da ich nur einen Rechner habe, kann ich nur eins zur Zeit ausprobieren.
"Wenn du unter Windows im Startmenü beim Klick auf "neu starten" Shift festhältst" -> Dann kommt ein Menü, das mich fragt, ob ich mit Windows 10 weiter machen will.
Meintest du mit dem "CSM" die Einstellung im BIOS? Da ist eingestellt "LEGACY+UEFA", also so wie's sein sollte, oder? Defaultmäßig soll ja auch Windows gebootet werden (noch ;)) darum gehe ich jedesmal wenn ich Linux booten will mit F11 beim Rechnerstart ins Bootmenü des BIOS und wähle dort mein Linux aus. Finde das allerdings unkomfortabel und würde wetten, das geht eleganter.
Theoretisch kann ich die Linux-Platte auch in den Windows-Bootmanager eintragen, zu dem Zeitpunkt ist mir das ziemlich hupe, welcher Bootmanager mich um eine Auswahl bittet. Aber wenn ich wie in einigen Tutorials beschrieben mit msconfig auf den Start Tab gehe, kann ich da nix hinzufügen, das Ding scheint readonly zu sein.
"Wenn du unter Windows im Startmenü beim Klick auf "neu starten" Shift festhältst" -> Dann kommt ein Menü, das mich fragt, ob ich mit Windows 10 weiter machen will.
Und da gibt's wie gesagt einen Menüpunkt, um von anderen Geräten zu booten. Und bei mir gibt's da "Ubuntu" (kann anders heißen, wenn du kein Ubuntu(-Derivat) verwendest).
Ja, CSM ("Vorfahre des UEFI-Boot-Modus) wird manchmal auch als Legacy bezeichnet.
Als Plan B mal z. B. https://www.wintotal.de/tipp/bootmanager-unter-windows-mit-bcdedit-bearbeiten/ anschauen bzw. besser auf Linux-Seiten nach dem Stichwort suchen.
notting
Dein Problem ist dieses hier:
https://www.omgubuntu.co.uk/2021/12/grub-doesnt-detect-windows-linux-distros-fix
Bei den meisten auf Debian basierenden Distros ist der os-prober von grub standardmäßig deaktiviert. Wer, so wie ich, nur ein BS nutzt, merkt das erst mal gar nicht.
Ach, ich füge noch hinzu: vielleicht ist das ja der falsche Ansatz. Sooo oft passiert es ja nicht, dass ich auf diesem Rechner ein neues Betriebssystem installiere. Gibt's da anstatt diesem nicht wirklich funktionierendem Autodetect-Zeugs nicht einfach virtuell die Möglichkeit zu sagen: "DAAAAA findest du das andere Betriebssystem. [Kopf auf Tischplatte] und jetzt zack zack, von da aus booten!"
Mit anderen Worten: die Windows-Platte befindet sich laut /dev/sdb1 ("System-reserviert", da gibt's auch nen Boot-Ordner) und /dev/sdb2 (das ist mein normales C-Laufwerk).
Den Menü-Eintrag in Grub habe ich ja auch schon (Code siehe oben), nur wenn ich den aussuche, findet der ihn nicht. Nun frage ich mich natürlich: muss ich hier nicht einfach den richtigen Pfad auswählen und durch bin ich mit der Nummer?
Ich meine, offensichtlich ist
(sdb2,msdos1)
ja falsch. Nur, was wäre dann richtig?
Du könntest Dir als erstes mal alle Platten und Partitionen auflisten lassen. Das geht mit
lsblk
Da ich nur eine Platte habe, sieht das Ergebnis bei mir so aus:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 238,5G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 29,3G 0 part /
├─sda3 8:3 0 204,7G 0 part /home
└─sda4 8:4 0 4G 0 part [SWAP]
Mit
man lsblk
erfährst Du mehr über dieses nette Tool.
... und dann habe ich da noch folgendes gefunden:
However, I finally solved the problem by getting the Windows installer and running the "fix boot problems" tool (or something similar, do not remember the exact name). To my surprise, it did not messed up GRUB... I do not know what it did, but now os-prober correctly sees Windows, the GRUB entry is generated and everything works.
Ja, so weit hatte ich auch schon gelesen, allerdings ist die entsprechende Zeile schon in der /etc/default/grub eingetragen:
GRUB_DISABLE_OS_PROBER=false
os-prober habe ich installiert, der erzeugt aber keinen Output, wenn ich ihn in der Konsole aufrufe. Aktualisiere ich mit update-grub, ist das hier der Output:
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/50_linuxmint.cfg'
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-6.8.0-41-generic
Found initrd image: /boot/initrd.img-6.8.0-41-generic
Found linux image: /boot/vmlinuz-6.8.0-38-generic
Found initrd image: /boot/initrd.img-6.8.0-38-generic
Warning: os-prober will be executed to detect other bootable partitions.
Its output will be used to detect bootable binaries on them and create new boot entries.
Adding boot menu entry for UEFI Firmware Settings ...
done
Wie es scheint, sieht OS-Probe das Windows auf der anderen Platte immer noch nicht.
Ja, der Eintrag GRUB_DISABLE_OS_PROBER=false ist da, OS Prober ist installiert, aber grub ignoriert die Windows-Platte beharrlich.