Des outils pour modifier les variables UEFI sous Windows / Linux?

12

J'ai une machine DELL qui utilise Phoenix SecureCore Tiano comme UEFI / BIOS Cependant, elle n'est totalement pas configurable car son shell et ses menus UEFI sont cachés dans la configuration du BIOS.

Je me demande s'il y avait des outils qui peuvent modifier les paramètres UEFI (tels que les éléments de démarrage) en mode utilisateur? comme "efibootmgr" sous linux.

btw, parce qu'il n'est pas configurable, je pense que le processus de démarrage est en mode hérité, c'est-à-dire que les systèmes d'exploitation ne peuvent pas détecter l'existence de l'UEFI, ai-je raison?

c'est donc le paradoxe: je dois démarrer en mode non hérité pour permettre aux outils UEFI de modifier les éléments de démarrage en mode utilisateur? mais je dois d'abord activer les outils UEFI pour modifier les éléments de démarrage pour activer le démarrage non hérité?

marstone
la source
vient de découvrir que les vars efi stockées dans nvram, peut-être que ce lien aide: wikileaks.org/ciav7p1/cms/page_26968084.html
marstone

Réponses:

3

Les implémentations EFI doivent fournir un moyen de contrôler le mode de démarrage (EFI vs BIOS), sauf bien sûr pour les implémentations EFI uniquement sans prise en charge du BIOS. Trop souvent, cependant, le firmware donne à l'utilisateur peu ou pas de contrôle explicite de la question; au lieu de cela, le micrologiciel tente d'inférer le mode de démarrage correct en fonction de l'état du disque dur - par exemple, il peut utiliser le mode EFI si un GPT est détecté et le mode BIOS si un MBR est trouvé; ou il peut utiliser le mode EFI si une partition système EFI (ESP) est trouvée et le mode BIOS sinon. Vous pourrez peut-être trouver un indice sur ce que fait votre firmware en lisant le manuel. Sinon, il vous suffira d'expérimenter.

Lors du démarrage d'un support amovible, les règles peuvent être différentes, mais vous pouvez souvent lui donner un coup de pied dans la bonne direction en fournissant un seul mode de démarrage. Cela peut nécessiter de remasteriser un CD ou (plus facilement) de sélectionner soigneusement un CD. Si vous essayez de forcer un démarrage en mode EFI, mon rEFInd , et en particulier sa version CD amorçable, peut être utile; il démarre uniquement en mode EFI, et tel qu'il est configuré, il agira comme un gestionnaire de démarrage pour d'autres démarrages basés sur EFI, mais pas pour les démarrages en mode BIOS.

Rod Smith
la source
Merci! lorsque je partitionne mon hd en mode MBR, cela fonctionne comme prévu. cependant, si j'utilise le mode GPT, qu'il y ait ou non un ESP, il ne démarre tout simplement pas et donne cette erreur: "Operation System not Found". Le message d'erreur / erreur de syntaxe w provient sûrement du BIOS lui-même après avoir procédé à une ingénierie inverse de la ROM du BIOS (pas à partir d'un chargeur de démarrage ou d'un enregistrement de démarrage), donc je ne peux tout simplement pas faire passer le contrôle de démarrage en mode GPT.
marstone
Certains systèmes basés sur EFI ne démarreront en mode BIOS que s'ils détectent une partition MBR avec son drapeau "boot" (aka "actif") défini. Sur un disque GPT, cela nécessite de définir cet indicateur sur la partition de protection 0xEE du MBR. Vous pouvez utiliser un outil comme le fdisk de Linux pour ce faire (utilisez l'option "a"). N'utilisez pas d' outils parted, GParted ou d'autres outils basés sur libparted pour ce faire; sur un disque GPT, ils ne vous donnent aucun contrôle sur ce qui se trouve dans le MBR , et le "drapeau de démarrage" sera appliqué à une partition GPT , ce qui signifie qu'il définit le code de type sur celui d'une partition système EFI (ESP) .
Rod Smith
2

Je viens de libérer mon utilitaire si quelqu'un est intéressé. Il édite la variable UEFI dans les fenêtres.

https://gist.github.com/Zibri/19f9838ffd12349bb2c6c3afddc9388f/

Mise à jour le 25/02/2020 vers la version 1.2.
Aucune connexion Internet nécessaire.
Le nombre total de virus signale 6 (faux positifs) sur 96 car le code est obscurci.

Zibri
la source
CE N'EST PAS. Le programme est compressé et protégé et certains antivirus donnent un faux positif. Ce n'est pas un virus.
Zibri
Pour les signaleurs: ce programme obtient une détection quelque peu alarmante chez Virustotal mais il semble qu'il s'agisse d'une détection générique et de détections de "programme potentiellement indésirable". Il est possible qu'en raison de ce que ce programme fait, il soit entré dans les suites de logiciels malveillants, mais jusqu'à ce que quelqu'un puisse fournir des preuves directes qu'il s'agit d'un logiciel malveillant, la réponse est satisfaisante pour l'instant.
Mokubai
Je n'ai pas publié le code source et j'ai rendu difficile l'ingénierie inverse uniquement pour «retarder» ou «limiter» exactement la prolifération des logiciels malveillants en fonction de mon code «simple». Je pense à libérer la source, ce n'est pas un secret, je ne voulais tout simplement pas être la principale cause des futurs malwares basés sur uefi.
Zibri
Edit: mis à jour aujourd'hui vers la version 1.1.
Zibri
Mise à jour vers la version 1.2
Zibri
1

Je viens d'acheter un Dell XPS 17 (l702x) et je suis intéressé par le multi-démarrage d'une variété d'OS. Si ce que j'ai compris est correct, le Dell a une certaine forme de «BIOS» Phoenix SecureCore Tiano UEFI verrouillé. D'après ce que j'ai lu, l'UEFI n'est pas directement utilisable (éventuellement via un menu caché, etc., qui pourrait nécessiter un mod BIOS).

Il semble possible d'utiliser / d'accéder à un shell EFI compatible Phoenix, en utilisant les packages open-source (BSD) TianoCore edk2 / ShellPkg (source) et edk2 / ShellBinPkg (binary) ( GIT Repo ).

Je recommande le nouveau ShellBinPkg , utilisant le profil "full shell" de UEFI Shell 2.0 (supporte la plupart des commandes). Vous pouvez également reconstruire un shell personnalisé à l'aide du ShellPkg (build autonome ou l'inclure dans le package OVMF pour générer une version x64) - Inclusion du shell UEFI dans la distribution iso Linux .

Le binaire shell [U] EFI est compilé pour s'exécuter indépendamment du micrologiciel. Cela peut être testé en plaçant le shell sur un système de fichiers FAT32 (clé USB, partition de disque dur), renommé /efi/boot/bootx64.efipuis en y démarrant, à partir de votre BIOS [UEFI].

Le texte d'aide pour le shell est accessible en tapant help utilname. Le simple fait d'utiliser helpproduit une liste de toutes les commandes shell disponibles.

Remarque: Si vous ne parvenez pas à lancer directement UEFI Shell à partir du micrologiciel, créez une clé USB FAT32 avec Shell.efi copié sous (USB) /efi/boot/bootx64.efi. Cette clé USB devrait apparaître dans le menu de démarrage du firmware. Le lancement de cette option lancera le shell UEFI pour vous. - La vision d'Arch Linux sur UEFI

Big Rich
la source
c'est génial. j'ai acheté le même modèle l702x ;-) je vais l'essayer demain! le menu caché est toujours déblocable pour autant que je sache. btw, avez-vous compilé bootx64.efi et avez-vous déjà testé sur votre xps?
marstone
ShellBinPkg est un binaire précompilé du shell UEFI, vous êtes censé pouvoir simplement le renommer et le mettre dans le bon répertoire. Je l'ai essayé, et cela n'a pas fonctionné pour moi, mais je ne pense pas que ce soit le seul shell disponible (je suis nouveau dans ce domaine également). Ce message semble offrir un téléchargement de shell qui devrait fonctionner avec Phoenix SecureCore Tiano (voir la conversation.ridikulus.rat-> cfr). Fais nous savoir comment tu reussis.
Big Rich
J'ai essayé de mettre le fichier efi du post ci-dessus dans /efi/boot/bootx64.efi, cependant, mon disque USB a démarré normalement avec grub (il est déjà amorçable); puis j'ai formaté mon u-disque en mode HDD, et j'ai eu l'erreur "Supprimer les disques ou autres supports ...". J'ai ensuite fait une recherche hexadécimale pour cette chaîne secteur par secteur dans mon u-disque, elle n'existait pas. le message doit provenir du BIOS Tiano du L702x. quelque chose de mal pour mes opérations?
marstone
@marstone, désolé, mais je suis moi-même un débutant en ce qui concerne ce truc UEFI (je suis juste OK avec mon Google-fu ;-)). Occupé ailleurs, dès que j'aurai du temps, j'essaierai moi-même et je vous ferai savoir comment je vais. À la vôtre, riche.
Big Rich
Bien que Dell ait maintenant publié un bios compatible UEFI ( A19 ), `` capitankasar '' sur notebookreview a publié 2 bioses A18 modifiés ( uefi , uefi + nvida gpu ), ils traitent de l'UEFI, de l'overclocking du GPU NVidia et des vitesses de ventilation, etc. (certaines de ces fonctionnalités peut également exister dans la version officielle de Dell, je ne l'ai pas confirmé moi-même). Comme toujours, utilisez à vos risques et périls ;-)
Big Rich
0

Dans mes expériences, j'ai conclu comme suit:

Si vous souhaitez utiliser une clé USB multi-boot U / EFI, vous DEVEZ:

  1. effacer toutes les partitions / effacer complètement le lecteur;
  2. le convertir en GPT;
  3. créer une partition principale et la formater en Fat32;
  4. créer un répertoire appelé EFI (non sensible à la casse) à la racine du lecteur;
  5. créer un sous-répertoire dans le répertoire précédent appelé boot (non sensible à la casse également)
  6. placez-y le fichier .efi souhaité et renommez-le pour qu'il corresponde à l'architecture du système: bootx64.efi si x64, bootia32.efi si x86 ou bootaa64.efi si ARM64.

Je l'ai essayé dans un écran tactile Dell Inspiron 5437 et a parfaitement fonctionné.

Une dernière chose: si le fichier .efi n'est pas signé avec la signature numérique de Microsoft, vous devez désactiver uniquement le mode de démarrage sécurisé sous les paramètres fw. Laissez le démarrage UEFI et le mode de démarrage rapide activés.

Pour les tests, recherchez la clé de démarrage multiple de votre machine OEM avant de l'installer définitivement et sélectionnez-la uefi: <your usb key>dans la liste présentée.

Thiago Postio
la source