सवाल मैं कैसे बता सकता हूं कि डिवाइस पर ग्रब स्थापित है या नहीं?


मैं कैसे बता सकता हूं कि डिस्क पर ग्रब स्थापित है या नहीं, और यदि यह सेटिंग्स है तो यह है (ध्यान दें, रूट पैरामीटर के लिए क्या है)

मुझे यह सुनिश्चित करने के लिए सॉफ़्टवेयर RAID1 arrays में बहुत से डिस्क की जांच करने की आवश्यकता है कि दोनों डिस्क में ग्राब स्थापित हो, प्रत्येक डिस्क पर उपयुक्त रूट मान वाले ग्रब के साथ।


36
2017-09-02 01:38


मूल


क्या आप नीचे दिए गए नए उत्तर को स्वीकार करने पर विचार कर सकते हैं? चूंकि स्वीकृत उत्तर अब तक पुराना है - rubo77
@ rubo77, उस वक्त मेरा जवाब सही था, कब grub 0.9x या उससे कम सामान्य उपयोग में था और इसका नाम बदलकर बहुत लंबा था grub-legacy। यदि यह आपको परेशान करता है, तो मैं विशेष रूप से एक नया प्रश्न पूछने का सुझाव देता हूं grub2। वैकल्पिक रूप से, प्रत्येक प्रश्न और उत्तर को सुधारने वाला एक अभियान आयोजित करें जो समय बीतने के माध्यम से अप्रचलित हो गया है। - cas
कोई अपराध नहीं। मुझे लगता है कि एसओ ज्ञान आधार है और समय के साथ बदलना है। एक बार पुराना उत्तर अद्यतन किया जाना चाहिए। - rubo77


जवाब:


अद्यतन करें:

यह उत्तर 200 9 से है और ग्रब-विरासत पर लागू होता है, न कि grub2।

आप उपयोग कर सकते हैं file एमबीआर में GRUB की पहचान करने के लिए। जैसे

# file -s /dev/sda
/dev/sda: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3
, stage2 address 0x2000, stage2 segment 0x200; partition 1:
ID=0xfd, starthead 1, startsector 63, 1044162 sectors; partition
2: ID=0x82, starthead 0, startsector 1044225, 1028160 sectors;
partition 3: ID=0xfd, starthead 0, startsector 2072385,
1951447680 sectors, code offset 0x48

root= पैरामीटर एमबीआर में संग्रहीत नहीं है, जो GRUB में संग्रहीत है menu.lst फ़ाइल जो फ़ाइल-सिस्टम पर संग्रहीत होती है (आमतौर पर रूट एफएस की बूट / ग्रब निर्देशिका या / boot फाइल सिस्टम की ग्रब निर्देशिका में - लेकिन हमेशा नहीं, यह कहीं भी हो सकती है)।

आपको उपरोक्त फ़ाइल के आउटपुट को पार्स करना होगा, यह निर्धारित करें कि कौन सी डिस्क / विभाजन है menu.lst फ़ाइल चालू है, इसे माउंट करें, इसे पढ़ें और इसे पार्स करें। आप ग्राब / डिफ़ॉल्ट फ़ाइल में भी पढ़ना चाहते हैं कि यह पता लगाने के लिए कि कौन सी ग्रब मेनू प्रविष्टि डिफ़ॉल्ट है, क्योंकि शायद वह वह है जिसमें रूट = पैरामीटर है जिसमें आप सबसे रूचि रखते हैं।


26
2017-09-02 02:31



उस स्थिति में मुझे यह सुनिश्चित करने के लिए एक तरीका चाहिए कि ग्रब उचित जगह पर menu.lst की तलाश में है ... कहीं भी बूट लोडर को बताया जाना चाहिए कि किस डिस्क और विभाजन को जाना है ताकि यह बूट मेनू प्राप्त कर सके। - DrStalker
ग्रब होम पेज पर ग्रब के बारे में बहुत उपयोगी जानकारी है gnu.org/software/grub , ग्रब विकी grub.enbug.org , और विकिपीडिया पर en.wikipedia.org/wiki/GRUB - cas
यह grub2 के साथ अब सही नहीं है। इसके बजाए @ बेनिफकाह का जवाब देखें। - Paul Tomblin


वैकल्पिक विधि

file -s उबंटू ल्यूसिड में मेरे लिए काम नहीं किया क्योंकि मेरा फ़ाइल कमांड की जादू फाइलें पुरानी थीं। ऐसा करने का एक और तरीका यदि आपकी जादू फाइलें GRUB परिवर्तनों के साथ नहीं पकड़ी गई हैं तो डिवाइस के पहले 512 बाइट्स का उपयोग करके जांच करें dd इस तरह का आदेश:

user@host:~$ sudo dd bs=512 count=1 if=/dev/sda 2>/dev/null | strings
ZRr=
`|f
\|f1
GRUB
Geom
Hard Disk
Read
 Error

यह का उत्पादन भेजता है dd के माध्यम से आदेश strings कमांड को इस तरह अप्रचलित पात्रों को अलग करना (हस्तांतरण आंकड़े को त्याग दिया जाता है /dev/null)।

यदि आपको कोई संदेश दिखाई देता है जो GRUB विफलता का सामना करते समय प्रदर्शित करेगा तो आपको गड़बड़ मिल जाएगी।

इस पासवर्ड में उत्तर देने के लिए hubuntuforums.org पर हैट टिप को लॉब करें: http://ubuntuforums.org/showthread.php?t=363372

उत्सुकता के लिए यह मुझे मिला है file -s:

user@host:~$ sudo file -s /dev/sda
/dev/sda: x86 boot sector; partition 1: ID=0x83, active, starthead 32, startsector 20
48, 337211392 sectors; partition 2: ID=0x5, starthead 254, startsector 337215486, 1434214
6 sectors, code offset 0x63

वहां विशेष रूप से GRUB के बारे में कुछ भी नहीं है।


48
2017-07-11 19:00



सटीक। स्वीकृत उत्तर कई मशीनों पर मेरे लिए काम नहीं करता था, लेकिन आपका किया। - Cerin
स्वीकृत उत्तर 200 9 में लिखा गया था और (grub.cfg के बजाय menu.lst के उल्लेख से स्पष्ट होना चाहिए) grub1 उर्फ ​​"ग्रब-विरासत" के लिए था। स्पष्ट रूप से तब से चीजें बदल गई हैं, और grub2 एमबीआर में पहचानकर्ता नहीं रखता है। अगर यह आपके लिए कुछ मशीनों पर काम करता है लेकिन दूसरों पर नहीं, तो इसका मतलब यह होगा कि आपके पास कुछ पर grub1 है और दूसरों पर grub2 है। - cas
स्पिग के लिए धन्यवाद क्रेग। जिस प्रणाली ने मैंने मूल रूप से कोशिश की थी file -s ग्रब-पीसी का उपयोग करता है जो स्पष्ट रूप से GRUB2 है, ऐसा लगता है जैसे आप आंशिक रूप से सही हैं। हालांकि, मैं भाग गया file -s GRUB 0.97 चलाने वाले कुछ अन्य सिस्टमों पर और कुछ लोगों ने काम किया जबकि दूसरों ने ऐसा नहीं किया। इन प्रणालियों के बीच का अंतर जादू फ़ाइलों में संख्याओं में था जो फ़ाइल कमांड के साथ आते हैं। जादू संख्या फ़ाइलों को स्वैप करने से पुष्टि हुई कि गैर-कार्य प्रणाली से परिभाषाओं ने कार्य प्रणाली को विफल कर दिया। - benrifkah


आप उपयोग कर सकते हैं grub-emu मेनू को देखने के लिए जब मशीन अगली रीबूट करता है तो ग्रब दिखाएगा।

$ sudo apt-get install grub-emu
$ sudo grub-emu

मेरी डेस्कटॉप मशीन पर मेनू अपेक्षित के रूप में प्रदर्शित किया गया था, हालांकि अगर मैं वास्तव में कर्नेल बूट करने का नाटक करता हूं तो मुझे "ऐसी कोई डिवाइस नहीं" त्रुटि मिली है। मुझे लगता है कि व्यवहार की उम्मीद है।

मेरे डिजिटलऑन वीपीएस पर ग्रब मेनू में कोई प्रविष्टि प्रदर्शित नहीं हुई थी, हालांकि सर्वर ने वास्तव में ठीक से रीबूट किया था। (यह एक 2013 वीपीएस है, इसलिए आपका माइलेज भिन्न हो सकता है।)

चलते समय कुछ नोट्स grub-emu:

  • एक्स-विंडोज़ में, यदि आप ग्रब के साथ बातचीत करना चाहते हैं, तो आपको अपनी आवश्यकता है कीबोर्ड फोकस होने के लिए टर्मिनल पर जिसमें से आप grub-emu भाग गए, और खिड़की पर नहीं चले गए।
  • आप दबाकर एमुलेटर से बाहर निकल सकते हैं c फिर टाइपिंग exit
  • बाहर निकलने के बाद, आपका टर्मिनल एमुलेटर खराब स्थिति में हो सकता है (उदा। एंटर एक नई लाइन पर प्रदर्शित नहीं होगा)। टाइप करके इसे ठीक करें reset। (चिंता न करें यह आपकी मशीन को पुनरारंभ नहीं करेगा। यह आपके टर्मिनल को साफ़ कर देगा।)

3
2018-04-30 08:32



टाइपिंग c के बाद exit मेरे लिए काम नहीं किया - Faheem Mitha
सुनिश्चित करें कि आपके पास मूल टर्मिनल पर ध्यान केंद्रित किया गया है जो ग्राब विंडो को जन्म देता है, न कि ग्रब विंडो स्वयं (मुझे यह महसूस करने के लिए एक सेकंड ले गया) - Madivad