52 votes

Ajouter Windows 10 à la liste des OS de Grub.

J'ai récemment reçu un ordinateur de l'école. Il était livré avec Windows 8.1. J'ai ensuite installé une autre copie de Windows 8.1 (afin d'utiliser la licence Windows Pro intégrée) et je l'ai mis à niveau vers Windows 10. J'ai ensuite installé Ubuntu avec Windows 8 et 10.

Notez que j'ai créé une partition ext2 séparée de 255 Mo pour /boot.

Maintenant, lorsque je démarre l'ordinateur, je vois d'abord une invite Grub (j'ai déjà supprimé l'invite Grub parce que je l'aime bien comme ça) avec des options Windows 8 et Ubuntu. Cependant, il n'y a pas d'option Windows 10. Si je sélectionne Ubuntu, l'ordinateur démarre avec Ubuntu. En revanche, si je sélectionne l'option Windows 8, j'accède au bootloader de Windows, qui me propose de démarrer soit Windows 8, soit Windows 10. (Toutefois, à ce stade, l'ordinateur a déjà chargé le noyau et tout le reste. Apparemment, Microsoft n'a pas compris le concept d'un botte et a décidé que cela signifiait "démarrer pratiquement tout le système avant d'afficher le chargeur de démarrage". Typique de Microsoft).

Comment désactiver le bootloader de Windows et ajouter une option Windows 10 à Grub ?

EDITです: Quelqu'un m'a répondu en me disant de désactiver le bootloader de Windows. Cependant, je ne sais toujours pas comment ajouter Windows à la liste Grub OS. Quelqu'un peut-il m'aider ?

EDIT 2 : Après avoir supprimé Windows 10 du bootloader Windows à l'aide d'EasyBCD, il semble qu'après quelques redémarrages, il se décachette continuellement et que Windows 10 réapparaisse. Cependant, j'ai ensuite supprimé Windows 10 de la liste des systèmes d'exploitation dans msconfig, et il semble qu'il soit resté supprimé.

Cependant, je n'ai toujours pas réussi à faire apparaître Windows 10 dans Grub. C'est comme si Grub ne le détectait tout simplement pas.

De plus, je vais le mentionner dans la question pour que les gens le voient - j'ai essayé d'utiliser boot-repair Cependant, cela n'a PAS aidé.

2voto

Ahmed Points 21

Vous devez créer une nouvelle partition EFI pour l'installation ultérieure de Windows. Parce que le premier installé avait sa propre EFI mais le dernier installé voyant un autre Windows a juste ajouté sa propre entrée au bootloader créant ainsi sa propre EFI dans /EFI/Microsoft/Boot/bootmgfw.efi donc lancez CMD en tant qu'administrateur sur votre Windows 10 et entrez les commandes suivantes ( A partir d'ici sur TenForums ):

diskpart
list disk
select disk # Note: Select the disk where Win10 is installed
list partition
select partition # Note: Select the Win10 installation partition.
shrink desired=100
create partition efi size=100
format quick fs=fat32
assign letter=s
list partition
list volume Note: Note the volume letter where the Win10 is installed.
exit

bcdboot X:\windows /s S:
Note: Replace "X" with the volume letter of the Win10 partition.

BCDBoot copie les fichiers de démarrage de la partition Windows vers la partition EFI System et crée la mémoire BCD dans la même partition.

Ajoutez maintenant une entrée pointant vers cette partition comme ceci dans /etc/Grub.d/40_custom ou (n'importe quel fichier personnalisé dans /etc/Grub.d/) :

insmod part_gpt
insmod ntfs
set root=hd1,gpt10
chainloader /EFI/Microsoft/Boot/bootmgfw.efi

1voto

Après avoir cherché une solution pendant un certain temps, et aussi par paresse pour ne pas essayer de passer une heure de plus à trouver quoi et où je devrais éditer et mettre à jour (car c'était futile), j'ai finalement installé Grub Customizer. Ça marche du tonnerre !

1voto

NoVilerRascal Points 11

Windows 10 sera, pour la plupart, ajouté au Grub menu de démarrage par l'os-prober automatiquement.

Pour ma configuration spécifique, je voulais cacher complètement le menu Grub et démarrer automatiquement Windows à moins qu'une touche de raccourci ne soit pressée pour démarrer Ubuntu. Donc dans mon cas spécifique os-prober n'est pas une option car l'étape la plus importante pour cacher le menu Grub, que la plupart des réponses que j'ai trouvées négligent de mentionner, est de mettre le drapeau disable os-prober ou le menu sera affiché jusqu'à ce qu'os-prober se termine.

Il m'a fallu beaucoup plus de temps que prévu pour y parvenir, car il existe de nombreuses réponses partielles, mais la plupart d'entre elles dépendent de la version et peuvent vous induire en erreur. J'ai passé beaucoup de temps à essayer d'écrire ma propre entrée de menu Grub en essayant d'utiliser des commandes Grub qui n'existaient pas comme ntdlr. Une autre mise en garde est que les fonctions chainloader de mon Grub essaient de démarrer le bios et non l'efi et ne fonctionnent pas (je suis sûr que j'ai fait quelque chose de mal ?).

En fin de compte, la solution était simple car les scripts qui font votre /boot/Grub/Grub.cfg fait le plus gros du travail pour vous en trouvant les UUIDS pour vos partitions de démarrage. Vous pouvez donc sauter les étapes fdisk et blkid que la plupart des gens mentionnent.

La première étape consiste donc à s'assurer que /boot/Grub/Grub.cfg est en cours en utilisant update-Grub pour créer un fichier .cfg. Dans le terminal

sudo update-grub

L'étape 2 consiste à ajouter des entrées de menu personnalisées dans /etc/Grub.d/40_custom . Ne perdez pas de temps à essayer d'écrire votre propre texte simplement ouvert. /boot/Grub/Grub.cfg rechercher " entrée de menu "et copier les entrées générées automatiquement.

Le premier de la liste sera ubuntu, le mien ressemble à

menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-9e66eed6-e672-49ff-a07c-afdc00809148' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root  9e66eed6-e672-49ff-a07c-afdc00809148
else
  search --no-floppy --fs-uuid --set=root 9e66eed6-e672-49ff-a07c-afdc00809148
fi
linux   /boot/vmlinuz-5.4.0-39-generic root=UUID=9e66eed6-e672-49ff-a07c-afdc00809148 ro  quiet splash $vt_handoff
initrd  /boot/initrd.img-5.4.0-39-generic

}

Les fenêtres seront similaires. Copiez les deux dans /etc/Grub.d/40_custom . La seule modification que j'ai apportée pour Ubuntu est l'ajout de l'option --hotkey=clé qui fera démarrer Grub le système d'exploitation associé à ce raccourci clavier.

menuentry 'Ubuntu2' --class ubuntu --class gnu-linux --class gnu --class os --hotkey=u $menuentry_id_option 'gnulinux-simple-9e66eed6-e672-49ff-a07c-afdc00809148' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod ext2
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root  9e66eed6-e672-49ff-a07c-afdc00809148
else
  search --no-floppy --fs-uuid --set=root 9e66eed6-e672-49ff-a07c-afdc00809148
fi
linux   /boot/vmlinuz-5.4.0-39-generic root=UUID=9e66eed6-e672-49ff-a07c-afdc00809148 ro  quiet splash $vt_handoff
initrd  /boot/initrd.img-5.4.0-39-generic

}

J'utilise --hotkey=u ici pour régler le raccourci clavier de démarrage d'Ubuntu sur u.

J'ai ensuite modifié l'entrée Windows, en remplaçant $menuentry_id_option avec le Grub. drapeau --id .

menuentry "Windows 10" --class windows --class os --id windows-custom {
insmod part_gpt
insmod fat
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root  0EAE-C882
else
  search --no-floppy --fs-uuid --set=root 0EAE-C882
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi

}

J'ai utilisé --id Windows-custom . Sauvegarder les changements dans /etc/Grub.d/40_custom .

Enfin ouvert / etc/default/Grub et ajouter

GRUB_DISABLE_OS_PROBER=true

changer GRUB_DEFAULT=0 a GRUB_DEFAULT=windows-custom et le changement GRUB_TIMEOUT=10 J'utilise 0,5 pour me donner un peu plus de temps pour atteindre la cible. u pour démarrer Ubuntu après le POST.

J'espère que cela évitera à quelqu'un de se prendre la tête, merci !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X