Contenu | Rechercher | Menus

Ordinateurs avec UEFI (~EFI)

Intel Visual BIOS, l'une des nombreuses interfaces UEFI

Unified Extensible Firmware Interface (UEFI) est une 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 d'Ubuntu.

(On retrouve parfois l'appellation « EFI » pour désigner cette interface. A l'origine, EFI était développé par Intel. Les spécifications ont été reprises par un ensemble d'acteurs informatiques réunis en un seul groupe, l'UEFI Forum, puis distribuées sous l'appellation « UEFI ». Dans le présent document et dans les forums d'aide, à moins d'un avis contraire, ces deux termes désignent essentiellement la même chose.)

Installer rapidement Ubuntu sur un PC récent (sans se soucier de l'EFI)

L'installateur d'Ubuntu ne reconnaît la présence de Windows-8/10® pré-installé en mode EFI qu'à partir de Trusty 14.04.2 (14.04.3 pour certaines variantes). De plus, ces versions d'Ubuntu s'affranchissent de la désactivation du secure-boot.
Sauf à savoir ce que vous faites, n’utilisez pas de version d'Ubuntu antérieure à Trusty 14.04.2 pour une installation en conservant Windows® pré-installé en mode EFI.

Si votre ordinateur est récent (>2010) et que vous ne savez pas ou vous n'avez pas besoin d'installer Ubuntu en mode UEFI, vous devriez être en mesure d'installer Ubuntu rapidement et correctement en suivant les étapes suivantes :

  1. Dans le BIOS, désactiver le QuickBoot (parfois appelé FastBoot)1) et Intel Smart Response Technology (SRT). Si vous avez Windows-8/10® pré-installé, désactivez le démarrage rapide ("Fast Startup" Off).
  2. Installez Ubuntu normalement (sans vous préoccuper de l'EFI),
  3. Redémarrez l'ordinateur.

Une fois redémarré:

Installer Ubuntu en mode EFI

Avertissement: si vous êtes débutant, mieux vaut suivre les conseils du paragraphe précédent.

Cas où il faut installer Ubuntu en mode EFI

Le fait d'avoir un ordinateur équipé du système UEFI n'implique pas nécessairement que Ubuntu soit installé en mode EFI.

  • si les autres systèmes (Windows Vista/7/8, GNU/Linux…) de votre ordinateur sont installés en mode EFI, alors il faut installer Ubuntu en mode EFI.

Pour le savoir : Sous Windows ouvrir le terminal en mode admin (démarrer → taper "cmd" et CTRL-MAJ-ENTER) et taper "bcdedit". S'affichent deux blocs d'informations. Dans le deuxième le "path" est le révélateur : s'il finit en efi le système est installé en efi.

....
Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.efi
description             Windows 7 Home Premium (recovered)
....

  • Si les autres systèmes (Windows, GNU/Linux…) de votre ordinateur sont installés en mode classique (hérité/legacy), alors il faut installer Ubuntu en mode classique (hérité/legacy). → C'est le cas si votre ordinateur est ancien (<2010), est 32bits, ou possédait un Windows XP pré-installé par exemple.
  • Si Ubuntu est le seul système sur votre ordinateur, alors peu importe, vous pouvez l'installer en mode EFI ou pas (hérité/legacy).

Principe général

Pour installer Ubuntu en mode EFI:

Type d'installation

Versions d'Ubuntu amorçables en mode EFI

  • Seule la version internationale d'Ubuntu 64bits, et ses variantes 64 bits (Kubuntu, Xubuntu, Lubuntu) permettent de démarrer en mode EFI.
  • Seul l'installateur des versions d'Ubuntu supérieures ou égales à Trusty.14.04.2 reconnaît la présence de Windows® pré-installé en mode EFI.
    :!: Certaines variantes de Trusty 14.04.2 64bits peuvent ne pas détecter Windows®. Pour avoir l'assurance d'une bonne détection de Windows® en mode EFI, utilisez au minimum Trusty 14.04.3. 64bits ou versions supérieures.
  • Ubuntu Edition Francophone 64bits ne peut pas démarrer en mode EFI (bug), mais une fois installée, elle peut être convertie en mode UEFI.

Identifier si l'ordinateur démarre sur le disque dur en mode EFI

Cela n'est possible que si vous avez déjà installé Ubuntu sur le disque dur. Ou bien en regardant dans les réglages du BIOS (voir paragraphe ci-dessous).

Depuis une session Ubuntu installée sur le disque (à noter que ça fonctionne aussi pour une session liveCD ou liveUSB), il suffit d'ouvrir un terminal, et saisir la commande suivante:

[ -d /sys/firmware/efi ] && echo "Session EFI" || echo "Session non-EFI"

Remarque: si le démarrage est en mode classique (le résultat de la commande est "Session non-EFI"), soit le BIOS n'est pas de type UEFI, soit le BIOS est de type UEFI mais n'est pas réglé pour démarrer sur le disque dur en mode UEFI.

Identifier si l'ordinateur démarre sur le CD (ou la live USB) en mode EFI

Remarque: même si votre PC démarre sur le CD (ou la Live USB) en mode EFI, il est possible qu'il démarre sur le disque dur en mode classique (et inversement).

Lorsqu'on démarre sur un CD Ubuntu compatible EFI:

  • Si l'ordinateur est réglé pour démarrer sur le CD en mode EFI, vous verrez apparaître l'écran ci-dessous (avec la ligne "Try Ubuntu without installing" présélectionnée) :

  • Si l'ordinateur est réglé pour démarrer sur le CD en mode classique (non-EFI), ou si le CD n'est pas compatible avec l'EFI, vous verrez apparaître l'écran ci-dessous:

Dans le cas d'une live USB MultiSystem, ce moyen d'identification à l'écran n'est pas possible : à la place, on peut utiliser depuis la session live la commande du paragraphe Identifier si l'ordinateur démarre sur le disque dur en mode EFI

Régler le démarrage en mode EFI ou classique

Certains ordinateurs récents (2011 et +) permettent de régler le démarrage soit en mode classique (=mode BIOS) soit en mode UEFI. La manière d'effectuer ce réglage varie selon les ordinateurs, mais généralement ce réglage se situe dans l'onglet "Boot order" du BIOS/UEFI (il faut généralement appuyer sur une touche à l'allumage du PC pour y accéder, voir ce tutoriel).

Remarque: certains BIOS permettent de régler séparément le mode de démarrage sur CD et celui sur disque dur.

Par exemple, ci-dessous:

  • la ligne "UEFI Hitachi" permet de démarrer sur le disque dur en mode EFI,
  • la ligne "P1: Hitachi" permet de démarrer sur le disque dur en mode classique (non-EFI),
  • la ligne "P3: DVD" permet de démarrer sur le CD Ubuntu en mode classique
  • la ligne "UEFI: USB" permet de démarrer sur le liveUSB Ubuntu en mode EFI

1347270285.jpg

et voici un 2e exemple, plus simple, où le paramètre "Boot Mode" permet de choisir le mode de démarrage ("UEFI" ou "Legacy") sur tous les médias (disque dur, CD, USB…).

1347270332.jpg

Il existe aussi des firmwares qui proposent une option "UEFI/Legacy Boot:" avec les choix [Legacy only], [UEFI only] et [Both], ce dernier démarrant en priorité en mode EFI, puis en mode Legacy si aucun fichier EFI n'est détecté.

Créer une partition EFI

Si le seul disque de votre ordinateur est neuf, il faut d'abord créer une table de partitionnement au format 'GPT' avec l'onglet 'périphériques' de gparted. Une partition EFI est indispensable pour installer Ubuntu en mode EFI via l'installateur manuel. Ubuntu ne sait actuellement utiliser que la partition EFI du premier disque. En cas d'installation de ubuntu sur un second disque, ce n'est pas la peine de créer une partition EFI sur le second disque. C'est celle du premier disque qui sera utilisée.

  • Dans le cas de Windows 8 préinstallé (et certains Windows 7 préinstallés), une partition EFI existe déjà. Il ne faut pas en créer une autre : cette partition sera réutilisée par l'installateur manuel de Ubuntu sans qu'on ait besoin de définir quoi que ce soit pour elle.
    • Dans le cas d'une installation windows10 après une installation ubuntu, il semble nécessaire de libérer 60Go en début du premier disque et déconnecter les autres disques. Les 4 partitions nécessaires à windows10 seront alors automatiquement créées.
  • Une partition EFI peut être créée via une version récente de gParted, et doit posséder les caractéristiques suivantes:
    • Taille : entre 35 Mo et 250Mo mais une taille de 5 Mo est suffisante si vous n'installez pas windows mais impossible à faire accepter par gparted.
    • Type : FAT32
    • Drapeau : BOOT (ou ESP si cette option est présente dans GPARTED)
    • Autre : doit être située en début2) d'un disque partitionné en GPT,
    • Elle sera automatiquement reconnue par l'installateur de ubuntu qui lui attribuera le point de montage suivant;/boot/efi 3)

Identifier un Ubuntu installé en EFI

Depuis l'Ubuntu installé, ouvrir un terminal (Ctrl+Alt+T) et saisir la commande suivante:

[ -d /sys/firmware/efi ] && echo "Installé en mode EFI" || echo "Installé en mode classique"

Sinon, en analysant le Boot-Info réalisé depuis une session live, on peut trouver les indices suivants d'un Ubuntu installé en mode EFI :

  • son fichier /etc/fstab contient une partition EFI (point de montage /boot/efi)
  • il utilise l'amorceur grub-efi (et pas grub-pc)

Convertir Ubuntu en mode EFI ou non-EFI

Convertir Ubuntu en mode EFI

Pour que cette conversion soit possible, il faut régler votre BIOS pour qu'il démarre sur le disque dur en mode EFI (voir le paragraphe "Régler le démarrage en mode EFI ou classique" ci-dessus). De plus, il faut opérer depuis une session live démarrée en mode EFI (voir le paragraphe "Identifier si l'ordinateur démarre sur le CD (ou la live USB) en mode EFI")

  • Démarrer Boot-Repair, cliquer sur "Options avancées", et aller dans l'onglet "Emplacement de GRUB".
  • Si vous ne voyez pas une ligne "Partition /boot/efi séparée", cela signifie que votre PC n'a pas de partition EFI. Dans ce cas, quittez Boot-Repair, puis créez une partition EFI (voir paragraphe "Créer une partition EFI" ci-dessus).
  • Si vous voyez une ligne "Partition /boot/efi séparée", cochez-là puis cliquez sur le bouton "Appliquer".

Si vous voyez plusieurs partitions possibles sur plusieurs disques, cochez ce que vous vous voulez car cela sera toujours la première de la liste qui sera prise en compte y compris en version 16.04

Convertir Ubuntu en mode classique

  • Démarrer Boot-Repair, cliquer sur "Options avancées", aller dans l'onglet "Emplacement de GRUB"
  • Décocher l'option "Partition /boot/efi séparée"
  • Appliquer
  • Régler votre BIOS pour qu'il démarre sur le disque dur en mode classique (voir le paragraphe "Régler le démarrage en mode EFI ou classique" ci-dessus).

Activer / désactiver le Secure Boot

Le Secure Boot est une nouvelle fonctionnalité de l'UEFI, apparue en 2012 avec les ordinateurs pré-installés Windows 8. Sa prise en charge par Ubuntu a commencé avec 12.10 (et 12.04.2), mais elle n'est pas complète, donc vous risquez de devoir le désactiver pour pouvoir démarrer Ubuntu.

Ci-dessous un exemple de BIOS indiquant que le Secure Boot est activé :

1353511012.jpg

Pour désactiver ou activer le Secure Boot, trouvez une option similaire dans votre BIOS et utilisez le clavier pour passer cette ligne de l'état Activé (Enabled) à Désactivé (Disabled).

Chaque constructeur ayant une manière différente de faire, si vous n'avez pas trouvé comment désactiver le sécure boot, faites un tour dans cette documentation : Comment désactiver le secure boot

Contourner le démarrage forcé sur Windows 8

Cette méthode de contournement du bridage des ordis HP est à réserver aux utilisateurs confirmés. Pour les novices, il est préférable d'en rester à la configuration obtenue après installation de Ubuntu :
- démarrage par défaut sur Windows 8
- pour aller sur Ubuntu : appui sur la touche Echap au démarrage puis sur la touche F9 et sélection de "ubuntu" dans le menu de démarrage

Pour les Ordinateurs HP une mise a jour de l'UEFI suffit pour que les 2 OS cohabitent (il faut que votre UEFI soit minimum en version F30). Que çela fonctionne ou pas, c'est de la roulette russe : Si vous avez dans l'UEFI une flèche au niveau de OS selection, c'est tout bon ; Sinon, il faut suivre la méthode ci-dessous.

Sur les machines HP vendues avec Windows 8, le bios UEFI démarre toujours sur Windows même après l'installation d'Ubuntu.
L'installation d'Ubuntu est pourtant bonne, et ce fonctionnement est dû au partenariat entre le constructeur de l'ordinateur et Microsoft, les 2 cherchant à verrouiller le démarrage au fait que les premiers UEFI d'HP étaient mal implémentés il faut donc les mettre à jour via le site de HP.
Ceci est fait en identifiant la signature du programme efi dans l'un des 3 emplacements possibles indiqués plus bas, et en démarrant sur celui qui a la bonne signature même si les 2 autres ont été remplacés.

Sur certaines machines HP vendues avec Windows10, le bios UEFI permet de choisir le gestionnaire de démarrage du SE qu'il faut positionner sur ubuntu

Sur les machines Toshiba vendues avec Windows 8, le bios UEFI démarre avec le fichier EFI/Boot/bootx64.efi.
Une fois l'nstallation d'Ubuntu réalisée, il suffit de remplacer le fichier /boot/efi/EFI/Boot/bootx64.efi par le fichier /boot/efi/EFI/ubuntu/shimx64.efi

Les ordinateurs ACER récents exigent que l'utilisateur définisse ubuntu comme un OS habilité. Cela permettra aussi de gérer les priorités de boot.

La technique qui suit semble devoir être utilisée pour certains ordinateurs MSI (en date du 31/10/2015) ainsi que SONY.

La méthode Boot-Repair prend en charge ce cas là mais n'explique pas ce qui se passe. Voici donc une méthode alternative détaillée mais nécessitant de savoir utiliser un terminal). Voici les étapes à suivre, détaillées dans les sous-paragraphes suivants :

  1. sauvegarder les programmes d'amorçage EFI d'origine
  2. renommer le programme d'amorçage standard de Microsoft, et écraser toutes les copies que peut charger le bios UEFI par le programmes d'amorçage de grub
  3. modifier le système de détection des autres OS de grub

PS: Cette méthode fonctionne avec Debian Jessie, en veillant toutefois à remplacer ubuntu/shimx64.efi par le fichier présent dans /debian

Sauvegarder l'existant

  • Démarrer l'ordinateur. Sous Windows 8, redémarrer pour démarrer ensuite sous Ubuntu :
    • aller en bas à droite, périphérique, rester appuyer sur la touche Majuscule, choisir d'icône de mise sous tension, et choisir redémarrer
    • dans le menu sur fond blanc, choisir <à compléter>, et ensuite Ubuntu
  • Sous Ubuntu, faire une copie des fichiers EFI dans un terminal :
    sudo cp -R /boot/efi/ ~/EFI_sauvegarde/
  • Vérifier les différentes copies (somme de contrôle md5) :
    find /boot/efi/ ~/EFI_sauvegarde/ -name "*.efi" -exec md5sum {} \; | sort
    • On observe en général que /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi et /boot/efi/EFI/Boot/bootx64.efi sont identiques:
      dbed1f7ed9e19e53bfc7f43122ce3d83  /boot/efi/EFI/Boot/bootx64.efi 
      dbed1f7ed9e19e53bfc7f43122ce3d83  /boot/efi/EFI/HP/boot/bootmgfw.efi 
      dbed1f7ed9e19e53bfc7f43122ce3d83  /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi 
    • Le système Ubuntu peut utiliser shimx64.efi ou grubx64.efi pour démarrer, le premier étant compatible avec Secure-Boot, alors que le second ne l'est pas

Remplacer le programme d'amorçage standard

Toujours sous Ubuntu :

  • Renommer /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi en /boot/efi/EFI/Microsoft/Boot/bootmgfw_orig.efi :
sudo mv /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw_orig.efi 
  • Supprimer sous /boot/efi/ toutes les copies du programme EFI ayant la même somme de contrôle que /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi :
sudo rm /boot/efi/EFI/Boot/bootx64.efi 
sudo rm /boot/efi/EFI/HP/boot/bootmgfw.efi 
  • Copier le programme d'amorçage /boot/efi/EFI/ubuntu/shimx64.efi sous /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi :
sudo cp  /boot/efi/EFI/ubuntu/shimx64.efi /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi 

/!\ il arrive parfois à windows de réécrire /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi en cas de mise à jour… Dans ce cas, recommencer les étapes décrites ci-dessus /!\

  • Redémarrer l'ordinateur.

A cette étape là, le bios UEFI de l'ordinateur démarrera sur grub, et grub ne pourra démarrer que le système Ubuntu, le programme d'amorçage de Microsoft ayant été supprimé.

Permettre le démarrage de Windows

Grub n'est plus en mesure de détecter correctement le programme d'amorçage de Windows car il n'est plus disponible sous son nom standard. Il faut donc lui permettre de retrouver le nouveau nom.

Solution 1

Principes : - Grub utilise la commande os-prober pour détecter les autres OS. Cette commande cherche un chemin standard pour détecter Windows. L'objectif est de modifier le résultat en sortie de cette commande pour tenir compte du renommage effectué plus tôt (bootmgfw.efi renommé en bootmgfw_orig.efi)

sudo os-prober

Le système Ubuntu étant régulièrement mis-à-jour, il faut que la modification opérée ne soit pas écrasée lors des mises-à-jour. Il faut donc créer un script supplémentaire, qui ne soit pas fourni par un paquet existant

  • Créer le script /tmp/za-windows8-hp
touch /tmp/za-windows8-hp ; sudo xdg-open /tmp/za-windows8-hp
  • Reseigner son contenu comme ceci :
#! /bin/sh
set -e

sed -i -e "s/item_in_dir bootmgfw.efi/item_in_dir bootmgfw_orig.efi/" /usr/lib/os-probes/mounted/efi/20microsoft

exit 0
  • Enregistrer le fichier et fermer l’éditeur de texte.
  • Créer le script /etc/kernel/postinst.d/za-windows8-hp :
sudo mv /tmp/za-windows8-hp /etc/kernel/postinst.d/za-windows8-hp
  • Il doit être rendu exécutable (même droits que le scripts /etc/kernel/postinst.d/zz-update-grub) :
sudo chmod ugo+x /etc/kernel/postinst.d/za-windows8-hp
sudo chown root:root /etc/kernel/postinst.d/za-windows8-hp
  • Exécuter le script une première fois (les fois suivantes, il sera exécuté lors de l'installation d'un nouveau noyau linux) :
sudo /etc/kernel/postinst.d/za-windows8-hp
  • Vérifier que le nom du programme EFI renvoyé par os-prober est bien le nom modifié (/EFI/Microsoft/Boot/bootmgfw_orig.efi) :
sudo os-prober
  • Mettre-à-jour les entrées de grub :
sudo update-grub
  • Redémarrer et tester le démarrage sous Windows.

Solution 2

Souvent l'utilisateur a tenté de faire un boot-repair qui n'a rien donné comme résultat positif sauf de fabriquer un fichier 25_custom contenant 3 entrées standards de boot.

  • Lire ce fichier.
  • Eliminer la dernière entrée.
  • Rectifier le nom de fichier de boot prévu pour windows (bootmgrfw.efi) par le nouveau nom que vous avez attribué (BKbootmgrfw.efi). Eventuellement remplacer le nom de l'entrée par un nom plus pratique.
  • Ajouter toutes ces lignes au fichier /etc/grub.d/40_custom.
  • Commenter ou supprimer toutes les lignes contenues dans le fichier 25_custom
  • Mettre à jour les entrées du grub
sudo update-grub

.

  • Redémarrer et tester le démarrage sous windows.

Dépannage du dual-boot avec Windows 8 ou Windows 10

Même si le démarrage par défaut se fait sur Ubuntu après installation, il peut arriver qu'il se remette sur Windows 8. Il suffit alors d'utiliser les "Options de démarrage avancées" de Windows (voir ici) pour redémarrer sur Ubuntu et depuis la session Ubuntu, passer la commande qui va remettre Ubuntu en priorité de démarrage :

sudo grub-install

A noter : il est possible que cette réparation simple ne fonctionne pas si le système UEFI a été bridé par le fabricant de l'ordinateur pour forcer le démarrage sur Windows.

Dépannage du Boot UEFI

rEFInd est un utilitaire à avoir en cas de problème avec le boot UEFI. En effet, il permet de redémarrer son système en mode UEFI, et donc de faire une réparation de celui-ci a partir d'Ubuntu, lancé sans passer par chroot ou autre.

Pour l'installer, coller cette commande dans un terminal:

sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ubuntu --recheck --debug /dev/sdaX

En remplaçant X (dans sdaX) par le numéro de votre partition

A noter: seule la version CD-R image supporte le boot avec Secure Boot activé, pas la version USB flash drive image file

Voir aussi

2) = n'importe quel emplacement entièrement inclus dans les 100 premiers Go du disque
3) inutile de préciser ce point de montage si vous créez cette partition via l'installateur Ubuntu, cf cette discussion


Le contenu de ce wiki est sous licence : CC BY-SA v3.0