Cómo hacer que los menús de arranque de partición sean accesibles desde MBR

Autor: Peter Starfinger, también autor de la distribución basada en Ubuntu Starbuntu

      Para tener solo el menú de inicio en el MBR (Master Boot Record), que se refiere a los menús de inicio en las particiones, haga lo siguiente:

  1. En la partición de arranque activa, copie /etc/grub.d a /etc/grub.d.mbr y a /etc/grub.d.part
  2. Elimine /etc/grub.d
  3. Cree el enlace /etc/grub.d a /etc/grub.d.part
  4. cd /etc/grub.d.part
  5. Edite el script 40_custom:

    menuentry "" { set root= } # ¡línea vacía!
    #
    menuentry 'Volver al menú de inicio en /dev/sda' {
    chainloader (hd0)+1

    #
    menuentry "" {set root= }
    #

    Puede agregar más entradas de menú, p. para TinyCore:

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

  6. Establezca GRUB_DISABLE_OS_PROBER en true en /etc/default/grub

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

  9. Reinicie la computadora, inicie otra partición, p. /dev/sda2

  10. cd /etc/grub.d
  11. Editar el script 40_custom:

    menuentry "" { set root= } # ¡línea vacía!
    #
    menuentry 'Volver al menú de inicio en /dev/sda' {
    chainloader (hd0)+1

    #
    menuentry "" {set root= }
    #

    Puede agregar más entradas de menú, p. para TinyCore:

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

  12. Establezca GRUB_DISABLE_OS_PROBER en true en /etc/default/grub

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

  15. Reinicie la computadora, inicie la partición de inicio, p. /dev/sda1

  16. Si aún no lo ha hecho, siga primero los pasos anteriores de esta guía

  17. Elimine el enlace /etc/grub.d

  18. Cree el enlace /etc/grub.d a /etc/grub.d.mbr
  19. cd /etc/grub.d.mbr
  20. Elimine los scripts 10_linux, 20_linux_xen, 30_os-prober y 30_uefi-firmware
  21. Editar el script 40_custom:

    menuentry 'Iniciar el menú de arranque en /dev/sda1 (<nombre>)' {
    chainloader (hd0,1)+1

    #
    menuentry 'Iniciar el menú de arranque en /dev/sda2 (<nombre>)' {
    chainloader (hd0,2)+1

    #
    menuentry "" { set root = } # ¡línea vacía!
    #

    Puede agregar más entradas de menú, p. para imágenes iso

  22. Copie la carpeta /boot/grub en /boot-mbr/grub (sin kernels de Linux)

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

  ¡Buena suerte!