Quitter le forum et retourner au site

BIOS UEFI / GPT / secure boot

Vous avez un didactiel ou une astuce particulière concernant un logiciel, partagez votre expérience dans cette partie.
Avatar de l’utilisateur
le Manchot Masqué
Administrateur du site
Messages : 719
Inscription : lun. 26 mai 2008, 21:05
Distribution : Debian, Ubuntu
Niveau : Moitié plein !
Localisation : Guebwiller

BIOS UEFI / GPT / secure boot

Message par le Manchot Masqué »

Avec les BIOS UEFI, les nouvelles tables de partition GPT, et le Secure Boot imposé par notre cher ami de Redmont, il devenait utile de faire un point technique de ces changements majeurs dans nos machines. A noter que ce post fait suite aux nombreux autres sur le même sujet - merci d'utiliser le moteur de recherche avec le mot clé "uefi" pour les retrouver.

On se placera toujours ici dans le cadre d'une machine en dual boot (GNU/Linux + windows).
Vous aurez compris que ce post est plutôt réservé aux usagers avancés, qui, je l'espère, viendront le compléter avec leurs propres expériences.

L'EFI
-----

Désormais, c'est donc une RAM non volatile, nommée NVRAM, qui prend en charge le démarrage de l'ordinateur, et s'appuie sur une partition EFI pour choisir le système à démarrer.

Premier grief : cette partition EFI utilise de la FAT32 - un système de fichier "privateur de liberté" qui entraine une dépendance tacite, laquelle n'existait pas dans l'ancienne génération. Une manière de forcer les libristes à utiliser du format propriétaire, pour mieux venir les taxer ensuite ? Nous verrons bien...

En attendant, on rappellera que la partition EFI doit être montée sous GNU/Linux dans /boot/efi, et que l'installation d'une Ubuntu créée un répertoire /boot/efi/EFI/ubuntu contenant les fichiers grub.cfg, grubx64.efi, MokManager.efi et shimx64.efi.

L'ordre de démarrage se contrôle sous GNU/Linux via la commande efibootmgr. Je vous conseille notamment :

Code : Tout sélectionner

efibootmgr -v # pour visualiser les partitions
efibootmgr -n XXXX # pour lancer le prochain démarrage en forçant le système à démarrer sous la partition XXXX (à adapter suivant votre configuration)
efibootmgr -o XXXX,YYYY,ZZZZ # pour fixer l'ordre de démarrage de votre machine  (à adapter suivant votre configuration)
Dans tous les cas, la partition de démarrage doit être celle qui contient shimx64.efi, et non grubx64.efi !

Mon conseil : si windows accepte de démarrer sans Secure Boot (voir plus loin), utilisez l'option -o en ne laissant que le numéro qui pointe vers shimx64.efi :.

On peut également utiliser la commande bcdedit sous windows via:

Code : Tout sélectionner

bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi
mais cette dernière ne marche pas à tous les coups, malgré le fait de la lancer cmd.exe en administrateur... Comme d'habitude, pas la peine d'attendre des miracles d'un éditeur toujours incapable de supporter l'ext4 en 2015 !

A savoir : certains fabricants complices réarrangent en douce l'ordre de démarrage après un passage dans le BIOS, et des retours de nos propres usagers, il semble bien que windows 8 ait également cette tendance à vouloir reprendre la main en court-circuitant GRUB au démarrage ! Nous assistons donc à une superbe pratique déloyale, qui semble malheureusement devenir courante !

Un usager avancé aura vite fait de reprendre la main via une clé USB GNU/Linux et quelques commandes de terminal que nous verrons plus loin, mais il va de soit que ce procédé vise clairement les novices, en leur faisant croire que GNU/Linux a planté ou disparu. Une manière comme une autre d'éradiquer la concurrence vite fait bien fait ! C'est aussi pour cette raison que nous poussons les gens à acheter des machines nues, et à prendre un windows 7 s'ils veulent vraiment un dual boot.

En cas de problème, il faut donc démarrer depuis une clé USB GNU/Linux pour reprendre la main, monter la partition racine depuis Unity, et se souvenir des quelques commandes pour simuler un démarrage depuis le disque dur :

Code : Tout sélectionner

mount --bind /dev /media/ubuntu/nom_ou_dev_partition/dev
mount --bind /proc /media/ubuntu/nom_ou_dev_partition/proc
mount --bind /sys /media/ubuntu/nom_ou_dev_partition/sys
chroot /media/ubuntu/nom_ou_dev_partition
mount /boot/efi
update-grub
grub-install /dev/sdx
avec nom_ou_dev_partition et sdx à adapter bien entendu à votre configuration

GRUB
----

Deux solutions possibles :

1 / Si windows ne casse pas les pieds en désactivant le Secure Boot dans le BIOS UEFI, le chargeur de démarrage GRUB fait son boulot normalement. C'est le cas idéal.

A noter que la commande update-grub utilise os-prober pour la détection des autres systèmes présents sur la machine. Si vous démarrez depuis une clé USB, il peut arriver qu'os-prober échoue à détecter les systèmes privateurs de liberté présents. Il faut alors démarrer sous GNU/Linux et refaire un update-grub en console pour détecter tous les OS présents comme indiquer plus haut.

2 / Si windows impose le secure boot, là, c'est la merde - n'ayons pas peur des mots - et il n'y a aucun moyen de s'en tirer simplement, à part bien entendu changer d'os privateur de liberté, ou de le virer manu militari !

Les partitions GPT
---------------------

Les tables de partitions GUID (GPT) sont indépendantes de la génération BIOS : vous pouvez parfaitement avoir une machine non UEFI qui utilise du GPT sur ses disques.

Si gparted semble bien s'accommoder du nouveau venu en mode graphique, c'est désormais l'utilitaire gdisk et non plus fdisk qu'il faut utiliser en mode console.

Pour le reste, les problèmes de compatibilité qui régnaient avec les premières Ubuntu 12.04 LTS semblent avoir disparu. Si vous rencontrez encore des difficultés, il faut savoir qu'on peut convertir un disque GPT en mode classique LBA, mais qu'on perd alors tout ce qui est installé dessus (systèmes + fichiers).

C'est un peu dommage d'avoir attendu l'UEFI pour faire ce changement majeur dans la gestion de nos disques dur, mais si on voit le bon côté des choses, cela empêchera désormais certains constructeurs ne nous casser les pieds en occupant inutilement toutes les partitions disponibles - je pense notamment à HP qui a brillé dans ce domaine pendant des années.

Le Secure Boot
-----------------

Suivant la machine, vous pouvez désactiver le secure boot dans le BIOS UEFI et, si le fabricant a été sérieux (et honnête), windows redémarrera sans problème et sans râler. Vous pourrez alors installer GNU/Linux normalement à côté.

Si au contraire, le fabricant est un gros con qui vous a vendu une machine bridée, vous vous retrouverez complètement coincé, à devoir soit jouer constamment avec le BIOS quand vous passez d'un OS à un autre pour activer/désactiver le SB (quoi ? l'ESB ?;), soit devoir passer par windows pour ensuite appeler GNU/Linux, ce qui est clairement intolérable comme procédé !

Bref, on ne pourra qu'encourager une fois encore les particuliers à acheter leur machine nue, en se renseignant préalablement, et en arrêtant de se jeter sur des modèles à problèmes.

L'arnaque de certains fabricants
-------------------------------------

Comme l'ont constaté plusieurs membres, il a été impossible, sur certains portables, de démarrer depuis un périphérique externe, et ce malgré les options correctes configurées dans le BIOS et les nombreux périphériques et distributions testées. La question de savoir s'il faut déclarer ces machines à la DGCCRF pour tromperie sur la marchandise - car c'est bien ce dont il s'agit - se pose donc clairement. On ne peut en effet continuer d'accepter que certains vendent une machine comme un compatible PC, alors que ce matériel n'est plus un compatible avec rien...
Répondre