zondag 28 september 2025

Grub 2 dedicated menu met chainloading

Grub 2 als hoofdmenu  die op zijn beurt de bootloaders van windows of linux installaties laadt


boot een live linux CD

In deze tutorial ga ik uit van de volgende voorondersllingen. Vul de juiste UUID nummers in voor jouw configuratie:

Windows staat op /dev/nvme0n1p3 met een UUID van: F42A138F2A134DCC 
Linux Mint staat op /dev/nvme0n1p5 met een UUID van: c079e007-51a4-41b2-a736-16108b16a840 /boot/efi staat op /dev/nvme0n1p1 met een UUID van: F811-D6D1 
En de Grub2 menu bestanden staan op /dev/nvme0n1p9 met een UUID van CF5D-27BD

Stappenplan vanuit live-USB

Mount Linux Mint en EFI

sudo mount /dev/nvme0n1p5 /mnt
sudo mount /dev/nvme0n1p1 /mnt/boot/efi

Bind mounts voor chroot


for i in /dev /dev/pts /proc /sys /run; do sudo mount --bind $i /mnt$i; done

Chroot in Linux Mint


sudo chroot /mnt


GRUB opnieuw installeren (UEFI)


apt-get update
apt-get install --reinstall grub-efi-amd64 shim-signed
grub-install /dev/nvme0n1
update-grub
exit

Unmount alles en reboot

for i in /run /sys /proc /dev/pts /dev; do sudo umount /mnt$i; done
sudo umount /mnt/boot/efi
sudo umount /mnt
reboot

Dedicated GRUB-config (/dev/nvme0n1p9, UUID CF5D-27BD)

Maak of bewerk /grub/grub.cfg op die partitie en gebruik dit als basis:

# Dedicated GRUB menu op /dev/nvme0n1p9 (UUID CF5D-27BD)

# --- Algemene instellingen ---
set default=1      # 0 = Windows, 1 = Linux Mint EFI, 2 = Mint fallback
set timeout=30      # aantal seconden wachten voor automatisch starten
set gfxmode=auto
set gfxpayload=keep

### Windows 11 ###
menuentry "Windows 11" {
    insmod part_gpt
    insmod ntfs
    search --no-floppy --fs-uuid --set=root F42A138F2A134DCC
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

### Linux Mint via EFI (voorkeur) ###
menuentry "Linux Mint (eigen GRUB via EFI)" {
    insmod part_gpt
    insmod fat
    search --no-floppy --fs-uuid --set=root F811-D6D1
    chainloader /EFI/ubuntu/grubx64.efi
}

### Linux Mint via configfile (fallback) ###
menuentry "Linux Mint (fallback via configfile)" {
    insmod ext2
    search --no-floppy --fs-uuid --set=root c079e007-51a4-41b2-a736-16108b16a840
    configfile /boot/grub/grub.cfg
}

Na deze stappen heb je:

  • Een herstel van de Mint-GRUB in de EFI-partitie

  • Een dedicated GRUB-menu dat altijd kan doorstarten naar Mint én Windows, onafhankelijk van de volgorde van je schijven

Toelichting

  • Windows 11: start direct zijn eigen bootloader vanaf de EFI-partitie (F42A138F2A134DCC).

  • Mint via EFI: start de door jou herstelde GRUB in /EFI/ubuntu/grubx64.efi op de EFI-partitie (F811-D6D1).

  • Mint fallback: leest direct de GRUB-config uit je root-partitie (c079e007-51a4-41b2-a736-16108b16a840), handig als de EFI-entry niet werkt


Een testprocedure vanuit de GRUB-shell, waarmee je kan checken of de EFI-paden (/EFI/ubuntu/grubx64.efi) correct zijn, nog vóór je herstartdit is slim om te doen vóór je reboot, zodat je niet voor verrassingen komt te staan. Hiermee test je in de dedicated GRUB-shell of de verwijzingen naar je EFI- en Linux-partities kloppen.

Ga in de GRUB-shell

  • Tijdens het opstarten, als je jouw dedicated GRUB-menu ziet, druk op c om naar de command-line te gaan.

Controleer welke partities GRUB ziet

ls
Je krijgt iets als:

(hd0) (hd0,gpt1) (hd0,gpt3) (hd0,gpt5) (hd0,gpt9)

waarbij:
(hd0,gpt1) = jouw EFI-partitie (/dev/nvme0n1p1)
(hd0,gpt3) = Windows (/dev/nvme0n1p3)
(hd0,gpt5) = Linux Mint root (/dev/nvme0n1p5)
(hd0,gpt9) = dedicated GRUB-partitie (/dev/nvme0n1p9)

EFI-partitie controleren


ls (hd0,gpt1)/

Verwacht iets als:

EFI/

ls (hd0,gpt1)/EFI/

Verwacht:

Microsoft/ ubuntu/

ls (hd0,gpt1)/EFI/ubuntu/

verwacht: 
grubx64.efi shimx64.efi ...

Als grubx64.efi er staat, weet je dat de chainloader-entry naar /EFI/ubuntu/grubx64.efi werkt.

Linux Mint root controleren

ls (hd0,gpt5)/

Verwacht iets als:
bin/ boot/ etc/ home/ ...

ls (hd0,gpt5)/boot/grub/

Verwacht:
grub.cfg  x86_64-efi/ ...

Als grub.cfg er staat, weet je dat de fallback-configfile-entry gaat werken.

Windows controleren

ls (hd0,gpt1)/EFI/Microsoft/Boot/

Verwacht:
bootmgfw.efi ...

Als bootmgfw.efi er staat, weet je dat de Windows-entry goed zit.



Test-entry direct in de GRUB-shell

  1. Start de PC → als je het dedicated GRUB menu ziet, druk c (command line).

  2. Voer onderstaande commando’s in om Linux Mint via EFI te starten:

insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root F811-D6D1
chainloader /EFI/ubuntu/grubx64.efi
boot

F811-D6D1 is de UUID van jouw EFI-partitie (/dev/nvme0n1p1).
Als dit werkt, krijg je de Mint-GRUB te zien en kun je Mint starten.

Test-entry fallback (direct configfile)

Als je de EFI-loader niet vertrouwt, test ook de fallback via Mint’s root:

insmod ext2
search --no-floppy --fs-uuid --set=root c079e007-51a4-41b2-a736-16108b16a840
configfile /boot/grub/grub.cfg

c079e007-51a4-41b2-a736-16108b16a840 is de UUID van jouw Linux Mint root (/dev/nvme0n1p5).
Als dit werkt, wordt de Mint-GRUB-config direct geladen.

Test-entry Windows

Om zeker te zijn dat ook Windows werkt:

insmod part_gpt
insmod ntfs
search --no-floppy --fs-uuid --set=root F42A138F2A134DCC
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
boot

F42A138F2A134DCC is de UUID van jouw Windows EFI (/dev/nvme0n1p3).
Als al deze commando’s je netjes in Windows en Mint brengen, dan kun je met 100% zekerheid de vaste menuentries uit je grub.cfg gebruiken.


Definitieve minimale grub.cfg

set timeout=30
set default=1

### Linux Mint via EFI
menuentry "Linux Mint (EFI chainload)" {
    insmod part_gpt
    insmod fat
    search --no-floppy --fs-uuid --set=root F811-D6D1
    chainloader /EFI/ubuntu/grubx64.efi
}

### Linux Mint direct via configfile
menuentry "Linux Mint (direct configfile)" {
    insmod ext2
    search --no-floppy --fs-uuid --set=root c079e007-51a4-41b2-a736-16108b16a840
    configfile /boot/grub/grub.cfg
}

### Windows 11
menuentry "Windows 11" {
    insmod part_gpt
    insmod fat
    search --no-floppy --fs-uuid --set=root F811-D6D1
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

### GRUB Shell (fallback)
menuentry "GRUB command line (manual rescue)" {
    insmod normal
    terminal_input console
    terminal_output console
    echo "Handmatig GRUB commando’s uitvoeren. Typ 'help' voor lijst."
    grub_cmdline
}




Plaats dit bestand als /boot/grub/grub.cfg op je dedicated GRUB-partitie (/dev/nvme0n1p9, UUID CF5D-27BD).
Start je PC → je ziet nu 4 keuzes:

Linux Mint (EFI chainload) → roept Mint’s eigen EFI GRUB aan
Linux Mint (direct configfile) → laadt Mint’s /boot/grub/grub.cfg direct
Windows 11 → start Windows 11 via EFI
GRUB command line (manual rescue) → geeft je altijd een shell om te debuggen







Geen opmerkingen:

Een reactie posten

Opmerking: Alleen leden van deze blog kunnen een reactie posten.

Jellyfin server in docker op de QNAP nas

 Complete setup Jellyfin op QNAP Ik ga uit van de volgende zaken: de QNAP heeft een intel processor. in mijn geval een Intel celeron. En een...