web-dev-qa-db-fra.com

Le programme d'installation d'Ubuntu écrase le chargeur de démarrage de Windows 8 sur le disque sur lequel il n'a pas été installé

Tout a commencé lorsque je suis allé installer Ubuntu sur une partition de mon disque dur externe. Dans le programme d'installation d'Ubuntu LiveUSB, la configuration consistait à créer une partition ext4 dans un espace vide sur le disque dur externe (/ dev/sdc3) et à écrire le chargeur de démarrage dans/dev/sdc. L'installation s'est bien terminée et j'ai pu démarrer correctement dans la nouvelle partition Ubuntu - avec une prise.

Au redémarrage, j'avais été accueilli par une plainte de Secure Boot (violation de démarrage sécurisé - signature non valide), ce qui était étrange, étant donné que je n'avais pas dit à l'installateur de toucher le chargeur de démarrage d'origine (ou quoi que ce soit, d'ailleurs) sur/dev/sda. J'ai été invité avec GRUB après avoir rejeté la plainte, également étrange car je n'avais pas atteint le point où je pouvais choisir l'ordre de démarrage. J'ai redémarré sans le disque dur externe pour vérifier qu'il était allumé le disque principal et non pas le disque externe, à quel point GRUB m'a donné un terminal plutôt qu'un menu. Taper 'exit' m'a ramené dans Windows 8.

J'ai tenté d'effacer GRUB en démarrant dans Windows en mode d'invite de commandes et en utilisant bootrec /fixmbr et bootrec /fixboot, mais cela n'a eu aucun effet et GRUB reste.

Mes questions sont donc:

  1. Pourquoi le programme d'installation d'Ubuntu a-t-il décidé d'écrire GRUB dans/dev/sda et/dev/sdc lorsque j'ai spécifié/dev/sdc comme partition du chargeur de démarrage et/dev/sdc3 comme partition d'installation Ubuntu?
  2. Comment puis-je me débarrasser de GRUB avec autre chose que Windows en mode de récupération?
1
Marco van Hilst

Veuillez oublier tout ce que vous avez jamais su sur l'installation du chargeur de démarrage, du moins en ce qui concerne l'ordinateur en discussion. Vous essayez d'appliquer des hypothèses BIOS à un ordinateur EFI (non BIOS), et elles ne s'appliquent pas . (Oui, je sais que la plupart des gens, et même des fabricants, se réfèrent aux EFI comme BIOS, mais cela ne fait que semer la confusion. Voir Article de blog d'Adam Williamson sur ce sujet pour plus de détails.) Windows bootrec /fixmbr Est destinée à gérer le démarrage en mode BIOS et ne vous est donc pas applicable. Je ne connais pas bootrec /fixboot; il peut être utile ou non sur un ordinateur EFI.

Sous EFI, tous les chargeurs de démarrage et les programmes associés résident dans EFI System Partition (ESP), qui est une partition FAT dont le but est de contenir les chargeurs de démarrage et les fichiers associés. Habituellement, un ordinateur n'aura qu'un seul ESP, bien qu'il soit légal pour un ordinateur d'avoir plusieurs ESP. Un ordinateur à deux disques peut avoir un, deux, trois ou plusieurs ESP. Dans le cas d'un ordinateur multi-ESP, il n'est pas clair lequel utilisera le programme d'installation d'Ubuntu. En théorie, le programme d'installation d'Ubuntu devrait utiliser celle identifiée comme la "partition de démarrage EFI" (leur propre nom non standard pour l'ESP) dans l'installateur; cependant, je doute que Ubuntu le fasse de manière cohérente. (Je n'ai pas eu la chance de regarder cela en profondeur.) Dans tous les cas, le programme d'installation d'Ubuntu conserve une invite en mode BIOS pour savoir où installer le chargeur de démarrage lors de l'installation en mode EFI, mais c'est complètement inutile! Je pense qu'il y a un rapport de bug à ce sujet sur Launchpad, mais une recherche rapide ne l'a pas révélé.

En théorie, alors, un ordinateur basé sur EFI peut avoir des dizaines de chargeurs de démarrage installés. Lequel le firmware utilise-t-il réellement? Ceci est déterminé par un ensemble d'entrées NVRAM, qui identifient les chargeurs de démarrage et répertorient l'ordre dans lequel ils doivent être essayés. Les entrées NVRAM identifient les chargeurs de démarrage par partition et nom de fichier.

Il n'est pas clair si vous avez un, deux ou plusieurs ESP; cependant, étant donné que les entrées NVRAM identifient les chargeurs de démarrage par partition et nom de fichier, ce détail est essentiellement hors de propos. Il y a de fortes chances que Ubuntu ait ajouté GRUB à un ESP et ajouté une entrée à la NVRAM de l'ordinateur lui disant d'utiliser GRUB par défaut. (En fait, cela pointerait vers Shim, qui est l'un des outils Linux pour gérer le démarrage sécurisé. Shim lancera ensuite GRUB.) Je ne sais pas pourquoi vous obtenez un avertissement de démarrage sécurisé suivi par GRUB. Peut-être que vous avez une entrée NVRAM qui pointe directement vers GRUB sans passer par Shim suivi d'une entrée qui pointe vers Shim. Cela expliquerait cela, mais AFAIK le programme d'installation d'Ubuntu ne fait pas '' t mettre les choses de cette façon.

Sous EFI, vous pouvez modifier les entrées NVRAM pour contrôler l'ordre de démarrage. Sous Linux, l'utilitaire efibootmgr fait ce travail. Sous Windows, vous pouvez utiliser bcdedit ou un outil tiers comme EasyUEFI . À l'aide de efibootmgr, tapez la commande seule pour afficher une liste des entrées de démarrage, puis utilisez l'option -o Pour définir l'ordre de démarrage, comme dans efibootmgr -o 5,3,8 Pour que le micrologiciel essaie Boot0005 D'abord, puis lancer Boot0003 Si cela échoue, et enfin essayer Boot0008. (Bien sûr, vous devrez définir l'ordre pour votre système , basé sur la sortie de efibootmgr sans aucune option.) La plupart des EFI ont leur propre gestionnaire de démarrage pour vous permettre de sélectionner un chargeur de démarrage. Cependant, les détails varient considérablement d'un ordinateur à l'autre. Vous devez généralement appuyer sur une touche de fonction au début du processus de démarrage pour accéder à ce gestionnaire de démarrage.

3
Rod Smith
  1. Je pense que vous devriez lui dire de ne PAS installer sur/dev/sda car c'est là qu'il s'installe par défaut.

  2. En utilisant un disque de réparation Windows, suivez ces instructions http://www.fixedbyvonnie.com/2013/12/how-to-repair-the-efi-bootloader-in-windows-8/ Je vous crois vous devez toujours recréer le magasin BCD (Boot Configuration Data) pour résoudre votre problème (/ fixmbr bootrec/fixboot ne suffit pas).

0
mchid