कैसे पता करूं कि मैं यूईएफआई का उपयोग कर रहा हूं?


54

मैं खोज कर रहा था, लेकिन यह जानने के लिए एक स्पष्ट तरीका नहीं मिला कि क्या GRUB सिस्टम बूट, या BIOS संगतता मोड या पूर्ण विकसित BIOS में UEFI का उपयोग कर रहा है। मुझे केवल विंडोज के तरीके मिले । क्या GRUB या कर्नेल बूट लॉग में कुछ है जो दिखाता है कि क्या मैं UEFI, EFI या BIOS का उपयोग कर रहा हूं?


जवाब देखने के लिए समय नहीं है, लेकिन मैं हाल ही में बहुत अधिक यूईएफआई समस्या निवारण कर रहा हूं। यह साइट UEFI को समझने में काफी मददगार है। rodsbooks.com/refind/index.html
0xSheepdog

1
मेरा मतलब है कि बदबूदार आवाज नहीं है, लेकिन मशीन का फर्मवेयर क्या करना है?
17

1
@ericx यह सवाल इस ढोंग के तहत है कि आपको इस बात की कोई जानकारी नहीं है कि इसे कैसे जांचना है। इसलिए सभी समाधान बूटेड सिस्टम पर किए जा सकते हैं।
ब्रिअम

जवाबों:


34

यदि आपने BIOS फर्मवेयर का उपयोग करने के विरोध में UEFI फर्मवेयर का उपयोग किया है तो आपके सिस्टम को EFI NVRAM चर उपलब्ध कराना चाहिए:

/sys/firmware/efi/vars/

या

/sys/firmware/efi/efivars/

जब एक BIOS (या UEFI फर्मवेयर के BIOS इम्यूलेशन मोड) का उपयोग करके बूट किया जाता है तो ये चर उपलब्ध नहीं होते हैं।

वास्तव में, जैसा कि @Santropedro ने बताया, पथ

/sys/firmware/efi

एक BIOS का उपयोग करते समय गायब है, जो जांचना आसान है।


+1 एक ऐसी विधि के लिए जो बहुत तेज़ है और फ़र्मवेयर या अतिरिक्त पैकेजों से किसी विशेष स्ट्रिंग आउटपुट के आधार पर सीधे बिंदु पर पहुंच जाती है, जो कि वर्तमान बूट में सीधे प्रासंगिक नहीं हो सकती है।
अंडरस्कोर_ड

3
"चर उपलब्ध नहीं" का क्या अर्थ है? यह पर्याप्त जाँच है कि अंदर कोई फ़ोल्डर नहीं है: / sys / फर्मवेयर / "efi" कहा जाता है?
3

@Santropedro - ऐसा लगता है कि यह करता है। मैं पोस्ट को संपादित करूँगा। धन्यवाद।
garethTheRed

42

पहली विधि:

ठीक है, मैंने जांचने के लिए अपना UEFI बॉक्स बूट किया। पहले सुराग, शीर्ष के पास dmesg। यदि आपको BIOS के माध्यम से बूट किया गया है तो यह प्रकट नहीं होना चाहिए:

[    0.000000] efi: EFI v2.31 by American Megatrends
[    0.000000] efi:  ACPI=0xd8769000  ACPI 2.0=0xd8769000  SMBIOS=0xd96d4a98 
[    0.000000] efi: mem00: type=6, attr=0x800000000000000f, range=[0x0000000000000000-0x0000000000001000) (0MB)
⋮


दूसरी विधि:

$ sudo efibootmgr
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000
Boot0000* debian

यदि आप नहीं हैं, तो निम्न प्रकट होना चाहिए:

$ sudo efibootmgr        

EFI variables are not supported on this system.

ध्यान दें कि आपको efibootmgr पैकेज स्थापित करना होगा। आप EFI चर को सूचीबद्ध करने का भी प्रयास कर सकते हैं:

$ efivar -l 
... over 100 lines of output ...


तीसरा तरीका:

जांचें कि क्या आपके पास /boot/efi:

$ df -h --local | grep /boot
/dev/sda2       229M   31M  187M  14% /boot
/dev/sda1       120M  250K  119M   1% /boot/efi

उस विभाजन के अंदर वे फाइलें होनी चाहिए जो UEFI बूट करने के लिए निष्पादित करता है।

यदि इनमें से किसी भी विधि का उपयोग करने से संबंधित प्रविष्टियाँ प्रकट नहीं होती हैं, तो बहुत संभावना है कि आप यूईएफआई का उपयोग नहीं कर रहे हैं।


6
/boot/efiबस कुछ निर्देशिका है /bootऔर बाकी सभी स्थापित पैकेज हैं - सभी संभवतः UEFI मोड में स्थापित किए गए सिस्टम पर मौजूद होंगे, लेकिन अब संगतता समर्थन मॉड्यूल के साथ बूट किया गया है। फिर भी, पहले बहुत यकीन है कि आग है ... आप कुछ प्रकार के पागल विकल्प के साथ efivarfs के माउंट को अक्षम कर सकते हैं।
mikeserv

@mikeserv /boot/efiएक माउंटपॉइंट है जो मुझे यकीन नहीं है कि फर्मवेयर के लिए प्रासंगिक होने पर भी माउंट होने की आवश्यकता नहीं है । तो हाँ, वहाँ एक प्लेसहोल्डर फ़ोल्डर की मात्र उपस्थिति का मतलब कुछ भी नहीं है, और यहां तक ​​कि अगर इसमें सामग्री है, तो वर्तमान में उनका उपयोग नहीं किया जा सकता है।
अंडरस्कोर_ड

1
यह समाधान (90 upvotes)/sys/firmware/efi एक विश्वसनीय संकेतक के रूप में बात करता है ... Askubuntu.com/a/162896/479118 - तो शायद, यह अधिक विश्वसनीय है?
फ्रैंक नॉक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.