सवाल यह जांचने के लिए कि क्या GRUB ईएफआई या BIOS मोड में है?


क्या ग्रब शैल पर कोई कमांड है जो इंगित करेगा कि मशीन ईएफआई या बीआईओएस फर्मवेयर पेश कर रही है या नहीं?

मैं 2010 मैक प्रो पर GRUB 2.00 का उपयोग कर रहा हूं। इस कंप्यूटर में निश्चित रूप से ईएफआई फर्मवेयर है। लेकिन मैं एनवीआईडीआईए डिस्प्ले ड्राइवरों की इच्छा के लिए BIOS-emulation मोड में उबंटू को बूट करने के लिए कुछ दिनों की कोशिश कर रहा हूं। मेरी समझ यह है कि जब तक GRUB चल रहा है, ईएफआई या बीआईओएस इम्यूलेशन का उपयोग करने का निर्णय पहले ही कर दिया गया है। तो मैं GRUB से कैसे जांच सकता हूं?


1
2018-01-03 22:51


मूल




जवाब:


GRUB 2.00 के रूप में, मानते हुए कि GRUB बचाव मोड के बजाय सामान्य मोड में जाने के लिए पर्याप्त रूप से काम कर रहा है, GRUB खोल से "grcho_platform" echo "BIOS मोड में" पीसी "और यूईएफआई मोड में" efi "दिखाएगा।

BIOS बिल्ड ग्रब-पीसी पैकेज से मेल खाता है, और यूईएफआई बिल्ड ग्रब-efi-amd64 (या, कम सामान्यतः, grub-efi-ia32) पैकेज से मेल खाता है।


2
2018-01-04 02:32



धन्यवाद। मैंने बस लाइव सीडी (यूएसबी पर) से सीधे कोशिश की और "efi" मिला। यह एक अच्छा निदान है क्योंकि मेरी समझ यह है कि इस संकेत के बाद उबंटू को BIOS मोड में लोड नहीं किया जा रहा है। अब यह पता लगाने के लिए कि "पीसी" कैसे प्राप्त करें ... यहां थोड़ा विग्लू कमरा हो सकता है। मैं grub_platform के लिए प्रलेखन देखता हूं कि यह उस प्लेटफ़ॉर्म को इंगित करता है जिसके लिए GRUB बनाया गया था। ऐसा लगता है कि विचार मेरे बराबर हैं, लेकिन मैं यहां एक विशेषज्ञ नहीं हूं। मुझे नहीं लगता कि जीआरयूबी का "efi" निर्माण भी BIOS मोड में चलाएगा, है ना? - NoahR
सही बात; GRUB का प्रत्येक निर्माण प्लेटफॉर्म के फर्मवेयर प्रकार के लिए विशिष्ट फर्मवेयर कॉल का उपयोग करता है। BIOS मोड में लाइव यूएसबी स्टिक बूट करने के लिए, आपको एक उपयुक्त फर्मवेयर-स्तरीय विकल्प की तलाश करनी होगी; मैक पर शायद इसमें बूट कैंप शामिल हो सकता है, लेकिन यह उम्र बढ़ गया है क्योंकि मैंने उनमें से एक को देखा था। ध्यान दें कि BIOS मोड में लाइव उबंटू छवि (एक स्थापित सिस्टम के विपरीत) को बूट करते समय आपको वास्तव में GRUB के बजाय ISOLINUX मिल जाएगा। - Colin Watson
मैं इसके साथ एक कथन का उपयोग कैसे कर सकता हूं? मैं प्रयास कर चुका हूं if [ ${$grub_platform} == "pc" ] { ... }, लेकिन यह काम नहीं किया - यह हमेशा सच के लिए मूल्यांकन किया। - starbeamrainbowlabs
यह वाक्यविन्यास कुछ तरीकों से गलत है। if [ ${grub_platform} == "pc" ]; then ...; fi काम करने की अधिक संभावना है। - Colin Watson