Boot-Repair creó demasiadas entradas de menú grub para Windows

11

Recientemente instalé Ubuntu en arranque dual junto con Windows 10 en una computadora portátil HP. Inicialmente no pude iniciar Windows usando grub ya que seleccionar las opciones de Windows simplemente volvería a grub.

Luego realicé una reparación de arranque, y todas estas opciones adicionales aparecieron en el menú de grub.

Puedo abrir Windows usando la opción "Windows UEFI bootmgfw.efi", pero no usando la opción estándar de "Windows Boot Manager (en / dev / sda1).

¿Cómo reduzco estas entradas y por qué no puedo iniciar Windows usando la última opción?

Aquí hay una imagen de grub. La primera opción es Ubuntu:

grub - la primera opción es Ubuntu

Abhay
fuente
3
No es realmente un duplicado de eso. El mío no muestra las entradas del kernel de Linux. Además, no puedo iniciar Windows con la opción de administrador de inicio.
Abhay
1
Wow, eres rápido! Solo debes aceptar después de haber probado una respuesta, ¡pero esta seguramente te ayudará! ;-) Además, ¿mencioné que realmente debería hacer una copia de seguridad antes de comenzar o tener mucho cuidado con lo que elimine?
Fabby
1
Usar GRUB Customizer, como sugiere Fabby, es probable que ayude. En cuanto a por qué una opción funciona y otra no, tendríamos que ver el /boot/grub/grub.cfgarchivo desde su sistema. Mi sospecha es que la entrada que no funciona está diseñada para sistemas basados ​​en BIOS, pero la suya está claramente basada en EFI, por lo que una opción de modo de BIOS es un iniciador (literal).
Rod Smith

Respuestas:

5

Windows está fuera de tema aquí, pero la respuesta es que esta es una tecnología muy antigua y el sector de arranque tiene solo 512 bytes, por lo que no es lo suficientemente grande como para contener todo lo que nos gustaría.

Para agregar y eliminar fácilmente entradas de grub por su cuenta, por favor:

  1. Realice una copia de seguridad completa del sistema de toda su computadora, incluidos los demás sistemas operativos que utilizan CloneZilla Live
  2. No, no estaba bromeando! ¡Primero haga una copia de seguridad completa del sistema ! :-)
  3. Siempre que alguien le diga que instale un PPA sea ​​muy cauteloso, investigue si esto es lo que realmente quiere y solo luego continúe
  4. Instala grub-customizer ejecutando los siguientes comandos:

    sudo add-apt-repository ppa:danielrichter2007/grub-customizer
    sudo apt update
    sudo apt install grub-customizer
    
  5. Comience grub-customizery personalice a la perfección: ingrese la descripción de la imagen aquí

  6. Si tiene problemas serios, restaure la copia de seguridad de su sistema.

Fabby
fuente
1
Tienes un estilo delicado en las respuestas, e incluso en tus comentarios. Honestamente, realmente me pregunto por qué no todos marcan la respuesta correcta y útil como una respuesta, me frustra, pero nunca la pedí. Puedo copiar sus comentarios y pegarlos después de mis respuestas 😂
Haitham A. El-Ghareeb
Acabo de darle un plus en una grubpregunta diferente sobre cómo ocultar el menú de arranque. Sin embargo, en este caso "Estoy relativamente seguro", la respuesta que acabo de publicar en este hilo es la correcta. Me ha pasado dos veces y el método de reparación es perfecto cada vez.
WinEunuuchs2Unix
FTR He votado esta respuesta también. El comentario del año pasado puede haber sido mal interpretado.
WinEunuuchs2Unix
12

Cada vez que lo ejecuto boot-repairagrega 5 opciones adicionales de arranque de Windows a mi grubmenú principal que no funcionan. ¡En su caso ha agregado 11 entradas adicionales!

grub.cfg muestra el problema

El secreto se puede encontrar dentro del /etc/grub/grub.cfgarchivo:

### BEGIN /etc/grub.d/25_custom ###
    menuentry "Windows UEFI bootmgfw.efi" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

menuentry "Windows Boot UEFI loader" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/Boot/bkpbootx64.efi
}

menuentry "EFI/ubuntu/fwupx64.efi" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/ubuntu/fwupx64.efi
}

menuentry "Windows UEFI bootmgfw.efi sda1" {
search --fs-uuid --no-floppy --set=root 9478-B6E2
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

menuentry "Windows Boot UEFI loader sda1" {
search --fs-uuid --no-floppy --set=root 9478-B6E2
chainloader (${root})/EFI/Boot/bkpbootx64.efi
### END /etc/grub.d/25_custom ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (on /dev/nvme0n1p2)' --class windows --class os $menuentry_id_option 'osprober-efi-D656-F2A8' {
    savedefault
    insmod part_gpt
    insmod fat
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root  D656-F2A8
    else
      search --no-floppy --fs-uuid --set=root D656-F2A8
    fi
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
menuentry 'Windows Boot Manager (on /dev/sda1)' --class windows --class os $menuentry_id_option 'osprober-efi-9478-B6E2' {
    savedefault
    insmod part_gpt
    insmod fat
    set root='hd0,gpt1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  9478-B6E2
    else
      search --no-floppy --fs-uuid --set=root 9478-B6E2
    fi
    chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
### END /etc/grub.d/30_os-prober ###

La sección 30_os-probercontiene las grubentradas del menú de Windows "buenas" que desea conservar. La sección 25_customcontiene las entradas falsas creadas por boot-repair. No puede editar el archivo de configuración de grub porque simplemente se sobrescribirá la próxima vez que update-grubse ejecute.


La sección 25_customfue creada por Boot Repair

En mi sistema:

$ locate 25_custom
/boot/efi/boot-repair/log/20171111_224241/nvme0n1p5/25_custom
/boot/efi/boot-repair/log/20171208_030854/nvme0n1p5/25_custom
/etc/grub.d/25_custom

Eche un vistazo a las opciones adicionales de Windows que se configuraron (y no funcionan):

$ cat /boot/efi/boot-repair/log/20171208_030854/nvme0n1p5/25_custom
#!/bin/sh
exec tail -n +3 $0

menuentry "Windows UEFI bootmgfw.efi" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

menuentry "Windows Boot UEFI loader" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/Boot/bkpbootx64.efi
}

menuentry "EFI/ubuntu/fwupx64.efi" {
search --fs-uuid --no-floppy --set=root D656-F2A8
chainloader (${root})/EFI/ubuntu/fwupx64.efi
}

menuentry "Windows UEFI bootmgfw.efi sda1" {
search --fs-uuid --no-floppy --set=root 9478-B6E2
chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

menuentry "Windows Boot UEFI loader sda1" {
search --fs-uuid --no-floppy --set=root 9478-B6E2
chainloader (${root})/EFI/Boot/bkpbootx64.efi

Estas son las entradas erróneas boot-repaircreadas en las /etc/grub.d/25_customque posteriormente se compilaron \boot\grub\grub.cfg.


Cambio de reparación de arranque inverso a 25_custom

Use sudo -H gedit /etc/grub.d/25_customy elimine todo excepto las primeras tres líneas:

#!/bin/sh
exec tail -n +3 $0
  • El archivo ahora contiene dos líneas con texto y una línea en blanco.
  • Guarda el archivo.
  • Ejecutar sudo update-grub.
  • Reiniciar.

Ahora su menú ya no está lleno de cinco entradas de menú de Windows falsas que no funcionan.

Verifique que haya tres líneas en 25_custom

Ejecute este comando y verifique que 25_customtenga tres líneas:

$ wc /etc/grub.d/25_custom
      3       6      30
#     ^       ^       ^
#     |       |       +--- Number of characters
#     |       +----------- Number of words
#     +------------------- Number of lines

Agregué los #comentarios para descifrar wc(recuento de palabras) de salida.

WinEunuuchs2Unix
fuente
1
No puedo rechazar mi propia respuesta ni eliminarla, pero puedo votarlo ... :) Tenga en cuenta que una solución GUI siempre obtendrá más votos que una solución basada en texto, aunque la solución basada en texto generalmente es más exacta (= técnicamente mejor)
Fabby
1
Como acabo de recibir un voto positivo sobre mi respuesta, ¡me sorprende ver que su no-GUI ha acumulado más votos que el mío! ¡Buen trabajo!
Fabby
1
@Fabby Gracias. También les di un voto
positivo
Puede que tarde en preguntar, pero ... ¿por qué se necesita 25_custom en absoluto? ¿Por qué se necesitan esas 3 líneas?
poomerang
@poomerang Es el orden natural de un archivo de configuración vacío en el mundo de grub. Es más fácil conformarse que rebelarse.
WinEunuuchs2Unix