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


46
error: file '/grub/i386-pc/normal.mod' not found.
grub rescue>

मैं क्या कर सकता हूँ? मैं बस बैठकर इसे घूरता हूं।

मुझे मेरी पुरानी नेटबुक (डेल इंस्पिरॉन 1010) मिली, जिसका मैंने लगभग चार साल से उपयोग नहीं किया है। मैंने विंडोज एक्सपी को उबंटू 12.10 के साथ बदल दिया। मैंने अपने बूट करने योग्य USB ड्राइव का उपयोग किया। मैंने स्थापित किया और रिबूट किया। मुझे वह संदेश मिला जो normal.modनहीं मिला है।

मुझे क्या करना चाहिए? प्रकार exit, rebootया quit? क्या मुझे फिर से स्थापित करना चाहिए?


1
एंकर कम काम करता है। यह काम करता है: अपने ओएस को फिर से स्थापित करें, "कुछ और करें" पर जाएं, फिर अपनी विभाजन तालिका बनाएं use your windows partition as your primary boot device। वह आखिरी कदम जरूरी है। उपयोग / बूट न ​​करें। एक और समाधान हो सकता है: स्टार्टअप के दौरान अपने बूट डिवाइस को मैन्युअल रूप से बदलने का प्रयास करें; हालाँकि, मुझे नहीं लगता कि यह काम करेगा। यह एक लंबे समय से चली आ रही समस्या है जो उबंटू में और 17.10 तक बनी हुई है। धन्यवाद।
वोल्फपैक'08

इनमें से किसी भी निर्देश ने मेरे लिए काम नहीं किया। वास्तव में, विभिन्न रिकवरी टूल्स का उपयोग करने से समस्या और बदतर हो गई। मैं पुनः प्राप्त करने के लिए ग्रब प्रकार प्राप्त करने में सक्षम था, लेकिन क्योंकि मैं lvm2 का उपयोग करता हूं, कर्नेल शुरू करने में विफल रहा। यदि आप किसी भी चीज के लिए lvm2 का उपयोग कर रहे हैं, तो जब यह समस्या होती है, तो आपको ओएस को फिर से स्थापित करना होगा। जहाँ तक मैं बता सकता हूँ, एक असफल कर्नेल अद्यतन + grub + lvm2 संयोजन से कोई पुनर्प्राप्ति नहीं है। एक बिंदु पर Ubuntu सर्वर LTS के लिए धक्का दिए जाने के बावजूद lvm2 बहुत कम आधिकारिक समर्थन देखता है। मैं अपने डेटा का बैकअप ले रहा हूं और OS को फिर से इंस्टॉल कर रहा हूं और lvm2 को दोबारा नहीं छूऊंगा। मेरा सबक सीखा।
क्यूबिकल्सॉफ्ट

1
मैं पहले से ही lvm2 से दूर चला गया और तब से शून्य मुद्दे हैं। मेरा कोई भी बुनियादी ढांचा अब इसका उपयोग नहीं करता है। डिफ़ॉल्ट सिस्टम रेस्क्यू सॉल्यूशंस (ग्राफिकल और सीएलआई) दोनों ही अनजान हैं या केवल LVM के बारे में जानते हैं और यही मेरे लिए LVM का उपयोग नहीं करने के लिए पर्याप्त कारण है। यहां तक ​​कि अगर मैंने सिस्टम को पुनर्प्राप्त करने के लिए आपके निर्देशों का पालन किया और उन्होंने काम किया, तो समस्या भविष्य में फिर से होगी। ओएस को रीइंस्टॉल करना और LVM को खोदना मेरे लिए सबसे अच्छा और सबसे तेज़ विकल्प था।
क्यूबिकलसॉफ्ट

1
मेरे मामले में @Wolfpack समस्या यह है कि बिना सामान्य। मैं क्या कर सकता हूँ?
HoCo_

1
@ वोल्फपैक'08 कृपया उत्तर के रूप में अपने समाधान को दोहराएं। टिप्पणी के रूप में समाधान पोस्ट करना साइट सिद्धांतों को दरकिनार कर रहा है। आपको यह भी उल्लेख करना चाहिए कि "नीचे का जवाब कभी काम नहीं करता है" क्योंकि उनमें से अधिक हैं।
मेलेबियस

जवाबों:


40

ग्रब में एक छोटी कोर छवि होती है जिसे बूट समय पर लोड किया जाता है। कोर छवि गतिशील रूप से मॉड्यूल को लोड करती है जो आगे की कार्यक्षमता प्रदान करती है। i386-pc/normal.mod not foundयह इंगित करता है कि ग्रब normal.mod को लोड नहीं कर सकता है , जो कि एक ग्रब मॉड्यूल है जो सामान्य कमांड प्रदान करता है । Normal.mod लोड करने के लिए आपको यह बताने की आवश्यकता है कि यह कहां है। ऐसा करने के लिए आप ग्रब कमांड-लाइन (उर्फ रेस्क्यू कंसोल) का उपयोग कर सकते हैं। ग्रब कमांड-लाइन शुरू करेगा यदि कोई समस्या बूटिंग है, या आप इसे शिफ्ट कुंजी पकड़कर मैन्युअल रूप से शुरू कर सकते हैं क्योंकि ग्रब शुरू होता है (ग्रब मेनू दिखाने के लिए मजबूर करने के लिए), और फिर 'सी' कुंजी दबाएं।

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

  • ls या search.file का उपयोग करके ग्रब इंस्टॉल का पता लगाएं
  • ग्रब चर $ उपसर्ग और $ जड़ सेट करें
  • सामान्य मॉड्यूल लोड और चलाएं

उदाहरण

निम्नलिखित सिर्फ एक उदाहरण है। आपको इसे अपने स्थानीय ड्राइव और विभाजन सेटअप के अनुकूल बनाना होगा।

normal.mod कहाँ है? कुछ संभावित स्थानों पर देखें

grub> search.file /i386-pc/normal.mod
error: no such device: /i386-pc/normal.mod

grub> search.file /grub/i386-pc/normal.mod
error: no such device: /grub/i386-pc/normal.mod

grub> search.file /boot/grub/i386-pc/normal.mod
hd0,msdos1

यदि आपको "Unknown command 'search.file'"यह मिलता है कि खोज.फाइल कमांड उपलब्ध नहीं है। यह संभवतः इसलिए है क्योंकि आप grub rescue>संकेत पर हैं और grub>शीघ्र नहीं हैं । इस मामले में आप अभी भी ले जा सकते हैं और lsकमांड और अपने विभाजन लेआउट के अपने ज्ञान का उपयोग कर सकते हैं normal.mod

यह पाया गया (HD0, msdos1)

grub> ls (hd0,msdos1)/boot/grub/i386-pc/normal.mod
normal.mod

ग्रब ने इसे क्यों नहीं पाया?
$ उपसर्ग की जाँच करें - ग्रब निर्देशिका का पूर्ण स्थान
(यह तब सेट किया जाता है जब ग्रब को ग्रब-इंस्टॉल द्वारा स्थापित किया जाता है)

grub> echo $prefix
(hd0,msdos2)/boot/grub

$ रूट की जाँच करें - उन रास्तों के लिए डिफ़ॉल्ट डिवाइस, जिनमें डिवाइस
ग्रब शामिल नहीं है, शुरू में इसे $ उपसर्ग से डिवाइस पर सेट करता है

grub> echo $root
hd0,msdos2

रूट और उपसर्ग गलत विभाजन की ओर इशारा कर रहे हैं (HD0, msdos2)
विभाजन के लिए $ रूट और $ उपसर्ग सेट करें जहां हमने normal.mod (hd0, msdos1) पाया

grub> set root=(hd0,msdos1)
grub> set prefix=(hd0,msdos1)/boot/grub

लोड करें और सामान्य मॉड्यूल चलाएं

grub> insmod normal
grub> normal

कुछ अन्य कमांड जो मददगार हो सकते हैं

ls सभी उपकरणों और विभाजनों को सूचीबद्ध करते हैं

grub> ls
(hd0) (hd0,msdos5) (hd0,msdos1)

एल एस विभाजन

grub> ls (hd0,msdos1)
        Partition hd0,msdos1: Filesystem type ext* - Last modification time
2014-05-08 15:56:38 Thursday, UUID c864cbdd-a2ba-43a4-83a3-66e305adb1b6 -
Partition start at 1024KiB - Total size 6290432Kib

एलएस फाइलसिस्टम (नोट / अंत में)

grub> ls (hd0,msdos1)/
lost+found/ etc/ media/ bin/ boot/ dev/ home/ lib/ lib64/ mnt/ opt/ proc/
root/ run/ sbin/ srv/ sys/ tmp/ usr/ var/ vmlinuz initrd.img cdrom/


i386- पीसी निर्देशिका के अंदर / बूट / ग्रब उपस्थिति को देखने का मतलब है कि यह
x86_64-efi निर्देशिका की एक BIOS स्थापित उपस्थिति है जो एक EFI स्थापित का संकेत देगा

grub> ls (hd0,msdos1)/boot/grub
i386-pc/ locale/ fonts/ grubenv grub.cfg


+1 मेरे ubuntu स्थापना में बूट करने के लिए इन चरणों का पालन करने के बाद मैं sudo grub-install /dev/sdXअपना ग्रब स्थापित करने के लिए दौड़ा । मुझे लगता है कि LVM ने किसी तरह से मेरे ग्रब को स्थापित कर दिया है।
डेविड जीपी

मुझे लगता है कि अगर आपको "अज्ञात कमांड 'सर्च-फाइल' मिलती है, जैसे कि मैंने अभी-अभी किया है, तो हार मानने का समय आ गया है। मेरी सलाह है कि लोग बिना विंडोज रिकवरी डीवीडी के उबंटू स्थापित न करें। जैसा कि मुझे अभी पता चला है, रिकवरी पार्टीशन है। पर्याप्त नहीं है कि एक बार ग्रब गड़बड़ हो जाए। और इसके अलावा, कभी भी किसी और के विंडोज कंप्यूटर पर उबंटू स्थापित न करें, क्योंकि अगर यह गड़बड़ करता है तो वे वास्तव में नाराज हो जाएंगे।
स्कूटर

@Scooter लाइव सीडी / यूएसबी को बूट करके ग्रब को पुन: स्थापित करने के निर्देशों के लिए यह उत्तर देखें ।
बैन

@ उत्तर के लिए धन्यवाद। मेरे मामले में उबंटू आईएसओ डिस्क से एक पुनर्स्थापना किया। उबंटू को पता चला कि ग्रब गड़बड़ हो गया था या हो सकता है कि यह स्वतः ही इस पर लिखता है, लेकिन इसने इसे उस जगह पर फिर से भेज दिया जहां मैं फिर से विंडोज में बूट होने में सक्षम था।
स्कूटर

ग्रब बचाव शेल इनमें से किसी भी आदेश का समर्थन नहीं करता है। "अज्ञात कमांड '
search.file

30

इसे आज दोपहर एक मशीन पर हल किया। ऐसा लगता है कि इस समस्या का एक कारण यह इंस्टॉलर है कि आपके पास EFI सुरक्षित बूट है, जब आप नहीं करते हैं और इसलिए गलत GRUB फ़ाइलों को लोड कर रहे हैं।

आपको GRUB 2 को स्थापित करने की आवश्यकता है। ऐसा करने के लिए आपको लाइव उदाहरण पर बूट करने की जरूरत है, अपने रूट विभाजन को माउंट करें और इंस्टॉल करें।

एक लाइव उदाहरण से, उस विभाजन का पता लगाएं जिस पर आपका रूट विभाजन लोड है। GParted आपको यह बताएगा, या आप उपयोग कर सकते हैं

sudo fdisk -l

उस विभाजन के लिए जाएं जिसमें ubuntu स्थापित है।

एक बार जब आपका विभाजन हो जाता है तो आपको इसे माउंट करने की आवश्यकता होती है। मान लें कि रूट विभाजन / dev / sda5 पर है, तो यह होगा:

sudo mount /dev/sda5 /mnt

फिर GRUB 2 स्थापित करें

sudo grub-install /dev/sda --root-directory=/mnt [इस के लिए कॉपी और पेस्ट का उपयोग करें क्योंकि कुछ रिक्त स्थान हैं जिन्हें आपको सही करने की आवश्यकता है।]

यह मानते हुए कि यह आपकी समस्या है, तो आपको बस रिबूट करने में सक्षम होना चाहिए और सब कुछ ठीक चलेगा।

इसके लिए मूल समाधान यहाँ से था: http://ubuntujournal.blogspot.com/2012/11/fix-new-install-of-ubuntu-1210-wont-boot.html


1
मेरे लिए काम नहीं किया। मेरे पास एक ही समस्या है और मैं अभी भी एक समाधान की तलाश कर रहा हूं।
12 अक्टूबर को एक्सटैगहेड

3
--root-directory अब है
बैन करें

1
मेरे लिए काम करने वाला एक और आसान तरीका है कि /etc/grub.d/backup में स्थित grup बैकअप को / boot / grub पर कॉपी करना। उपयुक्त फ़ोल्डर्स और रास्तों के लिए संलग्न रीडमी की जाँच करें।
जेकप

मेरे मामले में समस्या यह थी कि मेरे पास 2 हार्ड ड्राइव थे और bios अनुक्रम पहले गलत ड्राइव को देख रहा था। उस ड्राइव में पुराना दूषित ग्रब इंस्टॉलेशन था।
यूसोब्रसेलीरो

आप नहीं कर सकते बताओ जो fdisk से सही है, तो यह बहुत मदद कर सकते हैं (यह मुझे लगता है जो डिवाइस / मीडिया / Ubuntu / कुछ नाम पर था मदद की) unix.stackexchange.com/questions/11311/...
माइकल

2

मुझे यह जानकारी मंचों पर नहीं मिली, इसलिए मैं इस तथ्य के बावजूद कुछ जानकारी साझा करना चाहता हूं कि यह प्रश्न बहुत पहले पूछा गया था:

यदि आपके पास उबंटू स्थापित है और आप / boot / के लिए अतिरिक्त एक आवंटित नहीं करते हैं, तो आपके पास एक बड़ा (उदाहरण 1TB) विभाजन है, यह इस तरह की त्रुटियों का कारण हो सकता है। जब GRUB शुरू होता है, तो यह सामान्य ड्राइवरों को / boot / grub / निर्देशिका से पढ़ने के लिए biosdisk ड्राइवर का उपयोग करता है। कभी-कभी, यह निर्देशिका शारीरिक रूप से हार्ड ड्राइव पर स्थित हो सकती है, ताकि बायोसिस्क क्षेत्र द्वारा अधिकतम समर्थन किया जा सके। समस्या, उदाहरण के लिए, सिस्टम अपग्रेड के बाद दिखाई दे सकती है। इसके अलावा, मैं हमेशा उस मुद्दे का सामना कर रहा हूं जो ताजा इंस्टॉलेशन उबंटू 13.10 के बाद है, लेकिन यह अलग हो सकता है, क्योंकि यह मदरबोर्ड / बायोस पर निर्भर करता है।

आप जाँच कर सकते हैं कि ग्रब रिकवरी का उपयोग करना - सही PREFIX और ROOT सेट करने के बाद, ls / बूट की कोशिश करें - यदि आपको कुछ भी दिखाई नहीं देता है, लेकिन लाइव cd / फ्लैश ड्राइव से बूट करने पर वहां फाइलें देख सकते हैं - आपके पास ऊपर बताई गई समस्या है ।

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


1

यदि आप grub-rescueप्रॉम्प्ट और / या आपके कॉन्फ़िगरेशन LVM का उपयोग करते हैं, तो यह अन्य समाधान काम नहीं कर सकता है ।

एक बचाव डिस्क पर बूट (टिप: मैं अपने बैकअप यूएसबी डिस्क के एक समर्पित विभाजन पर एक छोटा सा वितरण रखता हूं)।

यदि आप LVM का उपयोग करते हैं, तो अपने वॉल्यूम समूह का नाम lvdisplayकिसी अन्य LVM- संबंधित कमांड के साथ खोजें। इसे सक्रिय करें (अन्यथा mount: special drive /dev/volumegroupname/partition does not existमाउंट करने का प्रयास करते समय आपको एक त्रुटि मिलेगी ):

vgchange -a y volumegroupname

अब अपना सामान्य /विभाजन माउंट करें , जैसे /mnt :

mount /dev/volumegroupname/partition /mnt

कुछ विशेष उपकरणों (साथ ही साथ /bootएक अलग विभाजन पर माउंट करें ):

mount -t proc none /mnt/proc
mount -o bind /dev /mnt/dev
mount -t sysfs /sys /mnt/sys

फिर chrootअपने सामान्य वितरण में:

chroot /mnt

अंत में, GRUB2 को फिर से स्थापित करें - कमांड आपके वितरण के आधार पर भिन्न हो सकते हैं, यह स्लैकवेयर (यदि आपका ड्राइव है /dev/sda) पर काम करता है :

grub-install /dev/sda
grub2-mkconfig -o /boot/grub2/grub.cfg

रिबूट और आपको किया जाना चाहिए।


0

! चयनित व्यक्ति कभी काम करता है।

यह काम करता है:

  1. अपने ओएस को फिर से स्थापित करें , " कुछ और करें " पर जाएं, अपनी विभाजन तालिका बनाएं,
  2. अपने प्राथमिक बूट डिवाइस के रूप में अपने विंडो विभाजन का उपयोग करें

दूसरा चरण कदम जरूरी है

उपयोग न करें/boot

एक और समाधान हो सकता है: स्टार्टअप के दौरान अपने बूट डिवाइस को मैन्युअल रूप से बदलने का प्रयास करें; हालाँकि, मुझे नहीं लगता कि यह काम करेगा, और मुझे अभी इसका परीक्षण करना है।

यह एक लंबे समय से चली आ रही समस्या है जो उबंटू में और 17.10 तक बनी हुई है।

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