GRUB registrerer ikke Windows: Sådan løser du det

Har du problemer med at få Windows vist i GRUB-menuen efter installation af Linux? Læs videre for at finde en løsning og forstå årsagen bag problemet.
Hvis du for nylig har oprettet en dual boot-konfiguration med Windows og Linux, er du muligvis stødt på det samme problem som mig: Windows vises ikke som en mulighed i GRUB-menuen. Jeg vil vise dig, hvordan jeg løste det (og den tekniske årsag bag det).
For at være mere specifik installerede jeg CachyOS på en drev adskilt fra mit Windows 11-drev. Jeg har installeret forskellige Linux-distributioner på dette drev flere gange nu, og bootmenuen fungerer typisk bare. Min Windows 11-bootmulighed ville vise sig uden nogen indsats fra min side. I dette tilfælde tog det dog nogle ekstra skridt for at få det til at fungere.
Hvorfor Windows ikke vises i GRUB
Det viser sig, at GRUB-installationer i dag ofte kommer med os-prober deaktiveret, og det var grunden til, at Windows ikke dukkede op. Hvis du ikke er bekendt med det, er os-prober en pakke, der gør det muligt for GRUB automatisk at identificere andre operativsystemer installeret på din PC. Når det er deaktiveret, vil GRUB ikke kunne identificere Windows uden manuel indgriben.
Årsagen til dette er en mistillid til os-prober-pakken. Distribueringsudviklere, der pakker GRUB, har fravalgt os-prober som en sikkerhedsforanstaltning helt tilbage fra 2021, hvor Canonical-udvikler Julian Andres Klode beskrev deres begrundelse for at deaktivere os-prober i Ubuntu. De sagde: "os-prober er iboende usikkert, da det monterer alle partitioner på din disk ved hjælp af grub-mount for at tjekke dem for andre OS." Selvom der er lavet rettelser siden da, stoler mange simpelthen ikke på det.
Du kan nemt genaktivere os-prober, hvis du ønsker det. Om du bør eller ikke bør, afhænger dog af din situation. Jeg er ikke i position til at give cybersikkerhedsrådgivning uden at kende din trusselmodel, i det mindste.
For mig følte jeg mig tryg ved at genaktivere os-prober, da min forskning fortalte mig, at de fleste bekymringer var med Secure Boot-arbejdsomgange, og jeg allerede har deaktiveret Secure Boot på min PC. Igen, det er op til dig at beslutte, hvad den sikreste rute er. For den sag vil jeg vise dig to forskellige muligheder, hvoraf en undgår os-prober helt.
Nem mulighed: Aktiver os-prober
Hvis du føler dig sikker på at aktivere os-prober givet sikkerhedsmæssige implikationer, så kan du gøre det ved at redigere din standard GRUB-konfiguration. Typisk kan du finde konfigurationsfilen på /etc/default/grub, så redigering kræver, at du åbner den med din foretrukne teksteditor med administrative rettigheder. For at redigere den med nano, brugte jeg denne kommando:
sudo nano /etc/default/grubRul gennem filen, indtil du finder en linje, der siger #GRUB_DISABLE_OS_PROBER=false. Afkommentér den ved at slette # symbolet.
Det er alt, hvad du skal gøre for at aktivere os-prober, bortset fra at gemme filen. I nano gør du det ved at trykke på Ctrl+o efterfulgt af Enter for at bekræfte filnavnet, og så Ctrl+x for at afslutte nano. Glem ikke at opdatere GRUB, som jeg vil forklare senere.
En anden mulighed, der er mere sikker, men lidt mere involveret, er at springe over aktiveringen af os-prober og i stedet tilføje Windows til GRUB's bootmenu selv.
For at gøre dette skal du først vide, hvor dit Linux-system lokaliserer din Windows-installations EFI-partition. Du kan finde dette ved at køre følgende kommando, som viser alle diske og deres formål:
sudo dfisk -lJeg kan se, at der på mit Windows-drev er en enhed mærket "EFI System" beliggende på /dev/nvme0n1p1. Jeg vil kopiere den adresse og have den klar til den følgende blkid-kommando, som vil afsløre enhedens UUID, som vi har brug for til en brugerdefineret bootindgang:
sudo blkid /dev/nvme0n1p1Se efter UUID-værdien i citationstegn og skriv den ned. Derefter vil vi redigere GRUB's 40_custom fil, som gør det muligt for os at tilføje brugerdefinerede bootindgange til GRUB. Jeg bruger nano til dette, men du kan bruge din foretrukne teksteditor.
sudo nano /etc/grub.d/40_customIndsæt følgende kodeblok, og erstat your-Windows-EFI-partition-UUID med den UUID, du fandt.
menuentry "Windows" --class windows --class os { insmod ntfs search --no-floppy --set=root --fs-uuid your-Windows-EFI-partition-UUID.ntldr /bootmgr }
Bemærk også, at du kan ændre teksten inden for citationstegnene efter "menuentry" til hvad som helst, du vil have din Windows boot-entry til at vise.
Husk at opdatere GRUB
Efter at have lavet ændringer i din GRUB standard konfigurationsfil eller tilføjet en brugerdefineret boot-entry, må du ikke glemme at regenerere din GRUB konfiguration. Denne proces får faktisk dine ændringer til at træde i kraft. For at være ærlig glemte jeg selv dette, da jeg deaktiverede os-prober og blev forvirret, da Windows ikke dukkede op efter genstart.
For at gøre det nemt har nogle distributioner forudkonfigurerede aliaser til at opdatere GRUB, som update-grub. Du kan prøve at køre det først (som sudo), men hvis det ikke virker for dig, kan du altid opdatere det manuelt med denne kommando:
sudo grub-mkconfig -o /boot/grub/grub.cfgVent på, at regenereringen færdiggøres, og prøv så at genstarte. Du skulle se Windows samt eventuelle andre operativsystemer, du havde installeret, i GRUB boot-menuen.
Overvej at erstatte GRUB for at undgå problemer
Hvis du er bekymret for os-proberens sårbarheder og ikke vil håndtere manuel GRUB menu redigering, så anbefaler jeg at se på alternative boot managere.
For eksempel kan du erstatte GRUB med systemd-boot, selvom dets støtte til legacy BIOS (i modsætning til UEFI) er begrænset. Du kan også overveje Clover Bootloader, som oprindeligt blev designet til Hackintoshes og understøtter både UEFI og BIOS. En anden mulighed, der giver dig en oplevelse, der ligner macOS' boot manager, er rEFInd.

Skriv et svar