Comment paramétrer les menus de démarrage dans les partitions
à activer par le MBR

Auteur: Peter Starfinger, également auteur de la distribution Starbuntu basée sur Ubuntu

      Afin d'avoir dans le MBR (Master Boot Record) uniquement le menu de démarrage qui pointe sur les menus de démarrage dans les partitions,
      vous procédez comme suit:

  1. Copiez dans votre partition de démarrage active /etc/grub.d vers /etc/grub.d.mbr et vers /etc/grub.d.part
  2. Supprimez /etc/grub.d
  3. Créez un lien symbolique /etc/grub.d de /etc/grub.d.part
  4. cd /etc/grub.d.part
  5. Modifiez le script 40_custom:

    menuentry "" { set root= } # Ligne vide!
    #
    menuentry 'Retour au menu de démarrage sur /dev/sda' {
    chainloader (hd0)+1
    }
    #
    menuentry "" { set root= }
    #

    Peut-être ajoutez encore plus d'entrées de menu, par ex. pour TinyCore:

    menuentry "TinyCore-16.2 sur /dev/sda1" {
    recordfail
    insmod ext2
    set root='(hd0,1)'
    set gfxmode=1366x768
    linux /opt/tce/boot/vmlinuz loglevel=3 tce=sda1 quiet lang=de_DE.UTF-8 kmap=qwertz/de-latin1 tz=GST-2
    initrd /opt/tce/boot/core.gz
    }

  6. Définissez dans /etc/default/grub GRUB_DISABLE_OS_PROBER sur true

  7. sudo grub-mkconfig -o /boot/grub/grub.cfg
  8. sudo grub-install --force --boot-directory=/boot /dev/sda1

  9. Redémarrez votre ordinateur, démarrez une autre partition, par ex. /dev/sda2

  10. cd /etc/grub.d
  11. Modifiez le script 40_custom:

    menuentry "" { set root= } # Ligne vide!
    #
    menuentry 'Retour au menu de démarrage sur /dev/sda' {
    chainloader (hd0)+1
    }
    #
    menuentry "" { set root= }
    #

    Peut-être ajoutez encore plus d'entrées de menu, par ex. pour TinyCore:

    menuentry "TinyCore-16.2 sur /dev/sda2" {
    recordfail
    insmod ext2
    set root='(hd0,2)'
    set gfxmode=1366x768
    linux /opt/tce/boot/vmlinuz loglevel=3 tce=sda2 quiet lang=de_DE.UTF-8 kmap=qwertz/de-latin1 tz=GST-2
    initrd /opt/tce/boot/core.gz
    }

  12. Définissez dans /etc/default/grub GRUB_DISABLE_OS_PROBER sur true

  13. sudo grub-mkconfig -o /boot/grub/grub.cfg
  14. sudo grub-install --force --boot-directory=/boot /dev/sda2

  15. Redémarrez votre ordinateur, démarrez la partition de démarrage, par ex. /dev/sda1

  16. Si ce n’est pas encore fait, exécutez d’abord les étapes précédentes de cette instruction.

  17. Supprimez le lien symbolique /etc/grub.d

  18. Créez le lien symbolique /etc/grub.d de /etc/grub.d.mbr
  19. cd /etc/grub.d.mbr
  20. Supprimez les scripts 10_linux, 20_linux_xen, 30_os-prober et 30_uefi-firmware
  21. Modifiez le script 40_custom:

    menuentry 'Lancer le menu de démarrage sur /dev/sda1 (<Étiquette>)' {
    chainloader (hd0,1)+1
    }
    #
    menuentry 'Lancer le menu de démarrage sur /dev/sda2 (<Étiquette>)' {
    chainloader (hd0,2)+1
    }
    #
    menuentry "" { set root= } # Ligne vide!
    #

    Peut-être ajoutez encore plus d'entrées de menu, par ex. pour images ISO

  22. Copiez le dossier /boot/grub dans /boot-mbr/grub (sans les noyaux Linux)

  23. sudo grub-mkconfig -o /boot-mbr/grub/grub.cfg
  24. sudo grub-install --boot-directory=/boot-mbr /dev/sda

    Bonne chance!