1 votes

Macbook Pro x86_64 Triple-Boot : Comment réparer le démarrage EFI et le gestionnaire de démarrage ?

Résumé

J'ai réussi à créer un triple-boot sur mon MBP 2015 avec MacOS (Big Sur), Ubuntu 22.0.1 et Windows 10. Je peux démarrer dans n'importe lequel des 3 avec succès, cependant, le gestionnaire de démarrage n'affiche pas toutes les options de démarrage. Je dois utiliser le menu Grub pour démarrer Windows, ce qui n'est pas ce que je souhaite. Que dois-je faire pour mettre à jour le gestionnaire de démarrage afin qu'il me présente les options de démarrage pour les installations Windows, Ubuntu et MacOS ?

Historique de l'installation

Le disque possède deux installations MacOS sur des partitions différentes - Yosemite et Big Sur - que je peux choisir avec le gestionnaire de démarrage. Il s'agit d'une pratique assez courante. J'ai installé Windows 10 à l'aide de Boot Camp à partir de Big Sur, ce qui semble créer une partition Windows bootloader sur /dev/sda1. À ce stade, le gestionnaire de démarrage (en maintenant la touche option au démarrage) affichait correctement les options MacOS et Windows.

J'ai ensuite créé une partition séparée sur /dev/sda3 pour le chargeur de démarrage Grub d'Ubuntu, ainsi qu'une partition /dev/sda7 pour le système de fichiers principal d'Ubuntu, et j'ai installé Ubuntu en utilisant ces partitions. J'ai spécifiquement choisi /dev/sda3 pour le chargeur de démarrage EFI afin qu'il n'écrase pas le chargeur de démarrage Windows dans /dev/sda1. Tout s'est bien installé, mais j'ai perdu la possibilité de démarrer directement Windows à partir du gestionnaire de démarrage.

Une fois l'installation d'Ubuntu terminée, je m'attendais à ce que le gestionnaire de démarrage affiche les options Windows et Ubuntu en plus de MacOS, mais seules les icônes Windows et MacOS apparaissent. Mais lorsque je sélectionne l'icône Windows dans le gestionnaire de démarrage, le bootloader grub d'Ubuntu s'affiche. Le menu Grub propose des options pour démarrer Ubuntu ou Windows (dont le menu grub indique qu'il s'agit de /dev/sda1). Je peux donc démarrer Windows ou Ubuntu avec succès à l'aide du menu Grub.

Cependant, je veux que le gestionnaire de démarrage affiche des icônes distinctes pour Windows et Ubuntu au démarrage et me permette de les sélectionner à partir de là. J'ai essayé plusieurs choses pour résoudre ce problème sans succès et je suis un peu perplexe sur la façon d'y parvenir.

Quelques exemples de ce que j'ai essayé

Il y a 2 partitions EFI sur le disque, une créée par Boot Camp sur /dev/sda1 pour le bootloader Windows, et une que j'ai créée sur /dev/sda3 pour le bootloader Grub d'Ubuntu. Lorsque j'ai monté la partition /dev/sda3, j'ai remarqué que le répertoire EFI était vide. En suivant les instructions de certains posts passés ici, j'ai copié le contenu du répertoire EFI de la partition /dev/sda1 dans le répertoire EFI de la partition /dev/sda3, ce qui m'a permis de "bénir" la partition dans MacOS en tant que volume amorçable dans le gestionnaire de démarrage. Après cela, le gestionnaire de démarrage a affiché une icône supplémentaire au démarrage, mais comme prévu, les deux icônes sont identiques (icône Windows) et la sélection de l'une ou l'autre d'entre elles me place dans Grub.

J'espérais pouvoir ajuster le contenu des deux partitions EFI de manière à ce qu'elles pointent chacune vers le bootloader correspondant, l'une pour Windows et l'autre pour Grub/Ubuntu. C'est là que je rencontre des difficultés. Je sais que la configuration de démarrage pour Windows est affichée avec d'autres lorsque je lance "efibootmgr -v" sous Linux, mais je ne sais pas comment appliquer cette information pour accomplir ce que je demande.

Partitions et informations sur les disques

Résultat de fdisk -l /dev/sda :

$ sudo fdisk -l /dev/sda
Disk /dev/sda: 465.92 GiB, 500277790720 bytes, 977105060 sectors
Disk model: APPLE SSD SM0512
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: A79A70A1-D180-47E6-BBAC-80365256A8F0

Device         Start       End   Sectors   Size Type
/dev/sda1         40    409639    409600   200M EFI System
/dev/sda2     409640 616597135 616187496 293.8G Apple APFS
/dev/sda3  616597504 617129983    532480   260M EFI System
/dev/sda4  617129984 702054399  84924416  40.5G Microsoft basic data
/dev/sda5  702055552 780652767  78597216  37.5G Apple HFS/HFS+
/dev/sda6  780652768 781922303   1269536 619.9M Apple boot
/dev/sda7  781955072 977104895 195149824  93.1G Linux filesystem

Résultat de gdisk -l /dev/sda :

$ sudo gdisk -l /dev/sda
GPT fdisk (gdisk) version 1.0.8

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 977105060 sectors, 465.9 GiB
Model: APPLE SSD SM0512
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): A79A70A1-D180-47E6-BBAC-80365256A8F0
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 977105026
Partitions will be aligned on 8-sector boundaries
Total free space is 34425 sectors (16.8 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1              40          409639   200.0 MiB   EF00  EFI System Partition
   2          409640       616597135   293.8 GiB   AF0A  
   3       616597504       617129983   260.0 MiB   EF00  EFI for GRUB
   4       617129984       702054399   40.5 GiB    0700  Basic data partition
   5       702055552       780652767   37.5 GiB    AF00  Yosemite
   6       780652768       781922303   619.9 MiB   AB00  Recovery HD
   7       781955072       977104895   93.1 GiB    8300  

Résultat de efibootmgr -v :

$ sudo efibootmgr -v
BootCurrent: 0000
Timeout: 5 seconds
BootOrder: 0000,0002,0001,0080
Boot0000* ubuntu    HD(1,GPT,a61ea436-09b2-4355-a10e-e89f519653d6,0x28,0x64000)/File(\EFI\ubuntu\shimx64.efi)
Boot0001* Windows Boot Manager  HD(1,GPT,a61ea436-09b2-4355-a10e-e89f519653d6,0x28,0x64000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot0002* ubuntu    HD(3,GPT,e2387071-5951-4a9f-8d7d-2b113d3ce3b7,0x24c08800,0x82000)/File(\EFI\ubuntu\shimx64.efi)
Boot0080* Mac OS X  PciRoot(0x0)/Pci(0x1c,0x5)/Pci(0x0,0x0)/Sata(0,0,0)/HD(2,GPT,11eb72ed-4a8f-4f7d-a8f7-4fca3438adf6,0x64028,0x24c1e788)/VenMedia(be74fcf7-0b7c-49f3-9147-01f4042e6842,cbcfd61e0b162b4aafa0d79e9050dcbb)/File(\A62C572A-E899-4CAC-A2C9-F54103EAD91E\System\Library\CoreServices\boot.efi)
Boot0081* Mac OS X  HD(1,MBR,0x901c8f2d,0x800,0xe51f800)
Boot0082*   PciRoot(0x0)/Pci(0x1c,0x5)/Pci(0x0,0x0)/Sata(0,0,0)/HD(2,GPT,11eb72ed-4a8f-4f7d-a8f7-4fca3438adf6,0x64028,0x29d24458)/VenMedia(be74fcf7-0b7c-49f3-9147-01f4042e6842,cbcfd61e0b162b4aafa0d79e9050dcbb)/File(\C04D8B5C-49A1-4AD5-9182-459286FF5241\System\Library\CoreServices\boot.efi)

1voto

darvelo Points 11

Après avoir parcouru de nombreux articles sur le sujet et essayé différentes choses, j'ai trouvé une réponse à ma propre question. Je la poste ici au cas où d'autres personnes auraient le même problème. Les deux articles que j'ai trouvés les plus utiles sont les suivants aquí y aquí .

La réponse courte est qu'après avoir installé Windows, vous devez sauvegarder le bootloader de Windows avant d'installer Ubuntu, parce qu'il y a un bug dans le programme d'installation d'Ubuntu qui n'honore pas votre sélection de partition EFI, et qui écrase le bootloader de Windows. Si vous ne sauvegardez pas d'abord le chargeur de démarrage de Windows, il est difficile, voire impossible, de le réparer. Si cela se produit et que vous essayez de réinstaller Windows, la présence d'une deuxième partition EFI bootloader fait échouer l'installation de Windows et crée de nouveaux problèmes avec vos partitions.

La façon la plus simple d'installer Ubuntu et de préserver un dual-boot existant vers Mac ou Windows est d'ajouter quelques étapes après l'installation de Windows et avant l'installation d'Ubuntu, comme suit.

Assurez-vous d'avoir une partition séparée de 100 à 200 Mo pour le chargeur de démarrage Ubuntu en plus de la partition pour le système de fichiers.

Démarrez dans l'option "Try Ubuntu First" du disque d'installation d'Ubuntu avant de procéder à l'installation. Ouvrez un terminal avec command-option-T, montez la partition Windows bootloader /dev/sda1, et renommez le répertoire EFI en un autre nom comme EFI.win.

Installez ensuite Ubuntu, en spécifiant votre nouvelle partition EFI (dans mon cas /dev/sda3). Ce qui devrait se passer, c'est que le chargeur de démarrage EFI est installé sur la partition que vous avez sélectionnée. Mais, en raison d'un bogue dans le programme d'installation, ce qui se passe en réalité, c'est qu'il formate la nouvelle partition EFI, mais installe le chargeur de démarrage dans /dev/sda1. Vous vous retrouvez avec une nouvelle partition EFI correctement formatée mais vide. La première partition EFI sur le disque, /dev/sda1, contient les répertoires EFI et EFI.win. Ceci doit être corrigé.

Une fois l'installation d'Ubuntu terminée, redémarrez l'ordinateur en appuyant sur la touche option, et démarrez en "EFI", qui est la nouvelle installation d'Ubuntu. Ouvrez un terminal. Montez les deux partitions de démarrage. Copiez le répertoire EFI de la partition Windows bootloader (qui est en fait le bootloader Ubuntu) vers la deuxième partition EFI. Supprimez ensuite le répertoire EFI et renommez votre bootloader Windows sauvegardé, en renommant EFI.win en EFI.

Ensuite, vérifiez les UUID des deux partitions EFI avec la commande 'blkid /dev/sda1 /dev/sda3'. (vos numéros de partition peuvent être différents, utilisez les numéros de partition de votre disque). Editez le fichier /etc/fstab. Localisez dans ce fichier l'UUID de la partition Windows bootloader, /dev/sda1, et remplacez-le par l'UUID de la bonne partition EFI Ubuntu (UUID de /dev/sda3 dans mon cas).

Enfin, l'installation d'Ubuntu laisse l'enregistrement de démarrage principal du disque dans un état qui ne peut pas être lu par le chargeur de démarrage de Windows. Reconstruisez l'enregistrement d'amorçage principal du disque en utilisant gdisk, comme suit. Ouvrez un terminal et tapez "sudo gdisk /dev/sda". Vous entrez alors dans un shell interactif pour gdisk. Tapez les touches suivantes dans l'ordre, ce qui reconstruira correctement l'enregistrement d'amorçage principal : x n w y. Cela corrige l'enregistrement d'amorçage principal et le sauvegarde dans un format que le chargeur d'amorçage de Windows peut à nouveau utiliser.

À ce stade, vous pouvez redémarrer l'ordinateur, en maintenant la touche Option enfoncée, et vous devriez voir des icônes séparées étiquetées "EFI" (Ubuntu) et "Windows", ainsi que toutes vos partitions amorçables MacOS et de récupération. Il existe des moyens de renommer ces étiquettes ou d'effectuer d'autres changements cosmétiques, qui sont décrits dans les liens inclus.

Je sais que cette explication est comprimée et qu'elle aurait pu être rédigée de manière plus détaillée. J'ai voulu au moins saisir les points importants pour les personnes expérimentées. J'espère que ces informations vous seront utiles. Si vous avez besoin d'instructions plus détaillées, les pages liées fournissent des instructions plus complètes.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X