ग्रब बचाव शीघ्र, मरम्मत ग्रब


30

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

set root=(hd0,msdos6)
set prefix=(hd0,msdos6)/boot/grub
insmod normal
normal

(वे कदम यहाँ पर एक और पोस्ट पर पाए गए!)।

मैं हर बूट पर इसे दोहराते हुए बहुत थक गया हूं, मैं ग्रब को स्थायी रूप से कैसे ठीक करूं?


1
दो संभावनाएँ: (1) बूट-रिपेयर (2) सुपर ग्रब रेस्क्यू डिस्क देखें: http://linuxnorth.wordpress.com/2012/02/07/repairing-grub/
सेंटोरस

1
बूट करने के लिए प्रश्न में सूचीबद्ध चरणों ने मेरे लिए काम किया। हालांकि लिनक्स के विभाजन को सही ढंग से याद रखना चाहिए।
theCrazyProgrammer

1
जैसा कि दूसरों ने कहा है कि अपडेट-ग्रब करना और फिर ग्रब-इंस्टॉल / देव / एसडीए समस्या को हल करता है।
theCrazyProgrammer

"फ़ाइल नहीं मिली" के लिए कार्तिक का जवाब देखें : askubuntu.com/questions/443241/…
samis

जवाबों:


11

ग्रब बचाव को ठीक करने के लिए निम्न चरणों के साथ चलें:

  • पहली बात यह है कि हमें अपना OS शुरू करना होगा तभी हम grub को ठीक कर सकते हैं।

    #to start OS-->
    error: unknown filesystem.
    Entering rescue mode...
    grub rescue>

    जब आपको ऐसी त्रुटि दिखाई देती है, तो सबसे पहले हमें "फाइलसिस्टम" की जांच करनी होगी, 'ext2'

    grub rescue> ls        # type 'ls' and hit enter to see drive partition.
    (hd0) (hd0,msdos6) (hd0,msdos5) (hd0,msdos4) ...   # you will see such things 

यह हमारी ड्राइव हैं अब हमें यह जांचना है कि कौन सी एक्स 2 है।

grub rescue>ls (hd0,msdos6)
error: disk 'hd,msdos6' not found.

जब तक आप "फाइलसिस्टम ext2" नहीं पाते तब तक किसी अन्य ड्राइव पर जाएं।

grub rescue>ls (hd0,msdos5)
error: disk 'hd,msdos5' not found.
grub rescue>ls (hd0,msdos2)
(hd0,msdos2): Filesystem is ext2        # this is what we want

अब रास्ता तय करें

grub rescue>set boot=(hd0,msdos2)
grub rescue>set prefix=(hd0,msdos6)/boot/grub
grub rescue>insmod normal
grub rescue>normal
  • अब बस किसी भी Ubuntu पर कमांड का पालन करके ग्रब को ठीक करें

    sudo grub-install /dev/sda
    sudo apt-get update
    # to update grub
    sudo apt-get upgrade

सुनिश्चित करें कि OS में लॉगिन करने के बाद आपको ग्रब अपडेट करना होगा


1
ओपी पहले से ही जानता है कि उसके ओएस में कैसे बूट किया जाए। यह उत्तर अधिक संक्षिप्त हो सकता है।
एल्डर गीक

1
यह जवाब मेरे लिए मददगार था। मेरी समस्या मूल प्रश्न के समान नहीं थी, इसलिए अतिरिक्त जानकारी उपयोगी हो गई।
15

1
+1 यह एक असफल केडीई नियॉन इंस्टॉल पर समस्याओं द्वारा तय किया गया है।
डैरेन लुईस

त्रुटि: फ़ाइल '/ boot/grub/i386-pc/normal.mod' नहीं मिली, मुझे क्या करना चाहिए?
भूषणधामले

7

मैं फिर update-grubसे निर्माण grub.conf/ चलाने के लिए कोशिश करूँगा grub.cfg

आप भी उपयोग करने की कोशिश कर सकते हैं grub-install, लेकिन मुझे लगता है कि यह मदद नहीं करेगा।

यदि आप अधिक पढ़ना चाहते हैं, तो पहले चलाएं कि आपके पास कौन सा संस्करण (GRUB 1 या 2) है:

dpkg -l | grep grub

यदि आपके पास GRUB 2 है, तो आप निम्नलिखित ट्यूटोरियल का उपयोग कर सकते हैं: http://www.dedoimedo.com/ कंप्यूटर्स /grub-2.html

बेशक, GRUB से निपटने में सावधानी बरतें क्योंकि हम बूट प्रक्रिया के बारे में बात कर रहे हैं, जो एक संवेदनशील तंत्र है।


2
grub-install <correct-drive, i.e. /dev/sda>और update-grub2अंत में इसे मेरे लिए उबंटू 15.04
ग्रेग क्रामिडा

6

यह मुझे लगता है कि update-grubकोडांतरण करता है grub.cfg, लेकिन आपको मूल जानकारी के साथ एमबीआर / बूट सेक्टर को अपडेट करने के लिए (फिर से) रन grub-install(या grub-setup?) करने की आवश्यकता है - जिस पर grub.cfgफ़ाइल और जाहिरा तौर पर इन मॉड्यूल को खोजने के लिए विभाजन ।


4

जब आपको GRUB बचाव संकेत मिलता है, तो इसका मतलब है कि GRUB बूटलोडर उस विभाजन से अपने मॉड्यूल का पता नहीं लगा सकता है जिसमें उन्हें शामिल किया गया है /boot/grub। इसका कारण यह है कि ड्राइव एमबीआर रिकॉर्ड में फिट होने वाला कोड छोटा है, और इसलिए इसका मुख्य उद्देश्य बाकी बूटलोडर कोड का पता लगाना और लोड करना है। एक बार जब यह अपने मॉड्यूल लोड कर लेता है तो यह GRUB मेनू पेश कर सकता है और बूट प्रक्रिया के बाकी हिस्सों को संभाल सकता है। यदि यह मॉड्यूल नहीं ढूंढ सकता है, तो यह बहुत ही सीमित बचाव संकेत प्रस्तुत करता है।

इसलिए, आप जो देख रहे हैं वह पूरी तरह से सामान्य है यदि आपने पुन: विभाजन किया है, जिससे बूट लोडर के बूट मॉड्यूल वाले विभाजन के संदर्भ को तोड़ दिया गया।

चूँकि आप मैन्युअल रूप से बूट कर सकते हैं, सबसे आसान फिक्स मैन्युअल रूप से बूट करना है और एमबीआर में बूटलोडर को फिर से स्थापित करना है ताकि आपके विभाजन का सही संदर्भ हो। ऐसा करने का तरीका है:

sudo grub-install /dev/sda

यह आपको बूट करता है /dev/sda(ज्यादातर मामलों में, लेकिन यदि नहीं, तो इसे सही ड्राइव से बदलें)।

यह समाधान उपयोग करने की तुलना में कहीं अधिक सरल है boot-repair, लेकिन यदि आप अनिश्चित हैं तो यह अधिक उपयुक्त हो सकता है।


1
आसानी से समझने की शर्तों पर क्या हो रहा है, यह समझाने के लिए +1।
मोनोटस्कर 13

2

सबसे सरल तरीका होगा:

sudo apt-get purge grub-pc grub-pc-bin

फिर:

sudo apt-get install grub-pc grub-pc-bin

2
यह एक स्लेजहैमर दृष्टिकोण है जो संभवतः काम करेगा, लेकिन विभाजन के संदर्भ को अपडेट करने के लिए बस बूटलोडर को फिर से स्थापित करना सरल है (जो कि रीपार्टिंग से टूट गया था)।
bcbc

1

ग्रब बचाव विफलता के अंतिम मामले को हल करें: समस्याएं: 1. i386- पीसी नहीं मिला **** सामान्य मोड काम नहीं कर रहा cp काम नहीं कर रहा है । यदि काम नहीं कर रहा है । सभी को निम्न आदेशों द्वारा हल किया जा सकता है, Ubuntu 18.04 के साथ भी काम करता है। Step1: रूट फ़ोल्डर युक्त निर्देशिका खोजें।

ls

उदाहरण के लिए, यदि रूट फ़ोल्डर (HD0, gpt4) में है, तो टाइप करें

यह कैसा दिखता है

ls (hd0, 4)/

आपको कुछ फ़ाइलें या फ़ोल्डर दिखाई देंगे:

मेरी रूट फाइल (hd0, gpt4) में है

अब अगर आप भाग्यशाली हैं तो निम्न कार्य करें:

set root=(hd0, 4)
set prefix=(hd0, 4)/boot/grub/
insmode normal
normal

अगर आप भाग्यशाली हैं तो यह आपकी समस्या का समाधान करेगा। कभी-कभी लोगों को समस्या होती है जैसे 1386-पीसी फ़ोल्डर नहीं मिल सकता है। उस स्थिति में आपको यह देखना होगा कि आपका ग्रब फ़ोल्डर कहां है। अगर आपको कोई समस्या है:

बूट / ग्रब / i386-pc / normal.mod नहीं मिला

इस स्थिति में, आपको फ़ोल्डर grub2 खोजने की आवश्यकता है। यदि आपके पास grub2 है और उस फ़ोल्डर के अंदर आप अपना i386-pc फ़ोल्डर रख सकते हैं। फिर आपको टाइप करना होगा

prefix=(hd0, 4)/grub2/

यह काम करेगा। यदि आपके पास grub2 नहीं है और i386-pc फ़ोल्डर का पता नहीं लगा सकता है तो निम्न कार्य करें:

grub rescue>set root=(hd0, 4)
grub rescue>set prefix=(hd0, 4)/usr/lib/grub
grub rescue>insmode normal
grub rescue>normal

इस कमांड को निष्पादित करने के बाद आपका ग्रब रेस्क्यू मोड ग्रब मेनू में जाएगा। अब आप linux कमांड को निष्पादित कर सकते हैं।

linux comand

grub>set root =(hd0, 4)
grub>set prefix= (hd0, 4)/boot
grub>insmaod linux
grub>linux vmlinuz.....-generic
grub>intrd (hd0, 4)/boot/...-generic
grub>boot

यह आपको रिकवरी मोड में लाएगा। वहाँ से आप कई उपलब्ध पुनर्प्राप्ति विकल्पों में से चुन सकते हैं। यदि यह मदद नहीं करता है, तो आपको एक ubuntu os डाउनलोड करना होगा, उदाहरण के लिए ubuntu 18.04। आप निम्न लिंक से डाउनलोड कर सकते हैं: ubuntu लिंक

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

rootContainingDirectory-usr-lib-grub

अब i386-pc को boot / grub / folder में कॉपी करें। आपको उस आदेश को दूर करने के लिए एक अनुमति की समस्या हो सकती है:

sudo nautilus

अब उस डायरेक्टरी पर राइट क्लिक करें और ओबंटू लाइव सेशन यूजर को मालिक बदलें

वीडियो का पालन करें: अनुमति परिवर्तन

अब आप इसे बूट / ग्रब फ़ोल्डर रिस्टार्ट में पेस्ट करने के बाद और usb ड्राइव को हटा दें। इस बार कमांड के 1 सेट का उपयोग करें , यह काम करेगा। अगर cp कमांड काम कर रही है तो आप इसे ग्रब मेनू से भी कर सकते हैं।

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