Come rendere accessibili i menu di avvio delle partizioni dall'MBR

Autore: Peter Starfinger, anche autore della distribuzione basata su Ubuntu Starbuntu

      Per avere solo il menu di avvio nell'MBR (Master Boot Record), che fa riferimento ai menu di avvio nelle partizioni, procedi come segue:

  1. Nella partizione di avvio attiva, copia /etc/grub.d in /etc/grub.d.mbr e in /etc/grub.d.part
  2. Elimina /etc/grub.d
  3. Crea collegamento /etc/grub.d da /etc/grub.d.part
  4. cd /etc/grub.d.part
  5. Modifica lo script 40_custom:

    menuentry "" { set root= } # riga vuota!
    #
    menuentry 'Torna al menu di avvio su /dev/sda' {
    chainloader (hd0)+1

    #
    menuentry "" { set root= }
    #

    Potresti aggiungere più menuentry, ad es. per TinyCore:

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

  6. Imposta GRUB_DISABLE_OS_PROBER su true in /etc/default/grub

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

  9. Riavvia il computer, avvia un'altra partizione, ad es. /dev/sda2

  10. cd /etc/grub.d
  11. Modifica lo script 40_custom:

    menuentry "" { set root= } # riga vuota!
    #
    menuentry 'Torna al menu di avvio su /dev/sda' {
    chainloader (hd0)+1

    #
    menuentry "" { set root= }
    #

    Potresti aggiungere più menuentry, ad es. per TinyCore:

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

  12. Imposta GRUB_DISABLE_OS_PROBER su true in /etc/default/grub

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

  15. Riavvia il computer, avvia la partizione di avvio, ad es. /dev/sda1

  16. Se non l'hai già fatto, segui prima i passaggi precedenti in questa guida

  17. Elimina il collegamento /etc/grub.d

  18. Crea collegamento /etc/grub.d da /etc/grub.d.mbr
  19. cd /etc/grub.d.mbr
  20. Elimina gli script 10_linux, 20_linux_xen, 30_os-prober e 30_uefi-firmware
  21. Modifica lo script 40_custom:

    menuentry 'Avvia il menu di avvio su /dev/sda1 (<denominazione>)' {
    chainloader (hd0,1)+1

    #
    menuentry 'Avvia il menu di avvio su /dev/sda2 (<denominazione>)' {
    chainloader (hd0,2)+1

    #
    menuentry "" { set root= } # riga vuota!
    #

    Potresti aggiungere più menuentry, ad es. per immagini iso

  22. Copia la cartella /boot/grub in /boot-mbr/grub (senza i kernel Linux)

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

  Buona fortuna!