मैं फेडोरा लिनक्स पर ग्रब-एफ़आई बूटलोडर को कैसे पुनर्स्थापित करूंगा?


12

मैंने हाल ही में ईएफआई बूट का उपयोग करके फेडोरा 18 स्थापित किया है। अन्य मौजूदा लिनक्स वितरणों की तरह, यह मेरे लिए GRUB2 की स्थापना करता है।

जब चीजें गलत होती हैं तो मुझे GRUB के BIOS संस्करण को फिर से स्थापित करने का अनुभव होता है। मुझे पता है कि कैसे एक बचाव डिस्क को बूट करने के लिए, स्थापित सिस्टम में चुरोट, रन grub-installऔर संभवतः update-grub/ grubby/ grub-mkconfig

जब चीजें गलत होंगी, तो मैं GRUB के EFI संस्करण को कैसे पुनर्स्थापित करूंगा ? (मुझे पता है कि चीजें गलत होंगी: मैं उन्हें तोड़ देता हूं)।


आपने एक अस्पष्ट प्रश्न क्यों पूछा है और फिर तुरंत इसका उत्तर दिया है? यद्यपि उत्तर उपयोगी जानकारी प्रदान करता है, प्रश्न को वास्तव में स्पष्ट करने की आवश्यकता है: यह जानना कि आपने कुछ बदला है, पर्याप्त नहीं है। इस बात को समझना कि जो कुछ बदला गया था वह वास्तव में सवाल का एक अच्छा जवाब देने के लिए आवश्यक है।
रॉड स्मिथ

EFI के बारे में मेरे ईमेल का जवाब देने के लिए @RodSmith धन्यवाद :)। और अपनी टिप्पणी को नीचे की ओर जोड़ने के लिए। जिस प्रश्न के साथ मैंने शुरू किया था, वह वस्तुतः यही था। मैं ग्रब-पीसी को फिर से स्थापित करने के साथ अनुभव कर रहा हूं। मैं एक ही स्तर का विश्वास रखना चाहता हूं, कि मैं जानता हूं कि ईएफआई प्रणाली को कैसे ठीक किया जाए। मैंने इस सवाल पर एक बार जोर दिया कि यह ग्रब को फिर से स्थापित करने के बारे में है ... मुझे लगता है कि मुझे फिर से कोशिश करनी चाहिए और अपने मकसद के बारे में अधिक स्पष्ट होना चाहिए।
sourcejedi

यदि आपके पास यूईएफआई है तो आप ग्रब का उपयोग क्यों कर रहे हैं? दो बूट लोडर को प्रदान करने से क्या लाभ होता है?
मार्को

@ मार्को यूईएफआई किसी भी लिनक्स वितरण द्वारा समर्थित बूट लोडर नहीं है जो मुझे पता है! फेडोरा GRUB को स्वचालित रूप से अपडेट करता है जब यह एक नया कर्नेल स्थापित करता है, और रूट बूट जैसे आवश्यक बूट विकल्प स्थापित करता है =। यह EFI के लिए ऐसा नहीं करता है। मैं वितरण समर्थन को छोड़ सकता हूं और Refind.conf में REFIND के स्वचालित स्कैनिंग w / कर्नेल विकल्प का उपयोग कर सकता हूं , लेकिन यह अभी भी बूट लोडर / प्रबंधकों का पीछा करेगा! और Microsoft GPL ड्राइवरों पर हस्ताक्षर नहीं करते हैं, इसलिए सिक्योर बूट को वैसे भी SHIM-> बूट लोडर-> लिनक्स पर जाना पड़ता है, और आप वास्तव में UEFI-> SHIM भाग के बाद बूट मेनू चाहते हैं।
sourcejedi

एक नई कर्नेल स्थापित करने के बाद efibootmgrUEFI मेनू में प्रविष्टि को अपडेट करने के लिए एक ही कॉल पर्याप्त है। मैं rEFInd या SHIM के बारे में नहीं जानता। मैं व्यक्तिगत रूप से कई बूट लोडर को चेन नहीं करता हूं। सभी ऑपरेटिंग सिस्टम UEFI बूट मेनू में जोड़े गए हैं और यह पूरी तरह से ठीक काम कर रहा है।
मार्को

जवाबों:


9

सबसे पहले, आपको ईएफआई-बूटेड लिनक्स सिस्टम की आवश्यकता होगी । यदि आपके पास अभी भी अपना मूल स्थापित मीडिया (सीडी / डीवीडी / यूएसबी स्टिक) है, तो आमतौर पर एक पर्याप्त बचाव प्रणाली शामिल होनी चाहिए। यह भी एक क्लिक मरम्मत विकल्प हो सकता है :)।

वैकल्पिक रूप से, उबंटू समुदाय एक स्वचालित बूट-मरम्मत छवि प्रदान करता है । यह फेडोरा को समर्थन देने का दावा करता है। यदि आप यह जानना चाहते हैं कि यह वास्तव में क्या करता है, तो मेरा सुझाव है कि आप इस तीसरे पक्ष के स्पष्टीकरण को पहले से पढ़ें ।

हालाँकि मैंने कंसोल टूल्स के साथ एक सामान्य उद्देश्य बचाव प्रणाली का उपयोग किया। ईएफआई बूट का समर्थन करने के साथ-साथ, मैंने सुनिश्चित किया कि efibootmgrपैकेज की सूची में है । यह GRML कहा जाता है और डेबियन पर आधारित था। यहाँ कंसोल उपकरण और ग्रब-एफी के बारे में जानकारी है जो मैंने अपने फेडोरा सिस्टम को बचाते समय खोजा है:

  1. ईएफआई द्वारा बूट किए गए फेडोरा 18 सिस्टम को चलाते समयgrub2-install , न चलाएं । यह सफलता का दावा करेगा, लेकिन यह फेडोरा ग्रब-एफी बूट सिस्टम को तोड़ता है।

    • फ़ाइल /boot/EFI/fedora/grub.efiको grub-efi पैकेज द्वारा स्थापित किया गया है। यदि आप इसे पुनर्स्थापित करना चाहते हैं, तो उपयोग करें yum reinstall grub-efi। (एक सामान्य बचाव प्रणाली से ऐसा करने के लिए, आप के बाद ऐसा कर सकते हैं mounting और chrootअपने स्थापित फेडोरा सिस्टम में ing)। फेडोरा ग्रब-एफी कॉन्फिग फाइल /boot/EFI/fedora/grub.cfg(संभवत: ग्रुबी द्वारा उत्पन्न) का उपयोग करता है । EFI पर फेडोरा एक फ़ाइल उत्पन्न नहीं करेगा /boot/grub2/grub.cfg। रनिंग grub2-installgrub.efi को एक छवि के साथ बदल देगा जो पढ़ने की कोशिश करता है /boot/grub2/grub.cfg, और इसलिए विफल हो जाएगा।

    • grub2-installके लिए एक EFI बूट प्रविष्टि स्थापित करता है grub.efi। हालाँकि यदि आपने अपने विंडोज 8-प्रमाणित फर्मवेयर में सिक्योर बूट को अक्षम नहीं किया है, तो यह प्रविष्टि बूट करने में विफल हो जाएगी। आपको shim.efiइसके बजाय बूट करने की आवश्यकता है (उपेक्षा shim-fedora.efi, मुझे यकीन नहीं है कि वास्तव में क्या है)। निचे देखो।

  2. यदि आपकी फर्मवेयर सेटिंग्स रीसेट हो जाती हैं, तो आप फेडोरा के लिए अपनी EFI बूट प्रविष्टि खो सकते हैं। (मैन्युअल रूप से, या फर्मवेयर अपग्रेड द्वारा, या क्योंकि फर्मवेयर छोटी गाड़ी है - बाद वाले को जंगली में सूचित किया गया है)। यहाँ सुरक्षित बूट के साथ फेडोरा के लिए EFI बूट प्रविष्टि को मैन्युअल रूप से बनाने का तरीका बताया गया है:

    $ sudo efibootmgr -c -L Fedora -d /dev/sda -p 100 -l \\EFI\\fedora\\shim.efi
    

    यह उदाहरण लिनक्स द्वारा मान्यता प्राप्त पहले मानक डिस्क पर विभाजन संख्या 100 का उपयोग करता है। आपको विकल्पों को समायोजित करना चाहिए -d /dev/sdaऔर -p 100उस फाइलसिस्टम की पहचान करनी चाहिए जिस पर फेडोरा की गणना होती है /boot/efi। यह एक EFI सिस्टम विभाजन है। फेडोरा इंस्टॉलर ने आपके फेडोरा के उपयोग के लिए एक समर्पित ईएसपी बनाया होगा , जो किसी अन्य ऑपरेटिंग सिस्टम द्वारा उपयोग किए जाने वाले ईएसपी से अलग होगा। ( यह Ubuntu और OpenSUSE से अलग है )।

    नोट efibootmgrकमांड की आवश्यकता है कि आप इसे EFI- बूटेड सिस्टम से चलाते हैं।


"नोट नोट करें efibootmgr कमांड के लिए आवश्यक है कि आप इसे EFI- बूटेड सिस्टम से चलाएँ।" - इस मामले में आप एक EFI- बूटेड सिस्टम "बूटस्ट्रैप" कैसे करते हैं? (UEFI विकल्प का चयन करते समय मेरा वर्तमान USB बूट नहीं होगा)
jozxyqk

1
मीडिया स्थापित करें आपके सिस्टम को बूटस्ट्रैप करने का एक समर्थित तरीका है। मुझे लगता है कि आपको EFI फर्मवेयर चर स्थापित किए बिना भी एक EFI सिस्टम को बूट करने में सक्षम होना चाहिए, इसमें बनाना /EFI/boot/bootx64.efi(64-बिट UEFI मानकर) शामिल है। यह ठीक उसी तरह है जैसे यूएसबी मीडिया काम (सीडी / डीवीडी के अलावा कुछ भी) स्थापित करता है। यह वहाँ shim.efi को कॉपी करने के लिए पर्याप्त हो सकता है, लेकिन मुझे यकीन नहीं है कि यह काम करने के लिए सेट है या नहीं।
sourcejedi

5

यदि आप UEFI विंडोज के साथ दोहरे बूटिंग कर रहे हैं, तो एक और संभावना है। जिसके लिए रिकवरी डिस्क की आवश्यकता नहीं है।

आप विंडोज में बूट कर सकते हैं, व्यवस्थापक विशेषाधिकारों के साथ एक कमांड लाइन खोल सकते हैं और निम्नलिखित कमांड चला सकते हैं:

bcdedit /set {bootmgr} path \EFI\fedora\shim.efi

यह UEFI में विंडोज बूट प्रविष्टि को बदल देगा, जिसमें एक बूट GRUB में होगा। अपने GRUB मेनू को मान लें तो विंडोज के लिए एक काम करने वाली प्रविष्टि शामिल है, अब आपके पास काम कर रहे हैं दोहरे बूट :-)। उम्मीद है कि यह सब सुरक्षित बूट को अक्षम किए बिना काम करना चाहिए।

मुझे सिर्फ विंडोज अपडेट के बाद खुद ऐसा करना पड़ा है और ऐसा लगता है कि यह चाल चली गई है।

स्रोत और अधिक जानकारी: http://nwrickert2.wordpress.com/2013/05/13/notes-on-uefi-windows-and-linux/


वैकल्पिक रूप से, दो समाधान में वर्णित देख askubuntu.com/a/799734/462004 (EasyUEFI या का उपयोग कर कैसे का उपयोग कर बूट क्रम बदलने के लिए bcdedit.exeअपने आदेश की तरह विंडोज प्रविष्टि के बजाय)।
phk

1

https://fedoraproject.org/wiki/GRUB_2?rd=Grub2#Updating_GRUB_2_configuration_on_UEFI_systems :

dnf reinstall grub2-efi grub2-efi-modules shim

(यह मानते हुए कि आपके पास वे पैकेज पहले से इंस्टॉल हैं और पिछला कॉन्फ़िगरेशन मौजूद है)


धन्यवाद! "एक बूट मेनू प्रविष्टि बनाएं: TL; DR: यह स्वचालित रूप से होना चाहिए" - yay।
sourcejedi

अरे हाँ, यह करता है: grub2-mkconfig -o /boot/grub2/grub.cfg(या (U) EFI सिस्टम पर यह कुछ इस तरह होगा grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg। काम नहीं किया?

क्षमा करें, मेरा मतलब है कि विकी का अर्थ है कि ग्रब पैकेज को फिर से स्थापित करना ईएफआई चर को फिर से बनाता है जो जीआरयूबी को बूट करने के लिए आवश्यक हैं (जो आपको किसी कारण से "BIOS" सेटिंग्स को रीसेट करने की आवश्यकता हो सकती है)। मुझे नहीं लगता कि मैंने कोशिश की थी dnf reinstall, और अगर सच है तो यह बहुत अच्छा लगता है।
sourcejedi

0

बस इसे यहाँ सरल रखने के लिए आपको बस इतना करना है:

yum reinstall grub2-efi

Grub2-install को न चलाएं यह आपके सिस्टम को एक खाली ग्रब बूट मेनू के साथ प्रस्तुत करके तोड़ देगा (ऐसा इसलिए है क्योंकि grub2-install आपको एक खराब / सामान्य .efi फ़ाइल देगा जो grub.cfg को गलत स्थान से लोड करने का प्रयास करता है।

यदि आप नए डिस्क पर चले गए हैं या इसके साथ आपका विभाजन / लेआउट बदल गया है, तो इसके अतिरिक्त आप अपना ग्रब-कॉन्फिगरेशन अपडेट करना चाहते हैं:

grub2-mkconfig -o /boot/EFI/fedora/grub.cfg

कुछ पुष्टि पढ़कर अच्छा लगा :)। मैंने एक संपादन प्रस्तावित किया जिसमें दिखाया गया कि कैसे grub2-mkconfig का उपयोग किया जाना है -o। मैं स्पष्ट नहीं हूँ कि सरल उत्तर हालांकि कितना उपयोगी है - ऐसा नहीं है कि मेरा कड़ाई से अधिक उपयोगी है, लेकिन यह मानता है कि आप अभी भी फेडोरा प्रणाली को किसी तरह बूट करने में सक्षम हैं, या आपने देखा कि आपने बंद करने से पहले गलती की थी। (जेनेरिक रेस्क्यू डिस्क के बारे में मेरा जवाब है, लेकिन AFAIK को आपको इंस्टॉल करने की जरूरत है, जो कि फाइलसिस्टम की जरूरत है, उसे माउंट करना सुनिश्चित करता है ... यह डेबियन इंस्टॉलर की तरह एक विशेष बचाव प्रणाली के बारे में अच्छी बात है, यह माउंट + चेरोट करता है। तुम्हारे लिए)।
sourcejedi
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.