Boot-Repair a créé trop d'entrées de menu grub pour Windows

11

J'ai récemment installé Ubuntu en double démarrage avec Windows 10 sur un ordinateur portable HP. Initialement, je n'ai pas pu démarrer Windows à l'aide de grub, car la sélection des options Windows ne ferait que revenir en boucle à grub.

Ensuite, j'ai effectué une réparation de démarrage, et toutes ces options supplémentaires sont apparues dans le menu grub.

Je peux ouvrir Windows en utilisant l'option "Windows UEFI bootmgfw.efi", mais pas en utilisant l'option standard de "Windows Boot Manager (on / dev / sda1).

Comment réduire ces entrées et pourquoi ne puis-je pas démarrer Windows en utilisant cette dernière option?

Voici une image de grub. La première option est Ubuntu:

grub - la 1ère option est Ubuntu

Abhay
la source
3
Ce n'est pas vraiment un doublon de cela. Le mien n'affiche pas les entrées du noyau Linux. Plus le point que je ne peux pas démarrer Windows en utilisant l'option du gestionnaire de démarrage.
Abhay
1
Wow, tu es rapide! Vous ne devriez accepter qu'après avoir essayé une réponse, mais celle-ci vous aidera sûrement !!! ;-) De plus, ai-je mentionné que vous devriez vraiment faire une sauvegarde avant de commencer ou faire très attention à ce que vous supprimez?!
Fabby
1
L'utilisation de GRUB Customizer, comme le suggère Fabby, est susceptible de vous aider. Quant à savoir pourquoi une option fonctionne et une autre ne fonctionne pas, nous aurions besoin de voir le /boot/grub/grub.cfgfichier de votre système. Je soupçonne que l'entrée non fonctionnelle est conçue pour les systèmes basés sur le BIOS, mais la vôtre est clairement basée sur EFI, donc une option en mode BIOS est un non-démarreur (littéral).
Rod Smith

Réponses:

5

Windows est hors sujet ici, mais la réponse est qu'il s'agit d'une technologie très ancienne et que le secteur de démarrage n'est que de 512 octets, il n'est donc pas assez grand pour contenir tout ce que nous aimerions qu'il contienne.

Pour ajouter et supprimer facilement des entrées de grub par vous-même, veuillez:

  1. Faites une sauvegarde complète du système de tout votre ordinateur, y compris les autres systèmes d'exploitation à l'aide de CloneZilla Live
  2. Non, je ne plaisantais pas! Faites d'abord une sauvegarde complète du système ! :-)
  3. Chaque fois que quelqu'un vous dit d' installer un PPA, soyez très prudent, faites vos propres recherches si c'est ce que vous voulez vraiment et ensuite continuez
  4. Installez grub-customizer en exécutant les commandes suivantes:

    sudo add-apt-repository ppa:danielrichter2007/grub-customizer
    sudo apt update
    sudo apt install grub-customizer
    
  5. Démarrez grub-customizeret personnalisez l'enfer: entrez la description de l'image ici

  6. Si vous rencontrez de graves problèmes, restaurez la sauvegarde de votre système.

Fabby
la source
1
Vous avez un style délicat dans les réponses, et même dans vos commentaires. Honnêtement, je me demande vraiment pourquoi tout le monde ne marque pas la réponse correcte et utile comme une réponse, me frustre mais je ne l'ai jamais demandé. Je peux copier vos commentaires et les coller après mes réponses 😂
Haitham A. El-Ghareeb
Je viens de vous donner un plus sur une autre grubquestion sur le masquage du menu de démarrage. Cependant dans ce cas "je suis relativement certain" la réponse que je viens de poster sur ce fil est la bonne. Cela m'est arrivé deux fois maintenant et la méthode de réparation est impeccable à chaque fois.
WinEunuuchs2Unix
FTR J'ai également voté pour cette réponse. Le commentaire de l'an dernier a peut-être été mal interprété.
WinEunuuchs2Unix
12

Chaque fois que je l'exécute, boot-repairil ajoute 5 options de démarrage Windows supplémentaires à mon grubmenu principal qui ne fonctionnent pas. Dans votre cas, il a ajouté 11 entrées supplémentaires!

grub.cfg montre le problème

Le secret se trouve dans le /etc/grub/grub.cfgfichier:

### 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 section 30_os-probercontient les «bonnes» grubentrées du menu Windows que vous souhaitez conserver. La section 25_customcontient les fausses entrées créées par boot-repair. Vous ne pouvez pas modifier le fichier de configuration grub car il sera simplement écrasé lors de la prochaine update-grubexécution.


La section a 25_customété créée par Boot Repair

Sur mon système:

$ 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

Jetez un œil aux options Windows supplémentaires qui ont été configurées (et ne fonctionnent pas):

$ 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

Ce sont les entrées erronées boot-repaircréées dans /etc/grub.d/25_customqui ont ensuite été compilées \boot\grub\grub.cfg.


Modification de Reverse Boot Repair en 25_custom

Utilisez sudo -H gedit /etc/grub.d/25_customet supprimez tout sauf les trois premières lignes:

#!/bin/sh
exec tail -n +3 $0
  • Le fichier contient maintenant deux lignes avec du texte et une ligne vierge.
  • Enregistrez le fichier.
  • Courez sudo update-grub.
  • Redémarrez.

Maintenant, votre menu n'est plus gonflé avec cinq fausses entrées de menu Windows qui ne fonctionnent pas.

Vérifiez à nouveau qu'il y a trois lignes 25_custom

Exécutez cette commande et vérifiez qu'elle 25_customcomporte trois lignes:

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

J'ai ajouté les #commentaires pour déchiffrer la wcsortie (nombre de mots).

WinEunuuchs2Unix
la source
1
Je ne peux pas dévaloriser ma propre réponse ni la supprimer, mais je peux vous échanger ... :) Attention, une solution GUI obtiendra toujours plus de votes qu'une solution textuelle bien que la solution textuelle soit généralement plus exacte (= techniquement mieux)
Fabby
1
Comme je viens d'avoir un vote positif sur ma réponse, je suis surpris de voir que votre non-GUI a accumulé plus de votes que le mien! Bon travail!
Fabby
1
@Fabby Merci. Je viens aussi de donner un vote
positif au
Je suis peut-être en retard pour demander, mais ... pourquoi faut-il 25_custom? Pourquoi ces 3 lignes sont-elles nécessaires?
poomerang
@poomerang C'est l'ordre naturel d'un fichier de configuration vide dans le monde de grub. Il est plus facile de se conformer que de se rebeller.
WinEunuuchs2Unix