Spring naar inhoud

Schakelen tussen KDE Linux en een ander besturingssysteem

Als u KDE Linux naast een ander op Linux gebaseerd besturingssysteem hebt geïnstalleerd, kunt u ze doorgaans beide bereiken via het opstartmenu van de firmware van uw computer – het menu dat verschijnt wanneer u tijdens het opstarten op een toets zoals F12 drukt.

Dat werkt, maar het vereist dat u bij elke herstart binnen een seconde of twee een toets indrukt. Op deze pagina wordt beschreven hoe u voor elk systeem een ​​vermelding toevoegt aan het opstartmenu van het andere systeem, zodat u kunt wisselen via een menu dat op u wacht.

Deze pagina legt niet uit hoe u twee besturingssystemen naast elkaar installeert. Er wordt van uitgegaan dat u ze beide al hebt geïnstalleerd en werkend hebt, dat ze beide in UEFI-modus zijn geïnstalleerd en dat ze dezelfde EFI-systeempartitie (ESP) delen. Houd er rekening mee dat het installeren van KDE Linux op iets anders dan een volledige schijf onder bepaalde omstandigheden kan mislukken en nog geen officieel ondersteunde configuratie is.

Op welk systeem typ ik dit?

Elk van de onderstaande onderdelen is gemarkeerd met het systeem waarop de bijbehorende commando's moeten worden uitgevoerd, aangezien de twee niet uitwisselbaar zijn:

  • Op KDE Linux gebruiken beheerderscommando's run0, net als elders in deze documentatie.
  • Op het andere systeem wordt hoogstwaarschijnlijk sudo gebruikt, en verschillen de bestandslocaties per distributie.

Het uitvoeren van een commando op het verkeerde systeem zal in het beste geval niets doen.

Als het andere systeem ook systemd-boot gebruikt

Doorgaans hoeft er niets te worden ingesteld. systemd-boot vindt vermeldingen door op de ESP te kijken; als beide systemen naar dezelfde ESP schrijven, zouden ze dus beide al in hetzelfde menu moeten verschijnen.

Voer het volgende uit op KDE Linux of het andere systeem om dit te controleren:

bootctl list

Als het andere systeem GRUB gebruikt

GRUB en systemd-boot herkennen elkaar niet automatisch, dus moet er aan beide kanten een vermelding worden toegevoegd.

Voeg KDE Linux toe aan het GRUB-menu

Doe dit op het andere systeem, het systeem dat GRUB gebruikt.

Voeg het volgende toe aan /etc/grub.d/40_custom, onder de regels die er al staan:

menuentry "systemd-boot" --class systemd {
    insmod part_gpt
    insmod fat
    insmod chain
    search --no-floppy --file --set=root /EFI/systemd/systemd-bootx64.efi
    chainloader /EFI/systemd/systemd-bootx64.efi
}

Daarin hoeft niets te worden aangepast: bootctl installeert systemd-boot altijd op datzelfde pad, ongeacht de distributie waarop het is uitgevoerd.

Maak het bestand vervolgens uitvoerbaar en genereer de GRUB-configuratie opnieuw:

sudo chmod +x /etc/grub.d/40_custom
sudo grub-mkconfig -o /boot/grub/grub.cfg

Sommige distributies gebruiken hiervoor andere namen — bijvoorbeeld grub2-mkconfig en /boot/grub2/grub.cfg op Fedora en openSUSE. Controleer wat uw distributie gebruikt.

Voeg GRUB toe aan het menu van KDE Linux

Doe dit op KDE Linux.

Hiervoor moet u eerst weten waar GRUB zich op de ESP bevindt. Er is geen eenduidig ​​antwoord: elke distributie kiest daarvoor een eigen mapnaam, dus dit moet worden opgezocht in plaats van simpelweg gekopieerd.

Om het te vinden:

run0 find /boot -name 'grub*.efi' 2>/dev/null

Neem het resultaat en verwijder alles vóór /EFI. Als u /boot/EFI/debian/grubx64.efi krijgt, is het gewenste pad /EFI/debian/grubx64.efi.

Als Secure Boot is ingeschakeld, zoek dan in diezelfde map naar shimx64.efi en gebruik dat pad in plaats daarvan, indien aanwezig. Niet elke distributie levert dit bestand mee.

Open nu een tekstbewerker, maak een bestand genaamd grub.conf aan in uw thuismap en plaats hierin het volgende:

title    GRUB ([naam voor het andere OS komt hier])
efi      [pad naar het EFI-bestand komt hier, bijv. /EFI/debian/grubx64.efi]
sort-key zz-grub

Vervang het gedeelte in de eerste regel door de naam die u in het menu wilt gebruiken voor het item, en het gedeelte in de tweede regel door het pad dat u zojuist hebt opgezocht. Verplaats het bestand vervolgens naar de juiste locatie:

run0 mv ~/grub.conf /boot/loader/entries/grub.conf

bootctl list zou het nu moeten weergeven, en bij de volgende herstart verschijnt het onderaan het opstartmenu.

Notities

  • Als de standaardkeuze van elk menu de andere bootloader is, stel dan voor minstens één ervan een time-out in die niet op nul staat; anders blijf u tussen beide heen en weer springen, als in een deeltjesversneller. Vermijd dit dus.
  • Een gedeelde ESP bevat kernels voor beide systemen en kan daardoor volraken. Het is de moeite waard om df -h /boot te bekijken als updates beginnen te mislukken.
  • Bijwerken op een van beide systemen kunnen de opstartvolgorde van de firmware wijzigen of vermeldingen verwijderen. Als er onverwacht iets verandert, zijn efibootmgr -v en bootctl list goede plekken om te beginnen met zoeken.
  • Als de twee systemen aparte ESP's hebben, werkt de GRUB-kant mogelijk nog wel, maar de systemd-boot-kant doorgaans niet, aangezien deze alleen bestanden van zijn eigen ESP kan laden.

Artikel bijgedragen door onder de licentie CC-BY-4.0.