मुझे लगता है कि आपने समस्या को ठीक कर लिया है, लेकिन मैं यह बताना चाहता हूं कि क्या गलत हुआ और इसे कैसे ठीक किया जाना चाहिए (दोनों अंत उपयोगकर्ताओं और उबंटू के डेवलपर्स द्वारा)।
सबसे पहले, उबंटू के डेवलपर्स ने फैसला किया है - सबसे अनजाने में - एक GRUB कॉन्फ़िगरेशन बनाने के लिए जो उबंटू रूट ( /
) विभाजन, साथ ही साथ ईएफआई सिस्टम पार्टिशन (ईएसपी) पर फ़ाइलों पर निर्भर करता है । यह लिनक्स विभाजन को हटाने या क्षति के लिए GRUB को कमजोर बनाता है, और इसलिए उबंटू को हटाने के बाद कंप्यूटर को बूट करना मुश्किल हो जाता है या यदि उबंटू की स्थापना किसी तरह से क्षतिग्रस्त हो जाती है। यह भेद्यता अनावश्यक है; ESP पर अपने सभी समर्थन और कॉन्फ़िगरेशन फ़ाइलों को देखने के लिए GRUB को कॉन्फ़िगर करना संभव है। यदि GRUB को इस तरह से कॉन्फ़िगर किया गया था (जैसा कि फेडोरा करता है), तो उबंटू को हटाने से GRUB की विंडोज को रीडायरेक्ट करने की क्षमता प्रभावित नहीं होगी। सिस्टम अभी भी GRUB के माध्यम से बूट होगा, लेकिन यह कम से कम अभी भी बूट होगा। इसलिए, GRUB को गलत तरीके से सेट करने के लिए उबंटू पर शर्म आती है।
दूसरा, आपके द्वारा उल्लिखित फ़ाइलनामों के आधार पर, आपको लगता है कि कुछ बिंदु पर उबंटू का बूट रिपेयर टूल है। यह उपकरण स्वचालित रूप से विंडोज बूट लोडर का नाम बदल देता है EFI/Microsoft/Boot/bootmgfw.efi
, और इसके स्थान पर GRUB की एक प्रति लगाता है। यह EFI फ़ॉलबैक बूट लोडर के साथ एक ही काम करता है EFI/BOOT/bootx64.efi
, और GRUB की एक और प्रति को EFI/Microsoft/Boot/bootx64.efi
उन कारणों से छोड़ता है, जिन कारणों से मैं थाह का दावा नहीं करता। यह मुट्ठी भर EFI में बग के लिए एक समाधान के रूप में किया जाता है। परेशानी यह है कि बूट रिपेयर डिफ़ॉल्ट रूप से ऐसा करता है । अधिकांश कंप्यूटरों पर, यह नहीं हैज़रूरी। जब यह बूट कॉन्फ़िगरेशन में परिवर्तन करने के लिए बाद में वांछनीय होता है, तो GRUB का यह नाम बदलना और प्रतिकृति एक जटिलता बन जाता है, क्योंकि उपयोगकर्ताओं को यह अनुमान लगाने के लिए छोड़ दिया जाता है कि क्या चल रहा है। इसलिए, बूट रिपेयर के डेवलपर्स को उनकी मरम्मत के बारे में जानकारी के लिए शर्मिंदा होना चाहिए। (उनके बचाव में, हालांकि, बूट रिपेयर के लिए मज़बूती से यह पता लगाना बहुत मुश्किल होगा कि उन कंप्यूटरों में बग्स हैं जिनके लिए डिफ़ॉल्ट रूप से बूट फ़ाइलों को स्थानांतरित करने की आवश्यकता होती है।)
एक और बात महत्वपूर्ण है: ठीक से काम करने वाली ईएफआई प्रणाली में, एनवीआरएएम में बूट कार्यक्रमों की एक सूची आयोजित की जाती है। EFI अनुक्रम में इस सूची के प्रत्येक कार्यक्रम की कोशिश करता है; यदि कोई विफल रहता है या अनुपस्थित रहता है, तो अगले प्रयास किया जाता है। जब Ubuntu स्थापित होता है, तो यह GRUB के अपने संस्करण को सूची में सबसे ऊपर जोड़ता है। अधिकांश ईएफआई भी उपयोगकर्ताओं को यह निर्दिष्ट करने में सक्षम करते हैं कि कौन से बूट प्रोग्राम को बिल्ट-इन बूट मैनेजर से उपयोग करना है, लेकिन यह बिल्ट-इन बूट मैनेजर अधिकांश ईएफआई पर क्रूड है।
इन सभी कारकों को जोड़ दें, और मूल समस्या का सबसे सरल समाधान बन जाता है:
- बूट रिपेयर टूल के परिवर्तनों को पूर्ववत करें। यह बूट मरम्मत उपकरण का उपयोग करके किया जा सकता है; इसमें एक उन्नत विकल्प मेनू है जिसमें "पुनर्स्थापना ईएफआई बैकअप" नामक एक चेक-बॉक्स है। उस का उपयोग करें और GRUB की कई प्रतियां हटा दी जाएंगी और विंडोज के बूट लोडर को बहाल कर दिया जाएगा। वैकल्पिक रूप से, यह मैन्युअल रूप से किया जा सकता है। सबसे महत्वपूर्ण बात, ईएसपी पर बूट रिपेयर के कुछ संस्करणों को
bootmgfw.efi
(शायद कहा जाता है bkpbootmgfw.efi
, हालांकि बूट रिपेयर के कुछ संस्करणों ने अन्य नामों का उपयोग किया है) को कॉपी किया जाना चाहिए EFI/Microsoft/Boot/bootmgfw.efi
।
- अपने आधिकारिक / उचित स्थान पर GRUB को हटाएं -
EFI/ubuntu/grubx64.efi
उबंटू के लिए। यदि सुरक्षित बूट सक्रिय था, EFI/ubuntu/shimx64.efi
तो इसके बजाय हटाना आवश्यक होगा। वास्तव में, पूरी EFI/ubuntu
निर्देशिका को हटाना , या कम से कम इसका नाम बदलकर किसी भी मामले में काम करना होगा।
बस। उन दो चीजों को पूरा करने के साथ, EFI उबंटू बूट विकल्प को छोड़ देगा क्योंकि यह अब मान्य नहीं है और बूट विंडोज पर जाता है। कुछ EFI अपने बूट प्रबंधकों के मेनू से स्वचालित रूप से उबंटू बूट विकल्प को भी हटा देंगे, हालांकि यह अभ्यास सार्वभौमिक नहीं है।
ध्यान दें कि आपके मामले में, मैथ्यू, मैं इन चीजों को करने की सलाह नहीं देता; आपको एक वर्किंग कॉन्फ़िगरेशन मिला है, और जैसा कि वे कहते हैं, "अगर यह टूट नहीं गया है, तो इसे ठीक न करें।" आपके पास अपने ईएसपी पर कुछ आवारा फाइलें रह सकती हैं, लेकिन वे कोई नुकसान नहीं कर रहे हैं, इसलिए इसे केवल अकेले छोड़ना सबसे अच्छा है। मैंने अपना उत्तर इस उम्मीद में प्रस्तुत किया है कि कोई और इसे उपयोगी समझेगा।
संपादित करें: जब मैंने पहली बार इसे लिखा था तो उपरोक्त सही था, और सिद्धांत समान हैं; हालाँकि, बूट रिपेयर स्वतः Windows बूट लोडर का नाम नहीं देता है और इसे GRUB की दूसरी प्रति से बदल देता है। (बूट मरम्मत यह वैकल्पिक रूप से कर सकता है , लेकिन विकल्प को एक उन्नत विकल्प मेनू पर दफन किया जाता है, इसलिए यह अब डिफ़ॉल्ट रूप से नहीं किया जाता है।) यह तथ्य इस समस्या से उबरना आज 2013 की तुलना में आसान बनाता है। ज्यादातर मामलों में, आपको केवल आवश्यकता है EFI/ubuntu
ESP पर डायरेक्ट्री को डिलीट करके सिस्टम बूट को सीधे विंडोज में करें। यदि GRUB आपके ऐसा करने के बाद भी दिखाई देता है, तो आपने बूट रिपेयर विकल्प का उपयोग बूट फ़ाइलों के बैकअप और नाम बदलने के लिए किया होगा, जिस स्थिति में इसका उपयोग उन कार्यों को पूर्ववत करने के लिए किया जाता है, जैसा कि पहले उल्लेख किया गया है।
एक अन्य विकल्प कंप्यूटर के अंतर्निहित बूट प्रबंधक का उपयोग करना है (आमतौर पर कंप्यूटर को चालू करने के बाद एक फ़ंक्शन कुंजी, Esc, या जल्द ही दर्ज करें) को GRUB और बूट को Windows से बायपास करने के लिए एक्सेस किया जाता है। फिर आप बूट ऑर्डर को समायोजित करने और / या बूट सूची से प्रविष्टि को हटाने के लिए EasyUEFI का उपयोग कर सकते हैं ubuntu
। यह क्रिया GRUB को ESP से नहीं हटाएगी, लेकिन यह GRUB को बायपास कर देगी।