मैं यह कैसे निर्धारित करूं कि क्या कोई विशेष चल रहा उबंटू सिस्टम EFI / UEFI, या BIOS का उपयोग करके बूट किया गया था?
मैं यह कैसे निर्धारित करूं कि क्या कोई विशेष चल रहा उबंटू सिस्टम EFI / UEFI, या BIOS का उपयोग करके बूट किया गया था?
जवाबों:
यह देखने का सबसे आसान तरीका है कि क्या /sys/firmware/efi
मौजूद है या नहीं। यदि आप पारंपरिक BIOS का उपयोग करके बूट करते हैं तो यह प्रकट नहीं होता है।
#!/bin/bash
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
पदावनत
नीचे दिया गया उत्तर एक विधि है जो हमेशा काम नहीं कर सकती है।
इसके बजाय का उपयोग कॉलिन के जवाब के आधार पर/sys/firmware/efi
।
यह बताना बहुत आसान है कि क्या कोई सिस्टम EFI में बूट किया गया था (या नहीं, किस स्थिति में इसे BIOS होना चाहिए):
महज प्रयोग करें dmesg | grep "EFI v"
यह इस तरह से एक लाइन लौटाएगा, यदि सिस्टम EFI से बूट किया गया था:
[[००००००] अमेरिकी मेगेट्रेंड्स द्वारा ईएफआई v2.00
या कुछ भी नहीं लौटाएं अगर यह नहीं था, तो यह किस स्थिति में BIOS से बूट किया गया था
... dmesg | grep -q "EFI v" # -q, grep को आउटपुट कुछ भी नहीं बताता है अगर [$? -एक ०] # चेक एग्ज़िट कोड; यदि 0 ईएफआई, अन्य BIOS फिर इको "आप ईएफआई बूट का उपयोग कर रहे हैं।" अन्य गूंज "आप BIOS बूट का उपयोग कर रहे हैं" फाई ...
स्रोत: यह निर्धारित करने के लिए कि कोई ईएफआई प्रणाली विरासत-BIOS एमुलेशन का उपयोग कर रही है या नहीं, साथ ही साथ ईएफआई और ईएफआई संगतता के लिए परीक्षण पर अधिक जानकारी के साथ-साथ कई ईएफआई विक्रेताओं / संस्करणों के लिए, कृपया इस पृष्ठ को देखें सटीक के लिए Ubuntu डेवलपर शिखर सम्मेलन ।
if dmesg | grep -Fq "EFI v"; then ...
। [
इसके अतिरिक्त कमांड चलाने का कोई मतलब नहीं है , बस सफलता / असफलता के लिए परीक्षण करना है। $?
विशिष्ट त्रुटियों के लिए जाँच के लिए मुख्य रूप से उपयोगी है।
सिस्टम में UEFI या ROM BIOS के साथ बूट होने की जाँच करने के लिए पायथन कोड:
आयात os, sys def मुख्य (): अगर (os.path.exists ( "/ sys / फर्मवेयर / EFI")): प्रिंट "\ n \ n सिस्टम uefi के साथ बूट किया गया है!" अन्य: प्रिंट "\ n \ n सिस्टम को बायोस के साथ बूट किया गया है" मुख्य() sys.exit (0)