web-dev-qa-db-fra.com

Dual Boot Windows 10 et Ubuntu 16.04 sur UEFI

En tant qu'utilisateur de longue date d'Ubuntu, j'ai récemment acheté un Acer Revo One pré-installé avec MS Windows 8 sur un SDD 60 Gb. Cette fois, j'ai décidé de conserver la licence. J'ai profité de la mise à niveau gratuite vers MS Windows 10 (j'ai choisi de procéder à une nouvelle installation à partir d'un disque USB afin de contrôler les partitions sur le SSD - j'ai laissé suffisamment d'espace pour une partition racine). Cette installation a bien fonctionné.

Ensuite, j'ai installé un disque dur et procédé à une installation d'Ubuntu 16.04 à l'aide d'un live-usb.

J'ai partitionné les disques comme suit (je l'ai reçu de gparted après le démarrage à partir d'Ubuntu live-usb): /dev/sda et /dev/sdb

Donc, fondamentalement, je veux

  1. les deux systèmes d'exploitation à démarrer à partir du SSD
  2. Ubuntu pour utiliser le disque dur avec un /home, une partition de swap et un /tmp nominaux
  3. une partition partagée sur laquelle Windows et Ubuntu peuvent écrire

(Je ne sais pas pourquoi /dev/sdb3 et /dev/sdb4 ont des drapeaux "msftdata" ...).

SecureBoot est activé (j'ai lu divers articles - certains disent qu'il est désactivé lors de l'installation d'Ubuntu, d'autres disent que ce n'est pas nécessaire). Le démarrage rapide est désactivé.

Ubuntu s’installe normalement, mais après le redémarrage (après avoir retiré le disque Live-USB), la machine ne démarre que sous MS Windows.

J'ai vérifié le bios et il n'y a aucune option pour démarrer dans autre chose que le gestionnaire de démarrage Windows (ou le disque live-usb une fois installé).

efibootmgr rapporte:

BootCurrent:0002 
Timeout: 2 seconds  
BootOrder: 0000,0002,0001 
Boot0000* Windows Boot Manager  
Boot0001 ubuntu 
Boot0002* UEFI: SanDisk

J'ai remarqué qu'il n'y a pas d'astérisque à côté de Boot0001, ce qui implique que ce n'est pas "actif". J'ai essayé de le définir actif et j'ai aussi essayé de changer BootOrder pour que Boot0001 soit le premier. J'ai même essayé de remplacer BootNext par 0001. Aucune de ces solutions ne fonctionne. J'ai remarqué que les modifications d'activation de Boot0001 sont réinitialisées au prochain démarrage. Par conséquent, mes modifications ne sont pas conservées.

J'ai lu un certain nombre d'articles qui font de nombreuses recommandations:

  1. certains disent installer Windows d'abord d'autres disent l'inverse
  2. réinstaller Grub
  3. réparer les entrées du chargeur de démarrage EFI soit manuellement (en montant la partition EFI et en copiant/renommant des entrées) ou en utilisant BootRepair

Je n'arrive pas à attacher un dump de la partition EFI ... mais voici un fragment:

./EFI
./EFI/Microsoft
./EFI/Microsoft/Boot
./EFI/Microsoft/Boot/bg-BG
./EFI/Microsoft/Boot/bg-BG/bootmgfw.efi.mui
./EFI/Microsoft/Boot/bg-BG/bootmgr.efi.mui
./EFI/Microsoft/Boot/bootmgr.efi
./EFI/Microsoft/Boot/memtest.efi
./EFI/Microsoft/Boot/boot.stl
./EFI/OEM/Boot
...
./EFI/Microsoft/Boot/en-GB
./EFI/Microsoft/Boot/en-GB/bootmgfw.efi.mui
./EFI/Microsoft/Boot/en-GB/bootmgr.efi.mui
...
./EFI/OEM
./EFI/OEM/Boot
./EFI/OEM/Boot/boot.stl
./EFI/OEM/Boot/bootmgfw.efi
./EFI/OEM/Boot/bootmgr.efi
./EFI/OEM/Boot/memtest.efi
./EFI/OEM/Boot/BOOTSTAT.DAT
./EFI/OEM/Boot/BCD
./EFI/OEM/Boot/BCD.LOG
./EFI/OEM/Boot/BCD.LOG1
./EFI/OEM/Boot/BCD.LOG2
...
./EFI/OEM/Boot/en-GB
./EFI/OEM/Boot/en-GB/bootmgfw.efi.mui
./EFI/OEM/Boot/en-GB/bootmgr.efi.mui
...
./EFI/ubuntu
./EFI/ubuntu/fw
./EFI/ubuntu/fwupx64.efi
./EFI/ubuntu/grubx64.efi
./EFI/ubuntu/grub.cfg
./EFI/ubuntu/shimx64.efi
./EFI/ubuntu/MokManager.efi
./OEM
./OEM/AcerOA30.xml
./OEM/Factory
./OEM/Factory/AMIDEWINx64.exe
./OEM/Factory/AMIFLDRV64.sys
./OEM/Factory/CHK.bat
./OEM/Factory/CHK_DK.bat
./OEM/Factory/Delay-Diags.exe
...

Je sais que je suis sur le point de craquer cette noix ... alors laquelle des suggestions ci-dessus est susceptible de fonctionner? Je préférerais ne pas me retrouver dans une situation où Windows ne démarre plus et qui doit être redémarré - il faut énormément de temps pour tout installer.

Merci d'avance.


Succès ... en quelque sorte.

Merci @fords et @oldfred.

Mon BIOS était obsolète alors je l'ai mis à jour.

J'ai également utilisé la réparation d'amorçage à partir d'un disque d'amorçage USB pour réparer la partition d'amorçage EFI (je ne suis pas certain qu'elle était cassée).

J'ai ensuite essayé la suggestion de @fords - exécuter bcdedit dans w $ - Success! Grub est affiché avec une pléthore de choix - Ubuntu étant la valeur par défaut.

Tout cela est tombé à néant lorsque j'ai redémarré dans w $ qui, à l'arrêt, a décidé d'appliquer une mise à jour ... qui a empêché Ubuntu de démarrer! (profond soupir).

Tout ce que je reçois, ce sont quelques lignes suggérant que je tente

    sysctl reboot

ou

    sysctl defaults

qui n'a pas fait grand chose.

La mise à jour de w $ a-t-elle annulé la réparation de démarrage w $ bcdedit et/ou linux? Si tel est le cas, comment puis-je empêcher w $ updates de causer ses ravages quotidiennement?

Merci

3
Father Ted

Avez-vous essayé de définir le chargeur de démarrage par défaut sur Grub dans l'invite de commande Windows? Je devais le faire quand j'ai installé Ubuntu pour fonctionner avec Windows 10:

bcdedit /set {bootmgr} path \EFI\ubuntu\grubx64.efi

Je vous recommande également de désactiver le démarrage sécurisé. Windows est une bête grincheuse quand il s'agit de double démarrage.

5
fords

Après la mise à jour de Windows 10 Creator, un clic droit sur le logo Windows affiche l'option PowerShell (Admin) au lieu de l'invite de commande (Admin). J'ai essayé de modifier bcdedit avec PowerShell et je me suis planté. Donc, n'utilisez pas PowerShell avec bcdedit si vous ne savez pas ce que vous faites.

La solution consiste à rechercher l'invite de commande, à l'ouvrir en mode administrateur (clic droit -> ouvrir en tant qu'administrateur) et à utiliser les commandes générales déjà mentionnées ci-dessus -

bcdedit /set {bootmgr} path "\EFI\ubuntu\shimx64.efi"

Si quelqu'un trouve comment utiliser PowerShell pour bcdedit, postez-le ici.

1
phoenix

Je reprends tout ça… w $ n'avait pas gâché ma journée (étonnamment) - c'était ma faible capacité à éditer/etc/fstab pour l'optimisation SSD qui m'empêchait de démarrer Ubuntu. Tout va bien dans le monde.

J'espère que mon expérience sera utile à quelqu'un!

1
Father Ted

Une autre solution consiste à utiliser deux partitions EFI. Une seule pour les fenêtres, une autre pour les systèmes Linux et autres. Dans la seconde partition, créez un chemin EFI\Microsoft\Boot\et copiez shimx64.efi dans le fichier bootmgrfw.efi à l’intérieur de ce chemin, puis laissez EFI\ubuntu\inchangé. Les ordinateurs portables Acer voient Shim sur cette partition en tant que gestionnaire de démarrage Windows et démarrent également à partir d'ici. Je vois que os-prober, si dans cette partition il n'y a que bootmgrfw.efi et pas BCD, etc., ne reconnaît que le chargeur de démarrage Windows sur la première partition d'origine, sans créer de double menu dans grub.cfg. Vous pouvez donc démarrer GRUB EFI et appeler Ubuntu ou Windows avec le canal correct sur l’autre partition. Dans ce mode, Windows conserve la structure de partition EFI correcte dans la première partition et ne doit pas écraser le faux bootmgrfw.efi (shim) dans la seconde partition lors des mises à jour. Pour moi travaille sur un Acer 5750g.

0
Mondin Marco