CitizenZ

Blog Libre, Geek & Crypto

UEFI m'a tuer

Rédigé par citizenz 23 commentaires

Je vous présente UEFI : le standard Unified Extensible Firmware Interface (UEFI, "Interface micrologicielle extensible unifiée") définit un logiciel intermédiaire entre le micrologiciel (firmware) et le système d'exploitation (OS) d'un ordinateur.
Interface logicielle désormais commune à tous les ordinateurs récents, particulièrement ceux vendus depuis 2010, elle vient se placer entre le micrologiciel (firmware) et le système d'exploitation pour permettre de contrôler les paramètres de l'ordinateur.
A ce titre, elle remplace la traditionnelle interface du BIOS. Puisqu'il s'agit d'un système différent du BIOS, il est important de comprendre ce qu'est l'UEFI avant d'entreprendre l'installation de Linux, ... nous dit le wiki d'Ubuntu, de Manjaro ou même Wikipedia.

Je vous avais dit que mon ordi avait "cramé", il y a déjà quelques jours et que j'avais reçu du nouveau matos.
Donc changement de config : ma carte mère, tout nouvelle et fraîche (MSI B150 PC MATE) affiche un menu permettant de sélectionner une option "Windows 8.1/10" qui active l'EFI, le fast startup et le "Secure boot". Le "Secure boot", cette merveille d'invention qui permet aux linuxiens entre autres de se faire des cheveux blanc avant l'âge.
Mais cela implique aussi un changement (gros !) : la table de partition est désormais en GPT (Guid Partition Table). Adieu la table msdos et le MBR !
Cela implique également un changement dans la manière de faire booter l'OS...
Il faut désormais créer une partition de boot dédiée avec un fichier .efi.
Windows 10 utilise ce type de partition : ESP (EFI System Partition, formatée en FAT32).
(PS pour les connaisseurs : ESP, c'est pas la marque de la guitare d'Adrian Smith).
Bref autant dire que quand on a passé les 6 dernières années sur un bon vieux AMD Phenom II X6 et une version famille de Windows 7, on arrive dans un monde étrange ! :)

Je sais : je ne suis pas doué :/ J'ai mis plus de 48h avant de piger la bonne config de ma carte mère (le coup du "Secure Boot", je l'ai pas vu venir !) et avant de piger que par défaut Manjaro Linux ... n'installe pas Grub au bon endroit (en tout cas, je ne sais pas faire !).
En effet, après avoir installé Windows 10 sur mon disque sdb (disque 1To) j'ai souhaité installer Manjaro Linux sur mon disque sda (SSD 128 Go).
Mais en utilisant l'installateur graphique plus l'option "Effacer tout le disque", même si l'installation se passe sans problème, c'est au reboot que ça ne va plus : pas de GRUB ! :/ Ca reboot sous Windows 10 comme si de rien n'était.
Ni une, ni deux, je vais dans le BIOS vérifier mon Boot Menu : pas de disque SSD avec Manjaro, rien ! Il n'apparait pas.
Pourtant, grâce au Live-CD de Manjaro, je peux aller dans "Detect EFI boot loaders" et ma partition EFI Manjaro apparait en (hd0, gpt1). En validant cette entrée, j'arrive sur Grub... qui m'ouvre Manjaro...

Même soucis d'ailleurs, en passant par le menu de partitionnement "Autre" et en partitionnant tout à la main. Même punition.
En fait, j'ai peut-être mal vu, mais je n'ai pas trouvé de menu pour Grub qui permet généralement de choisir où Grub doit être installé. Et, d'après quelques renseignements et infos glânés ici et là, il faudrait que Grub soit installé sur la partition du Windows Boot Manager, c'est à dire pour moi en sdb2.

J'ai eu l'idée de faire un test avec Xubuntu. Installation sur le SSD. Et là il y avait un menu pour Grub. J'ai donc choisi d'installer Grub sur sdb2 et au reboot : BINGO ! Aucun problème, j'avais le Grub avec Ubuntu, Windows 10 (Windows Boot Loader).

Donc il y a certainement une manière de faire pour Manjaro et Arch Linux mais je ne l'ai pas encore trouvée.
Faut-il après l'installation reinstaller Grub avec quelques "commandes magiques" ? Quelles sont-elles ?
Je vous laisse, je découvre Xubuntu avec ses bons et ses mauvais côtés mais dès que possible, je retourne sous Arch !

Ben oui, on ne se refait pas !

CitizenZ : Geek quadra nivernais
fan d'ovalie, de musique, de linuxeries et de Net !

23 commentaires

#1  - marxyz a dit :

C'est pas dû au fait que manjaro ne possède pas la signature pour être reconnu par l'UEFI ? Il me semble que même debian a du demander à microsoft une signature UEFI pour pouvoir être installé sur les machines UEFI sans trop d'embrouille.

Répondre
#2  - stephane a dit :

bonsoir ,
non ce n'est pas aussi simple ,
en fait les fabricants de carte mère n'ont pas non plus respecté les règles pour EFI , cela aurait du être Bios ou EFI , mais ils ont en fait fait un outil mixte Bios-EFI

à la base c'est bien microsoft qui impose le secure boot , mais en mettant tout à off , on peut ne pas démarrer

dans ton cas , ce qui ne fonctionne pas , c'est la reconnaissance par le bios de EFI installé sur le SSD.Si le bios le reconnait , tu verra UEFI devant.

autre astuce à tenter , formatage par windows , vérification par Gparted qu'il a bien créé une partition EFI puis installer dessus sur le SSD

Répondre
#3  - Breizh a dit :

Pour manjaro, il faut passer par un partitionnement manuel, créer une partition FAT32 (assez petite, genre 512 Mio), la monter dans /boot/efi, et lui mettre le tag qui va bien (ESP, il me semble). Normalement cela suffit.

Manjaro : https://wiki.manjaro.org/index.php?title=UEFI_-_Install_Guide
Arch Linux : https://wiki.archlinux.org/index.php/EFI_System_Partition

Répondre
#4  - citizenz7 a dit :

@Breizh : J'ai essayé "à la main" en créant une partition FAT32 de 300 Mo, avec /boot/efi comme "étiquette", en ESP, bootable.
Mais ça ne fonctionne pas, je n'ai pas GRUB.
Avec cela, je n'ai rien non plus dans le BIOS ou dans le Boot Menu de ma carte mère (F11). Je ne vois que le Windows Boot Manager.
Par contre comme expliqué dans le post, avec le live-cd Manjaro en allant sur "Detect EFI boot loaders", je vois un manjaro.efi. En validant, ça me donne accès à GRUB !

Répondre
#5  - Pierre a dit :

En EFI, chaque OS a son propre bootloader (je pense que tu as du mal regarder, tu dois le voir). Du coup on peut se passer de grub en utilisant le "bootloader menu" de l'EFI. Beaucoup s'acharnent à vouloir utiliser grub à tout prix parce que c'est comme ça qu'on a toujours fait sauf que... les choses changent.

Répondre
#6  - citizenz7 a dit :

Comme évoqué dans la réponse au post précédent : je ne vois rien, ni dans le menu de boot du BIOS, ni dans le Boot Menu avec F11...

Répondre
#7  - ekyo a dit :

salut,

j'utilise arch sur une carte mère cousine de la tienne (msi h110m), avec le même s/bios/uefi et je n'ai pas eu de souci en double boot w10/arch, grub est bien installé, et en appuyant sur f11 je vois bien les 2 entrées.

désolé pour ce message qui n'apporte rien de constructif, si ce n'est de te dire que ça marche avec arch (je n'utilise pas manjaro).

Répondre
#8  - citizenz7 a dit :

@ekyo :
comment as-tu partitionné ton disque ?
as-tu mis une partition de 300 Mo, FAT32, /boot/efi, bootable ?
où as-tu installé ton boot loader (Grub ?) . Sur le Windows Boot Manager ?

Répondre
#9  - Jambon a dit :

https://wiki.archlinux.fr/ESP
https://wiki.archlinux.fr/EFI_Boot_Stub
Visiblement tu n'en a pas besoin... il faut juste allez squatter dans la partition de W10 puis utiliser "EFI Boot Stub"

https://wiki.archlinux.org/index.php/Secure_Boot#Using_a_signed_boot_loader
Du moment que l'option "secure boot" n'est pas activé tout semble simple... après je parle beaucoup avec mon "pc-full-bios-2010-comme-on-en-fait-plus" smile

Bon courage !!

Répondre
#10  - ekyo a dit :

exactement, je n'ai pas créé de partition efi, j'ai repris celle de windows.
le reste c'est du très classique.

Répondre
#11  - citizenz7 a dit :

On m'a néanmoins conseillé d'installer une partition EFI sous Linux ... au cas où le disque contenant le Windows Boot Manager tomberait en rade. L'UEFI est capable de booter sur n'importe quel disque, semble t-il...

Répondre
#12  - plop a dit :

Salut,

Comme toi il m'a fallu un certain nombre de galères avant d'arriver à faire fonctionner une config comparable à la tienne smile

Quelques pistes:

1- Tu ne précises pas si tu as bien désactivé le secure boot?

2- As tu essayé en débranchant physiquement le disque dur Windows et ne laissant que ton disque Linux (+/- réinstall)?

3- Certains Bios virent tout ce qui n'est pas Windows au reboot, hé oui c'est trop génial, voir ici: https://forums.archlinux.fr/viewtopic.php?t=19080

4- A la base l'EFI peut booter plusieurs systèmes d'exploitation différents donc en théorie une seule partition EFI est nécessaire.

En principe ça peut même te remplacer un grub. Il faut faire ça avec EFIStub, un loader Linux sur ta partition EFI Windows.

Voir ici: https://wiki.archlinux.fr/ESP et ici: https://wiki.archlinux.org/index.php/EFISTUB.

L'inverse doit aussi être possible (booter Windows depuis ton EFI Linux, eh oui, c'est la partition que tu ne vois pas smile )

5- Il y a aussi moyen d'injecter des lignes de boot dans le bios UEFI, regarde du coté de efivars (https://wiki.archlinux.org/index.php /Unified_Extensible_Firmware_Interface#UEFI_Variables) - Attention a utiliser avec précaution (suite à une fausse manip il m'a fallu réinitialiser le bios)

Bon, c'est tout pour aujourd'hui, tiens nous au courant.

Répondre
#13  - citizenz7 a dit :

@plop : merci pour ta réponse.
- Oui, le secure boot est bien sur "disabled", tout comme le fast boot
- en appuyant sur F11 ou en passant par le live-cd de Manjaro, menu "Detect EFI boot loaders", je vois la ligne MANJARO et ca me donne accès à GRUB qui lance bien Manjaro ou Win10 (j'ai pas encore osé avec Arch big_smile )
- pour moi, c'est simplement un soucis d'emplacement de GRUB qui doit être sur ma partition /dev/sdb2, c'est à dire le Windows Boot Manager. Lorsque je fais une installation avec Xubuntu et que je choisis l'emplacement de GRUB, ca marche du PREMIER COUP (je tourne actuellement sur Xubuntu...)

Répondre
#14  - plop a dit :

Tu peux poster ce que donne fdisk -l qu'on y voit plus clair? cool

Répondre
#15  - plop a dit :

Je pense avoir trouvé en relisant tes posts et d'après ton écran de boot.

Et ton impression était bonne cool

Sauf erreur, tu as deux partitions EFI, /dev/sda1 (Manjaro) et /dev/sdb2 (Windows).

Ton grub est sur /dev/sda1 (grubx64.efi), et comme tu dois booter sur /dev/sdb2, l'EFI ne voit que le loader windows (bootx64.efi)

Il faut donc forcer l'install de grub sur /dev/sdb2 (ce que doit faire correctement Xubuntu).

Donc finalement voir ici, chapitre 2.3.3: https://wiki.archlinux.fr/GRUB

(grub-install **machin** --recheck, après avoir correctement monté /boot/efi)

On ne peut qaund même pas te laisser rester sur Ubuntu smile

Répondre
#16  - citizenz7 a dit :

@plop : oui c'est bien ça !!! big_smilecool

/dev/sda = Linux
/dev/sdb = Win10
Win10 est déjà installé sur le disque /dev/sdb et possède son Windows Boot Manager en /dev/sdb2

J'aurais bien fait ça :
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck /dev/sdb2
... mais je lis ça sur le wiki :
"Vous pouvez noter l'absence d'une option <device_path> (par exemple: /dev/sdx) dans la commande grub-install. En fait, n'importe quel <device_path> fourni sera ignoré par le script d'installation GRUB, car les chargeurs de démarrage UEFI n'utilisent pas un secteur de démarrage MBR ou partition."

Alors comment forcer l'install de GRUB en /dev/sdb2 ?

Répondre
#17  - plop a dit :

Car tu auras monté /boot/efi sur la partition concernée.

Relis bien les étapes au dessus cool

Répondre
#18  - citizenz7 a dit :

"Car tu auras monté /boot/efi sur la partition concernée."
Euh... non, là je suis perdu. Monté la partition /dev/sdb2 (Win boot manager) dans mon /boot/efi ???

Répondre
#19  - plop a dit :

Oui, exactement, la partition EFI système (formatée en FAT32) peut être partagée entre plusieurs systèmes d'exploitation (/dev/sdb2 chez toi à priori)

Explore /dev/sdb2, tu trouveras le loader windows (bootx64.efi) et celui de Xubuntu (grubx64.efi).

Comme tu l'as constaté, Manjaro se plante et crée une deuxième partition EFI sur /dev/sda1 au lieu de fusionner les deux.

Répondre
#20  - citizenz7 a dit :

Eh bien voila qui est enfin + clair !
J'essaie tout cela dès que possible.
Merci pour votre patience wink

Répondre
#21  - plop a dit :

Tiens nous au courant tongue

Répondre
#22  - citizenz7 a dit :

CA MARCHEEEEEE ! lol
C'est bien ça : après l'install de Manjaro, que ce soit en "Effacer tout le disque" ou en "Manuel" (ça ne change rien), il faut booter sur manjaro grâce au live-cd : Detect Efi Boot Managers / Manjaro ... Ca permet d'arriver sur GRUB et de booter sur Manjaro (F11 "boot" ne permet pas d'afficher Manjaro - en fait j'ai 2 Windows boot loaders qui apparaissent : un fait booter ... windows 10. L'autre ne fait rien et me ramène à l'écran initial).
De là, il faut monter la partition du Windows Boot Manager et installer GRUB dedans ! Après un grub-update, installation de os-prober et le reboot : BINGO --> Grub apparait au redémarrage avec toutes les entrées nécessaires, que ce soit Manjaro ou Windows !!!
Je ferai certainement un petit article sur l'art et la manière d'installer Manjaro ou tout autre distrib avec Win10 de pré-installé sur un disque dur et Linux installé sur un deuxième disque dur, le tout en EFI/GPT.

Répondre
#23  - plop a dit :

Cool cool

Répondre

Écrire un commentaire

 Se rappeler de moi sur ce site
Quelle est la dernière lettre du mot ajihq ?

Fil RSS des commentaires de cet article