ग्रब त्रुटि: फ़ाइल '/grub/i386-pc/normal.mod' नहीं मिली?


17

मैं हाल ही में अपनी मशीन पर आर्च (उम्मीद है कि सफलतापूर्वक) स्थापित करता हूं। जब मैं रिबूट करने गया, लेकिन मुझे एक समस्या थी। मुझे पाठ के साथ एक काली स्क्रीन मिली

Grub loading.
Welcome to GRUB!
error: file '/grub/i386-pc/normal.mod' not found.
Entering rescue mode...
grub rescue>

मैं तब से जवाब की तलाश में हूँ। मैं लगभग एक पाया यहाँ अभी तक तो उबंटू मंचों पर मैं कह रहा यह झूठ था टिप्पणियों में से एक को देखा। एक और जवाब भी है लेकिन मुझे यकीन नहीं है कि मैं चीजों को गड़बड़ाने के डर से लाइव सीडी से इंस्टॉल करना चाहता हूं।

यदि आप विभाजन, कमांड, ट्यूटोरियल और सिस्टम की समस्याओं में लगातार भाग लेने के बाद भी 7 घंटे बिताते हैं तो आप मेरे डर को समझेंगे। क्या खुशी है।

किसी को भी ग्रब काम करने के लिए एक आसान समाधान का पता है?


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

जब मैं अभी कंप्यूटर पर नहीं हूँ तो मुझे विश्वास है कि मैंने ग्रब स्थापित करने की कोशिश की और यह काम नहीं किया। -
ग्रिफिन

@Griffin यह "ग्रब-इन" के रूप में काम नहीं किया, या यह समस्या को ठीक नहीं किया?
derobert

@derobert ग्रब-स्थापित एक मान्य कमांड नहीं था
ग्रिफिन

@goldilocks दूसरा भी काम नहीं कर रहा है
ग्रिफिन

जवाबों:


9

एक बहुत ही कष्टप्रद बात ...

जैसा कि स्पष्ट रूप से निर्देशिका / बूट / ग्रब / i386- पीसी बस जगह में नहीं था, मैंने अंततः संपूर्ण / usr / lib / grub / i386-pc से / boot / grub की प्रतिलिपि बनाकर समस्या को हल किया। बस इतना ही।

cp -r /usr/lib/grub/i386-pc /boot/grub

मैंने ऐसा इसलिए भी किया क्योंकि यह भी गायब था। दुर्भाग्य से, यह तय नहीं किया।
वोल्फपैक'08

8

मैं एक ऐसे ही मुद्दे के बीच में हूँ (संयोगवश आर्च पर भी)

ग्रब इस फ़ाइल को खोजने और चलाने में विफल हो रहा है क्योंकि यह एक गलत "उपसर्ग" का उपयोग कर रहा है

आप को क्या करना है यहां बताया गया है। आप ग्रब बचाव मोड में बूट करते हैं, फिर आप बस यह पता लगाते हैं कि इसे बूट कैसे किया जाए।

सबसे पहले आप सेट करते हैं, यह चर को सूचीबद्ध करेगा, उदाहरण के लिए मेरा है

cmdpath=(hd0)
prefix=(hd1,msdos3)/boot/grub
root=hd1,msdos3

अब, उपसर्ग वह चर है जहां ग्रब सामान्य .Mod फ़ाइल के लिए दिखता है। मेरे मामले में HD1, msdos3 रूप में ही है / dev / sdb3 (इसी तरह, hd0, msdos1 होगा / dev / sda1) आप को देखने के लिए वैध विभाजन की एक सूची में प्रकार है क्या करना चाहते हो सकता है क्या ls

अब, मेरे मामले में, फिर से, grub को / dev / sdb1 पर स्थापित किया गया था, जो कि मेरे आर्च विभाजन में / बूट के रूप में लगाया गया था, इसलिए सही उपसर्ग होगा (HD1, msdos1) / grub

तो मेरे लिए बूट करने के लिए, मुझे यह करने की आवश्यकता है:

set prefix=(hd1,msdos1)/grub
insmod normal
normal

आपके मामले में आपको या तो याद रखना होगा या अनुमान लगाना होगा कि आपने किस विभाजन पर ग्रब स्थापित किया है। आप गलत अनुमान लगा सकते हैं, यह कोई नुकसान नहीं करेगा, insmod कमांड बस विफल हो जाएगा और आप फिर से एक और विभाजन के साथ कोशिश कर सकते हैं।

इसके बाद, इसे सामान्य रूप से लोड करना चाहिए, और मैं उस सूची से चुन सकता हूं जिसे मैं बूट करना चाहता हूं। आम तौर पर जब इस तरह की गड़बड़ी होती है, तो अपने मलबे ( ग्रब-इंस्टॉल का उपयोग करके ) ग्रब को फिर से स्थापित करना चाहिए और इसे स्थायी रूप से ठीक करना चाहिए ताकि आपको हर बार बूट करने के बाद ऐसा न करना पड़े। हालांकि मुझे यह पता लगाने में बहुत कठिनाई हो रही है कि क्या करना है अगर इसे ठीक करना आसान नहीं है (या मुझे साझा करना चाहिए कि आपको क्या करना चाहिए)।

केवल अगर यह विफल रहता है (उदाहरण के लिए यदि उपसर्ग सही है, लेकिन आप अभी भी बूट नहीं कर सकते हैं) तो आपको समस्या के आसपास काम करने के लिए जीवित या बचाव सीडी का सहारा लेना चाहिए (इससे बचने के लिए सबसे अच्छा है)


यह थोड़ा पुराना सवाल हो सकता है, लेकिन मैंने पाया कि किसी को यह उत्तर देना था कि चीजों को ठीक करने के लिए लाइव सीडी और वेब का उपयोग करने के बजाय वास्तव में ग्रब बचाव का उपयोग कैसे करें। हमारी सहायता के लिए हमारे पास हमेशा लाइव मीडिया नहीं है, और यदि हम करते हैं, तो भी आमतौर पर हमारे पसंदीदा वातावरण से काम करना बेहतर होता है।
सेसिएंट

महान व्याख्या! (विशेषकर "गलत अनुमान लगाने से कुछ भी नहीं होगा" के बारे में ध्यान दें)। मैं एक दोहरी बूट विंडोज़ + उबंटू प्रणाली के साथ एक ही समस्या में भाग गया, गलती से सोचने के बाद कि विंडोज़ विभाजन को हटाने से उबंटू पर कोई प्रभाव नहीं पड़ेगा। वैसे भी, इस पोस्ट ने वास्तव में यह समझने में मदद की कि त्रुटि को कैसे ठीक किया जाए। चूंकि मुझे याद नहीं है कि किस विभाजन में ग्रब था, मैंने बस उन सभी को सूचीबद्ध किया ls, फिर उन्हें एक-एक करके कोशिश की जब तक कि मैंने सही संयोजन नहीं मारा :-)
लेह

@ बहुत खुशी है कि इसने किसी की मदद की :)
सेशनर

1
किसी चीज़ को ठीक करना हमेशा अच्छा होता है, लेकिन यह समझना कि आपने इसे कैसे ठीक किया है, बेहतर है :-) चीयर्स।
लेह

आप एक प्रतिभाशाली हैं
आशीष डोनरिया

5

मैं सिर्फ मिंट 15 की एक ताजा स्थापना के बाद आज यह समस्या थी।

इंस्टॉलर ने /boot/grub/x86_64-efiमॉड्यूल बनाए लेकिन नियमित /boot/grub/i386-pcमॉड्यूल नहीं।

लाइव सीडी से ग्रब की फिर से स्थापना ने इस मुद्दे को ठीक कर दिया।

अपने बूट डिवाइस और बूट विभाजन के साथ / dev / sda और / dev / sda1 को बदलें और लाइव सीडी से निम्नलिखित कमांड चलाएँ:

sudo mount /dev/sda1 /mnt
sudo grub-install --boot-directory=/mnt /dev/sda
sudo reboot

1

आपकी पोस्ट के लिए धन्यवाद। मैंने एक लगभग समान त्रुटि संदेश हल किया - "फ़ाइल '/grub2/i386-pc/normal.mod' नहीं मिला" के बाद लिनक्स सेंटोस 5.11 की एक नई स्थापना के बाद विंडोज विस्टा के साथ एक पुराने डेल ऑप्टिप्लेक्स कंप्यूटर पर, दोहरी बनाने के लिए -बूट सिस्टम।

मेरी स्थिति कितनी जटिल थी कि मैं पहले से ही फेडोरा 20 डिस्ट्रो पर नए फेडोरा 20 डिस्ट्रो को स्थापित करने की कोशिश कर रहा था, जो GRUB (लीगेसी) के बजाय GRUB2 का उपयोग करता है। फिर मैंने उस पर सीधे CentOS स्थापित करने की कोशिश की, विंडोज विभाजन को ध्यान में रखते हुए और फेडोरा विभाजन को ओवरराइट किया।

CentOS स्थापना के दौरान, मैंने अपना पहला (विंडोज) विभाजन अकेले (HD0,0) छोड़ दिया और एक दूसरे (बूट) विभाजन (HD0,1) पर / बूट निर्देशिका बनाई। मैंने तब एमबीआर को संशोधित नहीं करने का विकल्प चुना और इसके बजाय अन्य विकल्प (दूसरे विभाजन पर बूटलोडर) का चयन किया।

सफल इंस्टॉलेशन दिखाई देने के बाद, यह ऊपर की त्रुटि में रीबूट हो गया।

मुझे संदेह है कि पहले विभाजन पर बूट जानकारी GRUB2 स्थान की ओर इशारा करती रही। सीपीयू सामान्य पा नहीं सका। शायद, क्योंकि पहले बनाए गए FEDORA00 विभाजन हटा दिए गए थे।

यहाँ मेरे कदम हैं:

  1. बचाव मोड ("लिनक्स बचाव") में मेरे सेंटो 5 इंस्टॉलेशन सीडी से बूट करें।

  2. स्थानीय ड्राइव माउंट करें: चुरोट / mnt / sysimage

  3. एकल-उपयोगकर्ता मोड पर स्विच करें: सु

  4. CentOS स्थापना अद्यतन करें: yum अद्यतन

  5. Grub.conf फ़ाइल में "Microsoft Windows Vista" जोड़ने के लिए emacs संपादक का उपयोग करें: emacs /boot/grub/grub.conf, और Vista को डिफ़ॉल्ट OS बनाएं।

    ( नोट: देखें www.cyberciti.biz/faq/grubconf-for-windows-vista-or-xp-dual-boot/ और https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html /Installation_Guide/sn-medialess-editing-grub-conf.html )।

  6. MBR को अपडेट करने का प्रयास करें: grub-install / dev / hda

  7. अज्ञात GRUB त्रुटि के लिए रिबूट, जिसमें CPU "GRUB" प्रदर्शित करने के बाद लटका दिया गया था।

  8. मूल विंडोज विस्टा इंस्टॉलेशन डिस्क (या अन्य विंडोज रिकवरी डिस्क) से रिबूट करें और डिस्क की मरम्मत के लिए विकल्प चुनें। संदेश प्राप्त करें कि एमबीआर की मरम्मत की गई है।

  9. विंडोज विस्टा में रिबूट सही ढंग से।

मुझे यकीन है कि अधिक सुरुचिपूर्ण समाधान मौजूद हैं, लेकिन यह मेरे लिए काम करता है। मैंने GRUB को GRUB2 माइग्रेशन पैकेज में डाउनलोड करने का प्रयास किया, जैसा कि http://help.ubuntu.com/community/Grub2/Upgrading पर वर्णित है , कोशिश करके:

$ yum install grub-pc

लेकिन यह पैकेज नहीं मिला। शायद मुझे सिर्फ कोशिश करनी चाहिए थी yum install grub


0

फालतू में जोड़ना ...

यदि आप USB से बूट करते हैं, और i386 फ़ोल्डर है, तो आप i386 फ़ोल्डर को टूटे हुए भाग पर रूट के रूप में खोल सकते हैं और फिर कार्यशील i386 फ़ोल्डर को USB से कॉपी कर सकते हैं।


0

मैं दो चरणों में अपने CentOS 6.7 सिस्टम में आ गया हूं। सबसे पहले, मैंने ऊपर दिए गए flittermice से सलाह का पालन किया है, लाइव सीडी से बूट किया, / mnt के रूप में / dev / sda2 को माउंट किया और / mnt / usr / ... से i386-pc फ़ोल्डर की प्रतिलिपि बनाई (आप पा सकते हैं) द्वारा find /|grep i386/ बूट / ग्रब और रिबूट करने के लिए।

इसने मुझे ग्रूब> ग्रब बचाव के बजाय> ;-) दिया।

तब मैंने यहां एक गाइड का अनुसरण किया है [ https://www.linux.com/learn/tutorials/776643-how-to-rescue-a-non-booting-grub-2-on-linux/] को खोजने और बूट करने के लिए मेरा विभाजन। यह (HD0,2) था, क्योंकि (HD0,1) स्वैप द्वारा लिया गया था।

बाद में, मुझे पता चला है कि इस बूट को "स्वचालित" बनाना संभव नहीं था, शायद इसलिए कि मेरा / बूट इनकोड आकार 256 के साथ ext4 पर था, और पुराने grub1 को 128 की आवश्यकता है। मैं [ http: // से कुछ कमांड का पालन करने की कोशिश करूंगा। स्थापना से पहले विभाजन तैयार करने के लिए kb.kristianreese.com/index.php?View=entry&EntryID=113]


0

Ubuntu को पुनर्स्थापित करें। "कुछ और करो"। अपने विंडोज इंस्टॉलेशन विभाजन को उस स्थान के रूप में चुनें जहां इसे बूट लोडर को स्थापित करना चाहिए।

यदि आपके पास एक मौजूदा विंडोज इंस्टॉलेशन है, तो आपको उसी विभाजन पर ग्रब स्थापित करना होगा; अन्यथा, आपको प्रश्न में देखी गई समस्या होगी।

यह 14, 15, 16, 17 उबंटू सभी संस्करणों और शायद पहले के संस्करणों के लिए प्रासंगिक है। यह पूछे जाने पर कि बूट लोडर को कहां स्थापित करना है, / boot विभाजन का निर्माण और चयन न करें; इसके बजाय, विंडोज विभाजन का उपयोग करें।

धन्यवाद।


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