Comment déterminer si un système particulier en cours d'exécution a été démarré à l'aide de EFI / UEFI ou du BIOS?
Comment déterminer si un système particulier en cours d'exécution a été démarré à l'aide de EFI / UEFI ou du BIOS?
Réponses:
Le moyen le plus simple est de vérifier si /sys/firmware/efi
existe. Il n'apparaît pas si vous avez démarré avec le BIOS traditionnel.
#!/bin/bash
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
Obsolète
La réponse ci-dessous est une méthode qui peut ne pas toujours fonctionner.
Utilisez plutôt la réponse de Colin basée sur/sys/firmware/efi
.
Il est très facile de savoir si un système a été démarré dans EFI (ou non, auquel cas il doit s'agir du BIOS):
Juste utiliser dmesg | grep "EFI v"
Cela retournera une ligne comme celle-ci, si le système a été démarré depuis EFI:
[0.000000] EFI v2.00 par American Megatrends
Ou ne retourne rien si ce n'était pas le cas, auquel cas il a été démarré à partir du BIOS
... dmesg | grep -q "EFI v" # -q dire à grep de ne rien afficher si [$? -eq 0] # vérifier le code de sortie; si 0 EFI, sinon BIOS ensuite echo "Vous utilisez le démarrage EFI." autre echo "Vous utilisez le démarrage du BIOS" Fi ...
Source: pour savoir si un système EFI utilise une émulation BIOS héritée ou non, ainsi que pour plus d’informations sur les tests de compatibilité EFI et EFI, ainsi que les chaînes d’un certain nombre de fournisseurs / versions d’EFI, veuillez consulter cette page à partir de le Sommet des développeurs Ubuntu pour Precise .
if dmesg | grep -Fq "EFI v"; then ...
. Inutile d'exécuter la [
commande en plus, juste pour tester le succès / l'échec. $?
est principalement utile pour vérifier des erreurs spécifiques.
Code Python pour vérifier si le système est démarré avec le BIOS UEFI ou ROM:
import os, sys def main (): if (os.path.exists ("/ sys / firmware / efi")): print "\ n \ n Le système est démarré avec uefi!" autre: print "\ n \ n Le système est démarré avec un bios ROM" principale() sys.exit (0)