J'ai récemment installé Ubuntu en mode double amorçage avec Windows 10 sur un ordinateur portable HP. Au départ, je ne pouvais pas démarrer Windows avec grub, car sélectionner les options de 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 suis capable d'ouvrir Windows en utilisant l'option "Windows UEFI bootmgfw.efi", mais en n'utilisant pas l'option standard de "Gestionnaire de démarrage Windows (sur/dev/sda1)".
Comment puis-je réduire ces entrées et pourquoi ne puis-je pas démarrer Windows avec cette dernière option?
Voici une image de la bouffe. La première option est Ubuntu:
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’a que 512 octets; il n’est donc pas assez grand pour contenir tout ce que nous aimerions que ce soit.
Pour ajouter et supprimer facilement des entrées de grub vous-même, veuillez:
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
Si vous rencontrez des problèmes graves, restaurez la sauvegarde de votre système.
Chaque fois que j'ai exécuté boot-repair
, il ajoute un 5 options de démarrage Windows supplémentaires à mon menu principal grub
qui ne fonctionnent pas. Dans votre cas, il a ajouté 11 entrées supplémentaires!
grub.cfg
montre le problèmeLe secret peut être trouvé dans le fichier /etc/grub/grub.cfg
:
### 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-prober
contient les "bonnes" entrées de menu grub
que vous souhaitez conserver. La section 25_custom
contient les fausses entrées créées par boot-repair
. Vous ne pouvez pas éditer le fichier de configuration grub car il sera simplement écrasé à la prochaine exécution de update-grub
.
25_custom
a été créée par Boot RepairSur 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 coup d'œ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-repair
créées dans /etc/grub.d/25_custom
qui ont ensuite été compilées dans \boot\grub\grub.cfg
.
25_custom
Utilisez Sudo -H gedit /etc/grub.d/25_custom
et supprimez tout sauf les trois premières lignes:
#!/bin/sh
exec tail -n +3 $0
Sudo update-grub
.Maintenant, votre menu n'est plus saturé avec cinq fausses entrées de menu Windows qui ne fonctionnent pas.
25_custom
Exécutez cette commande et vérifiez que 25_custom
a 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 sortie de wc
(nombre de mots).