> Tous les forums > Forum Linux
 Gestion du menu du chargeur de démarrage UEFI sous GNU/Linux
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Logicien
  Posté le 01/10/2015 @ 18:33 
Aller en bas de la page 
Astucien

Bonjour,

je ne vais pas essayer d'entrer dans des détails pour vous perdre, je veux attirer votre attention sur le menu de démarrage du microcode EFI, maintenant connu sous le nom UEFI. Plusieurs distributions GNU/Linux et même BSD peuvent s'installer en mode EFI, si la configuration du Bios/Efi le permet. Certaines peuvent même s'installer en mode 'sécurisé', soit le Secure Boot. Le mode EFI suppose l'existence d'une partition EFI System dans laquelle un système de fichiers FAT existe et contient tous les exécutables EFI, par exemple Grub, un noyau Linux, etc. Mon propos touche à la gestion des entrées du menu UEFI.

Sous Linux, la partition EFI System est souvent montée dans le répertoire /boot/efi. En supposant cette partition en sda1, dans /etc/fstab, en utilisant les droits du super-utilisateur root, on peut avoir une ligne pour son montage automatique

/dev/sda1 /boot/efi vfat defaults 0 0

Si le répertoire /boot/efi n'existe pas, on le crée

mkdir /boot/efi

Pour l'instant, on monte soit même le système de fichiers

mount /boot/efi

Une des nécessités de la gestion EFI sous Linux est le support des variables EFI. Ce support peut être compilé dans l'image du noyau Linux ou en module externe. On peut le savoir de différentes façons, par exemple en questionnant le fichier de configuration du noyau dans le répertoire /boot ou en faisant une recherche dans les modules du noyau. Pour faire simple, avec les distributions basées sur Debian, le support est compilé en module et sous la Arch, il est compilé dans l'image du noyau Linux. Donc sous Debian, on peut faire

echo efivars >> /etc/modules

afin que le module efivars soit chargé automatiquement au démarrage. Pour le moment, on charge manuellement le module en mémoire vive grâce à la commande

modprobe efivars

La partition EFI montée et les variables EFI accessibles, on peut manipuler le menu du microcode EFI. La commande principale utilisée pour cette tâche est efibootmgr . Il peut falloir l'installer

apt-get install efibootmgr

ou sous la Arch

pacman -S efibootmgr

Pour afficher les entrées du menu EFI en détail, on fait

efibootmgr -v

Dans la sortie, BootCurrent affiche un numéro d'entrée et ce numéro indique quelle entrée a été démarrée par le microcode EFI au dernier démarrage. Timeout indique le temps qui doit s'écouler avant que l'entrée par défaut ne soit démarrée si aucune entervention humaine n'est faite pour choisir une entrée au menu EFI. BootOrder indique l'ordre des numéros des entrées du menu EFI dans lequel le microcode EFI cherche à les exécuter. Toutes les entrées du menu EFI ne sont pas nécessairement dans ce choix. Finalement, toutes les entrées EFI sont affichées en commencant par le numéro de chacune.

Avec la commande efibootmgr, on peut ajouter/activer/désactiver/supprimer une entrée au menu du microcode EFI. On peut choisir l'ordre dans lequel le microcode EFI va exécuter les entrées du menu. On peut aussi choisir l'entrée que le microcode EFI va exécuter en premier au prochain démarrage seulement. Pour tous les détails, il faut lire la page de manuel

man efibootmgr

Pour terminer je vais donner un exemple pas très simple qui exploite le fait que le noyau Linux a une fonctionnalité qui fait de lui un exécutable EFI, soit EFI_STUB. Les noyaux Linux de la Arch comme ceux des distributions basées sur Debian ont cette capacité.

Je dois copier l'image du noyau Linux et son initramfs dans le répertoire /boot/efi qui contient les exécutables EFI. Par exemple, je peux créer un répertoire

mkdir /boot/efi/EFI/Debian

puis faire

cp /boot/vmlinuz-4.1.0-2-amd64 /boot/efi/EFI/Debian/

cp /boot/initrd.img-4.1.0-2-amd64 /boot/efi/EFI/Debian/

Maintenant je peux créer une nouvelle Entrée au menu EFI comme ceci:

efibootmgr -c -d /dev/sda -L "Debian-Efistub" -l /EFI/Debian/vmlinuz-4.1.0-2-amd64 -p 1 -u "consoleblank=0 enable_mtrr_cleanup fbcon=scrollback:1024k initrd=/EFI/Debian/initrd.img-4.1.0-2-amd64 loglevel=0 nohz=off noresume pcie_aspm=off root=/dev/sda3 rw"

L'option -u "..." de la commande contient les paramètres que je passe au noyau Linux comme je peux le faire avec un autre chargeur de démarrage. Pour s'assurer que l'entrée Debian-Efistub est bien créée et connaître son numéro , on fait

efibootmgr -v

Maintenant que l'entrée est créée, je peux l'insérer dans l'ordre de démarrage du menu EFI, ou, comme ici, forcer l'utilisation de cette entrée au prochain démarrage seulement

efibootmgr -n XXXX

ou XXXX est le numéro de la nouvelle entrée qui vient d'être créée.

La gestion du menu EFI a des similarités avec la gestion des entrées de Grub. Les deux sont des chargeurs de démarrages. Le mode EFI a justement comme objectif de permettre de se passer d'un chargeur de démarrage spécifique à un système d'exploitation donné. Je recommande de ne pas manipuler les variables EFI en chroot. C'est plus sûr de le faire avec le compte root du système d'exploitation hôte.

Il est bon de savoir que lorsque vous réinitialisez la configuration du Bios/Efi à ses paramètres par défaut et que vous sauvegardez, toutes les variables et entrées personnalisées du menu EFI sont perdues. C'est le retour à la configuration d'usine.

Note: Si un système d'exploitation Microsoft Windows est installé en mode UEFI, une des fonctionnalités du microcode UEFI peut être de démarrer automatiquement Windows et ce, indépendamment des manipulations qu'on peut faire à l'ordre de démarrage du menu UEFI.

Également, le mode EFI est controversé du point de vue des logiciels libres et de la licence GPL.



Modifié par Logicien le 13/11/2015 15:00
Publicité
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
309,99 €Ecran ultra large LG 34 pouces 34WN650-W à 309,99 €
Valable jusqu'au 22 Mai

Amazon propose actuellement l'écran 34 pouces LG 34WN650-W à 309,99 € alors qu'on le trouve à partir de 379,99 € ailleurs. Cet écran ultra large est au format 21/9, possède une dalle IPS et offre une résolution de 2560 x 1080 pixels. Avec lui, vous pourrez bénéficier d'une plus grande immersion dans les jeux et les films. Cet écran est compatible FreeSync.


> Voir l'offre
290,40 €Scie circulaire sur table Bosch Professional GTS 635-216 1600W à 290,40 €
Valable jusqu'au 22 Mai

Amazon fait une belle promotion sur la scie circulaire sur table Bosch Professional GTS 635-216 1600W qui passe à 290,40 € alors qu'on la trouve ailleurs à partir de 395 €. Elle possède un puissant moteur de 1 600 W pour hauteurs de coupe jusqu’à 70 mm et largeurs de coupe jusqu’à 635 mm.


> Voir l'offre
389 €Aspirateur robot laveur Roborock S7 avec pack serpillère (entrepôt européen) à 389 €
Valable jusqu'au 23 Mai

Geekbuying fait une belle promotion sur l'aspirateur robot laveur Roborock S7 avec 2 serpillères offertes à 389 € avec le code NNNDBFRS7NOIR au lieu de 600 €. En plus de l'aspiration puissante de 2500 PA et la reconnaissance automatique des pièces, ce robot dispose d'un nouveau système de serpillière (réservoir d'eau de 300 mL) avec vibration sonique qui optimise la performance de lavage. Elle frotte jusqu’à 3 000 fois par minute pour déloger les salissures.

Le Roborock S7 sera expédié d'un entrepôt polonais ce qui vous garantit une livraison rapide et sans douane.


> Voir l'offre

Sujets relatifs
Ajouter "nouveau document" au menu
Créer une clé USB multiboot (sous Debian) avec/sans UEFI
uefi vs legacy
Configurer le menu de grub sous debian
comment agrandir la police du menu de linux mint
[TUTO]Linux Mint 17, et l'affichage du Menu Grub au Démarrage.
Gestion des partitions
Wisker Menu a cassé mon linux....
Netgear N150: router login ne donne pas d'accéder au "menu"
Copier Vers/Déplacer vers dans menu contextuel
Plus de sujets relatifs à Gestion du menu du chargeur de démarrage UEFI sous GNU/Linux
 > Tous les forums > Forum Linux