Comment puis-je empêcher Windows d'écraser GRUB lors de l'utilisation d'une machine à double démarrage

19

J'ai lu beaucoup de choses sur le double démarrage, et cela semble aussi simple que de charger Windows puis de charger Linux avec GRUB, mais tout le monde dit que Windows aime mettre à la poubelle GRUB quand il en a l'occasion. Quelles sont les mesures que je peux prendre pour éviter que cela se produise (à part utiliser le chargeur de démarrage de Windows, je veux que cela reste aussi simple que possible)?

Nathan2055
la source
1
En relation: Comment récupérer grub après l'installation de Windows
Gilles 'SO- arrête d'être maléfique'

Réponses:

17

Windows remplacera le secteur de démarrage à chaque fois que vous l' installez, mettez à niveau à une nouvelle version, ou d'utiliser des outils comme bootrec /fixmbr, bootrec /fixbootou les plus âgés fdisk /mbr. En général, installez d'abord Windows, puis Linux. Le secteur de démarrage restera en place jusqu'à ce que vous fassiez l'une des choses ci-dessus. (Et il y a peut-être aussi d'autres façons d'écrire sur le MBR.) Mais, si vous perdez GRUB, il est facilement restauré:

  • Démarrez à partir d'un CD live (CD / DVD ou lecteur flash).
  • Devenez root ou utilisez les sudocommandes ci-dessous.
  • Répertoriez les partitions disponibles si nécessaire: fdisk -l
  • Windows existera certainement sur / dev / sda1: mount /dev/sda1 /mnt
  • Réinstallez GRUB dans le MBR: grub-install --root-directory=/mnt/ /dev/sda
  • Redémarrer: shutdown -r now
  • Restaurez le menu GRUB: update-grub

Vous pouvez également installer 100% Unix, Linux ou BSD et simplement exécuter Windows sur une machine virtuelle si l'ordinateur est suffisamment puissant pour cela.

Aussi: le BIOS de votre ordinateur peut avoir une option pour protéger le secteur de démarrage.

Christophe
la source
Par mise à niveau, voulez-vous dire Windows 7 vers Windows 8 ou simplement exécuter Windows Update?
Nathan2055
1
@ Nathan2055 Oui, comme 7 à 8 ... nouvelles versions supérieures de Windows. Windows Update n'affectera pas le MBR.
Christopher
J'ai pensé ainsi. La bonne chose est que je doute que je vais jouer avec le MBR sous Windows, et il n'y a aucun moyen de passer à Windows 8 après avoir lu cela .
Nathan2055
1
Comme alternative, vous pouvez essayer de configurer le chargeur de démarrage Windows pour charger en chaîne vers grub: oreillynet.com/pub/h/2337 Un peu plus impliqué et peut être trop de travail pour trop peu d'effet, mais le faire de cette façon le fait si Windows écrase le chargeur de démarrage, vous pourrez toujours démarrer sous Linux.
Bratchley
@JoelDavis: Oui, j'ai lu plusieurs tutoriels pour le faire, mais pour quelqu'un qui n'a absolument aucune expérience, même en chargeant GRUB et le fait que je ne pense pas que Windows me causera des problèmes, étant donné que je ne veux pas mettre à niveau, Je pense que je vais aller avec une configuration GRUB vanilla et ne pas jouer avec le chargeur de démarrage.
Nathan2055
4

Je pense que je vais aller avec une configuration GRUB vanilla et ne pas jouer avec le chargeur de démarrage.

Si vous utilisez n'importe quelle forme de grub, vous jouez avec le chargeur de démarrage. GRUB signifie "grand chargeur de démarrage unifié". Et il existe deux versions - grub v1 et grub v2. Tous les systèmes Linux modernes utilisent automatiquement grub2. Si vous installez un système Linux, grub est le chargeur de démarrage par défaut, sauf si vous choisissez spécifiquement LILO, ce que je ne suggérerais pas.

J'ai personnellement un système à double démarrage avec xp et Wheezy. Je garde xp d'écraser grub en désactivant l'option "restauration Windows".

Avant de désactiver l'option de restauration, je devrais corriger grub au moins une fois par semaine, car le chargeur de démarrage de Windows remplaçait grub.

Je suis sur le point d'installer Windows 8 sur un disque dur externe via un port USB. J'espère que cela va sans accroc et ne dérange pas avec mon mbr.

Jenn
la source
1
la désactivation de l'option de restauration de Windows semble avoir résolu ce problème pour moi.
DrCord
2

C'est une solution de contournement que j'utilise, cela fonctionne avec les mises à jour Windows sans aucune intervention requise: Renommez votre EFI / Microsoft dans EFI / Microsomething Remplacez le chemin de démarrage de Windows dans grub.cfg en EFI / Microsomething / bootmfgw.efi Comme ceci:

menuentry "Microsoft Windows UEFI-GPT" {
    insmod part_gpt
    insmod fat
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --set=root <PROVIDE YOUR EFI DRIVE UUID>
    chainloader /EFI/Microsomething/Boot/bootmgfw.efi
}
nulleight
la source
1

Il suffit d'ouvrir gparted, de cliquer avec le bouton droit sur la partition contenant Grub, de gérer les indicateurs et de marquer le démarrage.

John Milionis
la source
2
Cela peut fonctionner si l'installation de Windows a simplement modifié la partition de démarrage. Dans mon cas, l'installation de Windows 8.1 a remplacé le MBR, nécessitant la grub-installsolution de Christopher .
Nathan Kidd
1

Une solution que j'ai trouvée quelque part en ligne (unix.stackexchange.com) consiste à désactiver le gestionnaire de démarrage de Windows. Entrez dans Linux (soit l'installation d'origine, si vous le pouvez ou un CD / DVD en direct) et exécutez cette commande:

efibootmgr

Notez que cette méthode ne fonctionnera que si Linux a été installé en mode UEFI, vous obtiendrez donc une erreur si Linux a été installé en mode hérité. Si vous l'avez installé en mode UEFI, vous obtiendrez des informations et une liste. Vous remarquerez le chargeur / gestionnaire de démarrage Windows et Linux quelque part dans la liste. Il est probable que Windows aura une priorité plus élevée (l'ordre de démarrage est au-dessus de la liste).

Il y a aussi des étoiles * à côté de certaines, sinon toutes, des entrées, les marquant comme actives.

Regardez le numéro de démarrage à 4 chiffres à côté de l'entrée Windows et exécutez

sudo efibootmgr --bootnum #### --inactive

Cela désactivera l'entrée Windows. Assurez-vous également que Windows maintenant désactivé a une priorité plus élevée s'il ne l'est pas déjà:

sudo efibootmgr --bootorder ####,$$$$,&&&&,%%%%

où #### est le numéro de démarrage de Windows.

Si vous redémarrez maintenant, vous démarrerez sur grub, si l'option Linux est activée avec la priorité la plus élevée.

Notez que Windows ne semble pas reconnaître qu'il a été désactivé, donc cela ne sera pas annulé en démarrant dans Windows ou en le mettant à jour.

J'ai participé à un installfest Linux local où nous installons Linux pour les personnes intéressées, le plus souvent en tant qu'OS secondaire à côté de Windows. Je n'ai pas encore vu cette méthode échouer, et je l'ai essayée sur plusieurs distributions (principalement Ubuntu et Mint) et plusieurs fournisseurs (Asus, Acer, HP, Lenovo).

Karlovsky120
la source
0

Windows 10 écrase GRUB 2 lorsque vous modifiez la couleur du texte, la taille, la police ou les titres des entrées de menu.

Il existe deux façons de résoudre ce problème.

  1. Vous pouvez installer Linux en mode hérité (Paramètres du BIOS> Boot> Legacy Support + Legacy First).

  2. Vous pouvez désactiver la restauration de Windows (également appelée Protection du système) (Panneau de configuration> Système et sécurité> Système> Protection du système> Configurer> Désactiver).

Anonyme
la source