वर्चुअलबॉक्स बूट केवल यूईएफआई इंटरएक्टिव शेल में


49

मैंने यूबीएफ के साथ वर्चुअलबॉक्स में उबंटू 14.10 स्थापित किया। लेकिन अब मैंने इस OS को रिबूट कर दिया है और अब यह UEFI इंटरएक्टिव शेल v2.0 में बूट होता है। मैं सामान्य रूप से ग्रब में फिर से कैसे बूट कर सकता हूं?


वर्चुअलबॉक्स 5.1 के साथ सभी को अच्छी खबर है, अब वर्कअराउंड की जरूरत नहीं है। आपको बस एक नई ईएफआई प्रविष्टि (मैनुअल का उपयोग करके efibootmgrया स्वचालित रूप से ग्रब को पुनर्स्थापित करके) जोड़ना होगा, ताकि यह उबंटू को फिर से बूट करे।
फक

2
5.1 के साथ भी, आवश्यक बूट सेटिंग के साथ जैसे efi चर में परिवर्तन, efibootmgrशटडाउन के बाद खो जाते हैं (हालांकि वे रिबूट पर रहते हैं)।
चापजेक

1
5.1.30 यह अभी भी मौजूद है। भले ही फिक्स आसान है, लेकिन मुझे डेबियन और ubuntu को स्थापित करने के बाद हर बार ठीक करना होगा।
CallMeLaNN

जवाबों:


52

मुझे एक ही समस्या का सामना करना पड़ा और मैंने पाया कि यदि मैं इंटरैक्टिव शेल में कमांड का पालन करता हूं, तो वर्चुअल मशीन उबंटू में बूट होगी:

fs0:\efi\ubuntu\grubx64.efi

(बैकस्लैश का उपयोग करें, फॉरवर्ड स्लैश काम नहीं करता है। UEFI इंटरैक्टिव शेल में कमांड केस असंवेदनशील हैं)

मेरा वर्चुअलबॉक्स संस्करण 4.3.20 r96997 है, उबंटू संस्करण 14.10 AMD64 है। मुझे नहीं पता कि ऐसा क्यों होता है और इसे कैसे हल किया जाए। बस यह सुरुचिपूर्ण नहीं मिला और अभी भी थोड़ा परेशान करने वाला वर्कअराउंड है।

अपडेट 1:

मैंने पढ़ा है यह , के लिए नीचे ट्रैक किए गए एक बग रिपोर्ट और पाया एक बेहतर समाधान का

अपडेट 2:

अद्यतन 1 में समाधान विफल रहा। मैंने वर्चुअल मशीन को बंद कर दिया, इसे लॉन्च किया। और यह UEFI इंटरएक्टिव शेल में फिर से बूट हुआ। के अनुसार इस समस्या शायद एक VirtualBox बग द्वारा कारण किया गया था। मैं अभी भी इसके समाधान के लिए देख रहा हूँ।

अपडेट 3:

अंत में एक समाधान मिला। के अनुसार इस , आप मैन्युअल रूप से startup.nsh स्क्रिप्ट बनाने के लिए की जरूरत है। उल्लिखित पोस्ट में विधि को छोड़कर, आप यह भी कर सकते हैं:

$ sudo mount /dev/sda1 /mnt
$ cd /mnt
$ sudo sh -c "echo '\EFI\ubuntu\grubx64.efi' > startup.nsh"

3
"वर्तमान में चल रहे अतिथि के भीतर से ईएफआई चर को हेरफेर करना संभव नहीं है" अपने दूसरे अपडेट में जो भी बूटलोडर आप ईएसपी पर उपयोग करना चाहते हैं उसे स्थानांतरित करने के लिए\EFI\boot\bootx64.efiबेहतर समाधान की तरह मुझे लगता है कि स्टार्टअप के लिए 5 सोसाइटी बर्बाद करने की तुलना में मेरे लिए बेहतर समाधान है। । नोट: आप बूटexitसेटिंग केदौरान F12 दबा सकते हैं याफर्मवेयर सेटिंग्स तक पहुंचने के लिए और टर्मिनल रिज़ॉल्यूशन सहित सभी प्रकार की चीजों को संशोधित करने के लिए EFI शेल परप्रवेशकर सकते हैं, लेकिन ये संशोधन स्थायी रूप से संग्रहीत नहीं हैं।
LiveWireBT

इंटरैक्टिव शेल में कमांड जारी करने के बाद आप refind
एडुआर्डो

1
यह जानकर अच्छा लगा कि यह एक बग है। बस edit startup.nsh। +1 यह \EFI\boot\bootx64.efi5sec को छोड़ना है।
CallMeLaNN

1
कॉपी और नाम बदलने \EFI\ubuntu\shimx64.efiके लिए \EFI\boot\bootx64.efiसबसे अच्छा है। श्रेय
CallMeLaNN

अपडेट 3 ने मेरे लिए यह किया ....
cljk

32

मुझे भी यही समस्या थी ( EFI सक्षम होने के कारण क्योंकि मैं इसे अन्यथा नहीं चला सकता था)। अजीब; हालांकि Ubuntu 14.04.2 की स्थापना में कोई त्रुटि नहीं हुई, कुबंटु 15.04 स्थापित करना अंतिम रूप देने में विफल रहा। डीवीडी को हटाने के लिए कहने पर यह बहुत अंत में जम गया। रीसेट करने के बाद, यह ठीक से बूट हुआ लेकिन पावर डाउन के बाद यह शेल में ऊपर आया।

तो, शेल प्रकार से बचने के लिए:

fs0:
स्टार्टअप को संपादित करें। nsh

और खुली हुई खिड़की पर इन 2 लाइनों को जोड़ें:

FS0:
\ EFI \ ubuntu \ grubx64.efi

प्रेस Ctrl+ sऔर Enterबचाने के लिए और Ctrl+ qछोड़ने के लिए। फिर VM को पुनरारंभ करें।

वैकल्पिक रूप से, आप शेल और बूट ओएस से बाहर निकलने के लिए हमेशा इन 2 लाइनों का उपयोग कर सकते हैं। लेकिन दूसरी बार जब आप पुनः आरंभ करेंगे तो आप फिर से एक शेल में होंगे और इसे संपादित करने से बचेंगे startup.nsh


कमांड टाइप करने से काम चल जाता है लेकिन समस्या यह है कि अगले रिस्टार्ट पर यह फिर से उस शेल में जाता है और स्टार्टअप को फाइल करता है।
इगोर 50ordaš

Startup.nsh फाइल को सेव करने के लिए आपको सेव करने के लिए Ctrl + S का उपयोग करना होगा और फाइल में लिखने के लिए Enter दबाना होगा।
विलोकी

2
यदि आप उबंटू का उपयोग नहीं कर रहे हैं, तो आप lsयूईएफआई शेल का उपयोग करके अपनी मशीन के लिए सही मार्ग का पता लगा सकते हैं । उदाहरण के लिए ls FS0:\EFI, फिर ls FS0:\EFI\redhat, मार्ग को सीखने के लिए FS0:\EFI\redhat\grub.efiCentOS पर है।
ntc2

1
@ ntc2 धन्यवाद, ठीक यही मैं देख रहा था! मेरे स्लैकवेयर इंस्टॉलेशन के लिए यह था FS0:\EFI\Slackware\elilo.efi
फेबियोमिया

11

एक अन्य विकल्प अपने वीएम के लिए 'मदरबोर्ड' के तहत 'सक्षम ईएफआई' नामक विस्तारित फीचर विकल्प को अन-चेक करना है।

यह मुद्दा Gnome Ubuntu 12.04.2 amd64bit स्थापना के लिए आया था।

हार्डवेयर त्वरण के लिए सेटिंग्स बदलने के बाद यह पता चला। मैं VT-x / AMD-V, नेस्टेड पेजिंग सक्षम होने के साथ छोड़ दिया गया था। मेरे वीएम में संदर्भ के लिए 2 सीपीयू, 8 जीबी रैम है।

संयुक्त राष्ट्र के मुद्दे की पूरी तरह से जाँच के बाद कोई मुद्दा नहीं सूक्ति से पूरी तरह से पारित कर दिया गया है। विंडोज 7 64-बिट होस्ट पर वर्चुअल बॉक्स 4.3.18 r96516 चल रहा है।


1
यह केवल इसलिए काम करता है क्योंकि ग्रब को विरासत समर्थन (एमबीआर) भी था।
पॉल स्टेलियन

4

कॉपी grubx64.efiकरने के लिए /EFI/boot/bootx64.EFI
VirtualBox का उपयोग कि bootx64.efiबूट करने के लिए।
रेफरी: आर्कलिनक्स वर्चुअलबॉक्स विकि


टा। यह काम करता है लेकिन अगर grubx64.efi को अपडेट किया जाता है तो bootx64.efi दिनांकित किया जाएगा। स्रोत कोड के एक संस्करण का लिंक: github.com/mdaniel/virtualbox-org-svn-vbox-trunk/blob/…
philcolbourn

यह स्टार्टअप .nsh विधि को संपादित करने की तुलना में अधिक सहज है , लेकिन वास्तव में यह स्वचालित रूप से अपडेट नहीं किया जाएगा और आप FAT32 विभाजन के कारण सिम्लिंक का उपयोग नहीं कर सकते हैं।
जियोर्गी गाज़िरिश्विली

1

मैं IDE से SATA के लिए वर्चुअलबॉक्स के भीतर cdrom डिवाइस को बदलकर इस समस्या को हल कर सकता था। मैंने डिवाइस कॉन्फ़िगरेशन के भीतर वर्चुअल सीडीरॉम ड्राइव के मानक मानचित्रण को हटा दिया।

बस मौजूदा SATA नियंत्रक के लिए एक cdrom डिवाइस जोड़ें जो आपके इंस्टॉलेशन मीडिया के लिए उपयोग किया जाना है।

वॉयला, EFI के साथ कोई और समस्या नहीं है।


1

मुझे हाल ही में इस समस्या का सामना करना पड़ा। कृपया अपनी वर्चुअल OS सेटिंग जांचें। वर्चुअल os-> सिस्टम-> विस्तारित सुविधाओं पर राइट क्लिक करें-> EFI सक्षम करें (इसे अनचेक करें)।यहाँ छवि विवरण दर्ज करें


8
यदि कोई यूईएफआई का उपयोग करना चाहता है तो यह एक समाधान कैसे है?
जाइगिमेंटस

+1: इससे मेरी समस्या हल हो गई। मैंने प्रयोगात्मक रूप से सक्षम EFI की जाँच की थी और इसके बारे में भूल गया था।
wallyk

1

इसके लिए आपको इसे निम्नलिखित की तरह लिखना होगा:

fs0:
cd EFI
cd ubuntu
grubx64

यह है कि मैं इसे काम करने के लिए कैसे अगर आप इसे किसी भी अन्य तरीके से लिखेंगे तो यह काम नहीं करेगा।


1

एक और काम के आसपास:

Uefi शेल में, अस्थायी रूप से ubuntu का उपयोग करके बूट करें:

fs0:
cd EFI
cd ubuntu
grubx64

फिर, ubuntu के अंदर, नीचे की तरह startup.nsh फ़ाइल संपादित करें:

ओपन टर्मिनल Ctrl+ Alt+ T

प्रकार:

sudo nano /boot/efi/startup.nsh

अपना पासवर्ड डालें।

अब डेल या बैकस्पेस कुंजी का उपयोग करके वहां मौजूद सभी को हटा दें।

फिर इसे बिल्कुल टाइप करें: ( FS0- यह अंक है 0, वर्णमाला नहीं O)

FS0:
\EFI\ubuntu\grubx64.efi

अब Ctrl+ दबाएं O(यह वर्णमाला है O)।

फिर, Alt+ D(टेक्स्ट को msdos फॉर्मेट में बदलने के लिए)।

फिर दबाएं Enter

फिर Ctrl+ X

अब रिबूट करें।

sudo reboot

अब सब कुछ ठीक होना चाहिए।


1

EFI सक्षम के साथ Ubuntu 16.04.4 का उपयोग करना और वर्चुअल मशीन शुरू करते समय मैंने पाया कि यह बूट नहीं होगा और सिर्फ EFI इंटरेक्टिव शेल में रहेगा।

इस तरह मैंने बूट को ठीक किया:

सबसे पहले, मैंने पाया कि grubx64.efi BLK2 में स्थित है, इसलिए एक समय के बूट के लिए मैंने सिर्फ इंटरेक्टिव शेल में निम्नलिखित टाइप किया:

BLK2:/EFI/ubuntu/grubx64.efi

और वायोला, उबंटू ऊपर और चल रहा है।

मैं इस मुद्दे को स्थायी रूप से ठीक करने का आदेश देता हूं, एक बार सिस्टम के उठने के बाद मैंने निम्नलिखित पंक्ति को /boot/efi/startup.nsh में गूँज दिया।

sudo echo 'BLK2:/EFI/ubuntu/grubx64.efi' > /boot/efi/startup.nsh

यही है, सिस्टम सही ढंग से बूट होगा।


0

UEFI के साथ VirtualBox5 में Kubuntu15.10 स्थापित करने के बाद, VM का रिबूट विफल हो जाता है।

रेखा जोड़ना

Fs0: \ EFI \ ubuntu \ grubx64.efi
UEFI- शैल में मदद नहीं करता है।

और साथ में चूरोट वातावरण में कुबंटु 15.10 में एक नया स्टार्टअप.एनएचएस फाइल बनाने के साथ समाधान

sudo echo '\ EFI \ ubuntu \ grubx64.efi'> startup.nsh 
कोई सुधार नहीं देता है।

मुझे इसका हल मिला:

समस्या यह थी, कि निर्देशिका / बूट / efi / EFI / ubuntu फ़ाइल grubx64.efi के साथ मौजूद नहीं है।

लाइव-सीडी को बूट करने और चेरोट वातावरण में बदलने के बाद, मैंने लापता पैकेट स्थापित किए और उसके लिए आवश्यक एनवीआरएएम प्रविष्टि तैयार की:

sudo apt-get install ग्रब-एफी-अमड64-हस्ताक्षरित शिम-हस्ताक्षरित
सुडो अपडेट-ग्रब

0

ओफी बूट निर्देशिका को परिभाषित करने या बदलने के लिए सबसे पहले इस कमांड को चलाने की जरूरत है। इससे मेरी समस्या हल हो गई।

sudo grub-install /dev/sda --target=x86_64-efi --efi-directory=/boot/efi/

नोट: /dev/sdaसिस्टम हार्ड डिस्क है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.