पुनर्प्राप्त कर रहा है। grubrescue का उपयोग करके .mod फ़ाइलें


33

मैंने एक गूंगा काम किया ... मैं भूल गया कि उबंटू 10.04 (ल्यूसिड लिंक्स) ने GRUB  2 पर स्विच किया, जो एक टन * .Mod फ़ाइलों (कर्नेल मॉड्यूल) में डालता है /boot/grub। मुझे लगा कि वे साउंडट्रैक फाइलें गलत तरीके से वहां रखी गई थीं, और मैंने उन्हें स्थानांतरित कर दिया। कहने की जरूरत नहीं कि अगला रिबूट दर्दनाक था। मुझे ऐसी चीज़ के साथ पेश किया गया था जिसकी मुझे कोई याद नहीं थी ... 'ग्रब रेस्क्यू>' प्रॉम्प्ट।

GRUB त्रुटि को ठीक करने की मदद से : "त्रुटि: अज्ञात फाइल सिस्टम" हालांकि, मैं पुनर्प्राप्त करने में सक्षम था ...

  • मुझे पता चला कि GRUB के बचाव में 'cd', 'cp' या कोई अन्य फाइल सिस्टम कमांड नहीं है, सिवाय इसके 'lari' की भिन्नता के।
  • इसलिए पहले मुझे फ़ाइल और अन्य बूट छवि फ़ाइलों /bootवाली निर्देशिका के साथ विभाजन को ढूंढना था vmlinuz... (असफल प्रयासों की स्मृति से सन्निकटन, साथ ही स्पष्टता के लिए रिक्त रेखाएं, 2014-07-10 docsalvage द्वारा जोड़ा गया)

    grub rescue>  ls  
    (hd0,4) (hd0,3) (hd0,2) (hd0,1)  
    
    grub rescue>  ls (hd0,4)/boot
    ... some kind of 'not found' message
    
    grub rescue>  ls (hd0,3)/boot
    ... some kind of 'not found' message
    
    grub rescue>  ls (hd0,2)/boot
    ... grub ... initrd.img-2.6.32-33-generic ... vmlinuz-2.6.32-33-generic 
    
  • मुझे एक /bootनिर्देशिका मिली जिसमें विभाजन पर vmlinuzफ़ाइल vmlinuz-2.6.32-33-genericथी (hd0,2)

  • तब मैंने 'ग्रब रेस्क्यू' 'प्रॉम्प्ट से मैन्युअल रूप से बूट किया। निम्नलिखित आदेश होंगे ...

    • विभाजन पर निर्देशिका rootका उपयोग करने के लिए सेट करें ।/boot(hd0,2)
    • लोड कर्नेल मॉड्यूल linux
    • कर्नेल छवि का उपयोग करने के लिए उस मॉड्यूल को सेट करें vmlinuz-2.6.32-33-generic
    • छवि का उपयोग करने के लिए initrd (RAM डिस्क को इनिशियलाइज़ करें) सेट करें initrd.img-2.6.32-33-generic
    • बूट लिनक्स।
  • grub rescue>  set root=(hd0,2)/boot  
    grub rescue>  insmod linux  
    grub rescue>  linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic root=/dev/sda2
    grub rescue>  initrd (hd0,2)/boot/initrd.img-2.6.32-33-generic  
    grub rescue>  boot  
    
  • यह बूट व्यस्त है और बिजीबॉक्स प्रॉम्प्ट के लिए क्रैश हो जाता है, जिसमें कुछ अल्पविकसित फाइल सिस्टम कमांड हैं।

  • फिर मैं * .mod फ़ाइलों को /boot/grubनिर्देशिका में वापस ले गया ...

    busybox>  cd /boot  
    busybox>  mv mod/* grub
    busybox>  reboot
    
  • रिबूट सफल था, लेकिन वह बहुत काम था।

क्या कोई आसान तरीका है?


1
बूट-रिपेयर आसान होगा, मेरी राय में। इसका उपयोग करने के विवरण के लिए बूट-रिपेयर पर मेरे कई उत्तरों में से एक को देखें।
सिरचलो

1
"सबसे आसान" तरीका हमेशा सबसे अच्छा तरीका नहीं होता है। मैं उन सभी टिप्पणियों से दृढ़ता से असहमत हूं जो लाइव सीडी का उपयोग करने का सुझाव देती हैं; यह एक सीडी / डीवीडी रीडर नहीं है कि सिस्टम पर एक लाइव सीडी से बूट करने के लिए वास्तव में बहुत मुश्किल है।
सिमोन

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

1
कर्नेल और initrd को मैन्युअल रूप से बूट करने के लिए आपकी पोस्ट बहुत उपयोगी थी, लेकिन मेरा सिस्टम देव, sys या proc, etc / fstab या sbin / init नहीं ढूँढ सका। यही कारण है कि मुझे एक और करने के लिए नेतृत्व के बाद , जो गिरी लोड हो रहा है और इस रूप में मैनुअल बूट दिशाओं में विस्तृत जड़ स्थापित करने का सुझाव दिया है , ग्रब दस्तावेजीकरण , : जैसे grub> linux (hd0,X)/boot/vmlinuz-a.b.c-d-generic root=/dev/sdaX , जहां Xके साथ विभाजन है /boot, a.b.c-dकर्नेल संस्करण है। तब मेरा सिस्टम ठीक बूट हुआ! धन्यवाद!
मार्क मिकोफ़्स्की

1
[: "त्रुटि: अज्ञात फाइल सिस्टम" फिक्सिंग GRUB त्रुटि [डुप्लिकेट]] के अलावा ( askubuntu.com/q/142300/36961 ) एक और महान लिंक है कि कवर इन चरणों का है कैसे लिनक्स पर एक गैर-बूटिंग GRUB 2 बचाव के लिए , ग्रब 2 मैनुअल भी बहुत मददगार है
मार्क मिकोफ़्स्की

जवाबों:


5

नहीं, मुझे लगता है कि आपने ग्रब बचाव का उपयोग करके अपने सिस्टम की स्थिति से उबरने का सबसे आसान तरीका पाया ; यह सिस्टम को बूट करने के लिए पर्याप्त क्षमता देने वाला एक अतिसूक्ष्म प्रणाली है।

BTW, मेरा मानना ​​है कि आपको .modफाइलें मिल गई होंगी और निष्पादित insmod linuxया linuxकमांड विफल हो गई होगी।

केवल दूसरा तरीका, जैसा कि उल्लेख किया गया है, एक लाइव सीडी को बूट करने और 'टूटी हुई' प्रणाली के लिए chroot'ing के बाद grub2 को पुनर्स्थापित करना होगा।


आप बिल्कुल सही कह रहे है! मैं भूल गया कि मैंने ऐसा किया है। भविष्य के संदर्भ के लिए ऊपर मेरे मूल पोस्ट में जोड़ा गया। मुझे इन स्थितियों में सावधान नोट रखने के लिए और अधिक अनुशासित होने की आवश्यकता है। कृपया सलाह दें कि आगे संपादन की आवश्यकता है या नहीं।
DocSalvager

ग्रब डॉक्स जैसे कर्नेल को लोड करने के दौरान मुझे रूट निर्दिष्ट करना पड़ा जैसेgrub> linux (hd0,2)/boot/vmlinuz-2.6.32-33-generic root=/dev/sda2
मार्क मिकोफ़्स्की

यह भी ध्यान दें, यदि आपको .mod फाइलें मिली हैं, तो आप: ग्रब रेस्क्यू ’को पूरी तरह से चित्रित GRUB में पुनर्स्थापित कर सकते हैं: # Inspect the current prefix (and other preset variables): set # Find out which devices are available: ls # Set to the correct value, which might be something like this: set prefix=(hd0,1)/grub set root=(hd0,1) insmod normal normal Source: gnu.org/software/grub/manual/html_node/…
MegaBrutal

7

यहां बूट त्रुटियों के साथ मदद करने के लिए कुछ सामान्य और बुनियादी निर्देश दिए गए हैं, जैसे GRUB loading stage 1.5 error 15 (विभिन्न डिस्क ड्राइव पर विंडोज की स्थापना के बाद):

  1. एक लाइव डीवीडी के साथ बूट (जैसे, उबंटू डेस्कटॉप डिस्क)।

  2. एक टर्मिनल खोलें, और इन कमांड्स का उपयोग करके ग्रब कॉन्फ़िगरेशन फिर से लिखें:

    • sudo mount /dev/sdXY /mnt
    • sudo grub-install --root-directory=/mnt /dev/sdX

वह जगह कहां /dev/sdXहै जहां उबंटू स्थापित है, और /dev/sdXYउबंटू स्थापित है जहां डिस्क पर विभाजन है। दूसरे शब्दों में, /dev/sdXYशामिल है /bootऔर इतने पर।

fdisk -lUbuntu स्थापना स्थान को सत्यापित करने के लिए उपयोग करें ।


काम नहीं किया। शायद अगर दिशाएँ अधिक विशिष्ट होतीं, तो यह काम करती।
टिम स्टीवर्ट

जब मुझे cd ड्राइव के बिना मशीन पर grub2 की समस्या थी तो मैं अपने Gparted Live usb मेमोरी स्टिक ड्राइव का उपयोग करके पुनर्प्राप्त करने में सक्षम था। मैंने जिप्ट लाइव में बूट किया। जब मैंने एक टर्मिनल शुरू किया और fdisk -l टाइप किया (वह अक्षर ell है, नंबर 1 नहीं) तो उसमें से आउटपुट मुझे उस विभाजन की पहचान करने देता है जिसमें रूट विभाजन था और वहाँ से मैंने ऊपर दिए गए उत्कृष्ट निर्देशों का पालन किया और मैं जल्द ही फिर से खुशी से दोहरी बूटिंग कर रहा था। ।
विक

4
  1. लाइव सीडी में बूट करें

  2. टर्मिनल खोलें (CTRL + ALT + T)

  3. निम्नलिखित कमांड दर्ज करें:

sudo fdisk -l

और अपना Ubuntu विभाजन खोजें (यदि यह पहला विभाजन है / dev / sda1 होना चाहिए)

sudo mount /dev/sda1 /mnt

sudo mount --bind /sys /mnt/sys

sudo mount --bind /proc /mnt/proc

sudo mount --bind /dev /mnt/dev

sudo chroot /mnt

अब Grub2 को फिर से स्थापित करें

sudo apt-get install --reinstall grub2

2
क्या यह एक बेहतर तरीका है sudo mount /dev/sda1 /mntऔर इससे बेहतर है sudo grub-install --root-directory=/mnt/ /dev/sda && sudo update-grub?

4

जब मैंने अपने सिस्टम को अपग्रेड किया तो मुझे भी यही समस्या थी।

मैं निम्नलिखित सरल चरणों का सुझाव देता हूं:

  1. अपने सिस्टम को ubuntu लाइव सीडी या लाइव यूएसबी के साथ बूट करें।
  2. टर्मिनल खोलें और कमांड sudo add-apt-repository ppa चलाएं: yannubuntu / boot-repair && sudo apt-get update
  3. फिर कमांड sudo apt-get install -y बूट-रिपेयर && बूट-रिपेयर चलाकर बूट रिपेयर इंस्टॉल करें

  4. इंस्टॉल करने के बाद बूट रिपेयर लॉन्च करें। उदाहरण के लिए, मेनू से, System->Administration->Boot-Repair केवल (Ubuntu 10.04) का उपयोग करें और निर्देशों का पालन करें।

    समस्या का पता लगाने और उसे ठीक करने में 15-20 मिनट का समय लग सकता है।

अधिक मदद के लिए लिंक https://help.ubuntu.com/community/Boot-Repair पर जाएं


0

आप सीडी को बूट कर सकते हैं, अपनी हार्ड ड्राइव को माउंट कर सकते हैं, रूट के रूप में नॉटिलस खोल सकते हैं और उन फाइलों को / बूट में कॉपी कर सकते हैं।

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