`इंस्टॉल-ग्रब` का दावा है कि मेरे पास कई पार्टिटोन लेबल हैं और यह एम्बेड करना असंभव है


19

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

मैंने एक लाइव USB के साथ बूट किया और निम्नलिखित कमांड का उपयोग करके GRUB को फिर से स्थापित करने का प्रयास किया, लेकिन मुझे एक ऐसी त्रुटि का सामना करना पड़ा जो इसे काम करने से रोकती है:

$ सुडो माउंट / देव / sda1 / mnt
$ sudo grub-install --root-directory = / mnt / dev / sda
I386-pc प्लेटफ़ॉर्म के लिए इंस्टॉल करना।
ग्रब-इंस्टॉल: चेतावनी: जीआरयूबी को कई विभाजन लेबल वाले डिस्क में स्थापित करने का प्रयास। यह अभी तक समर्थित नहीं है ..
ग्रब-इंस्टॉल: चेतावनी: एंबेडिंग संभव नहीं है। GRUB को केवल इस सेटअप में ब्लॉकलिस्ट्स का उपयोग करके स्थापित किया जा सकता है। हालांकि, ब्लॉकलिस्ट UNRELIABLE हैं और उनके उपयोग को हतोत्साहित किया जाता है।
ग्रब-इंस्टॉल: त्रुटि: ब्लॉकलिस्ट के साथ आगे नहीं बढ़ेगी।

हालांकि, /dev/sdaग्रब स्थापित करने के लिए सही ढंग से स्वरूपित किया गया प्रतीत होता है:

$ सुडो fdisk -l / dev / sda

डिस्क / देव / sda: 111.8 GiB, 120034123776 बाइट्स, 234441648 सेक्टर
इकाइयाँ: 1 * 512 = 512 बाइट के सेक्टर
सेक्टर आकार (तार्किक / भौतिक): 512 बाइट्स / 512 बाइट्स
I / O आकार (न्यूनतम / इष्टतम): 512 बाइट्स / 512 बाइट्स
डिस्क्लेबेल प्रकार: डॉस
डिस्क पहचानकर्ता: 0x8d91017b

डिवाइस बूट स्टार्ट एंड सेक्टर आकार आईडी प्रकार
/ dev / sda1 * 2048 234440703 234438656 111.8G 83 लिनक्स

$ ब्लकि / देव / sda1
/ dev / sda1: UUID = "84e9ff65-c4ba-42eb-8a6d-ebc703fae1f7" TYPE = "ext4" PARTUUID = "8d91d7bb-01"

इसकी शुरुआत में मानक 1 MiB मुक्त स्थान है, और /dev/sda1इसे सही ढंग से स्वरूपित किया गया है। मैंने grub-mkconfigविन्यास फाइल के पुनर्निर्माण की कोशिश की है :

खरीद के लिए $ s में देव देव / पीटीएस; do sudo Mount --bind / $ f / mnt / $ f; किया हुआ
$ सूडो चुरोट / मेंट
# grub-mkconfig -o /boot/grub/grub.cfg
ग्रब कॉन्फ़िगरेशन फ़ाइल जनरेट कर रहा है ...
मिली लिनक्स छवि: /boot/vmlinuz-3.19.0-26-generic
मिली initrd छवि: /boot/initrd.img-3.19.0-26-generic
मिली लिनक्स छवि: /boot/vmlinuz-3.19.0-23-generic
Initrd छवि मिली: /boot/initrd.img-3.19.0-23-generic
EFI फर्मवेयर कॉन्फ़िगरेशन के लिए बूट मेनू प्रविष्टि जोड़ना
किया हुआ

हालाँकि, मुझे अभी भी वही त्रुटि संदेश मिलता है जब वह चल रहा हो grub-install, चाहे वह chrootवातावरण में हो या बाहर हो ।

लीगेसी मोड में लाइव यूएसबी बूट करना, मुझे वही त्रुटि मिलती है; एकमात्र अंतर पर्यावरण grub-mkconfigमें चलने के उत्पादन का chrootहै:

# grub-mkconfig -o /boot/grub/grub.cfg
ग्रब कॉन्फ़िगरेशन फ़ाइल जनरेट कर रहा है ...
मिली लिनक्स छवि: /boot/vmlinuz-3.19.0-26-generic
मिली initrd छवि: /boot/initrd.img-3.19.0-26-generic
मिली लिनक्स छवि: /boot/vmlinuz-3.19.0-23-generic
Initrd छवि मिली: /boot/initrd.img-3.19.0-23-generic
मिली memtest86 + छवि: /boot/memtest86+.elf
मिली memtest86 + छवि: /boot/memtest86+.bin
मिला विंडोज 7 (लोडर) / देव / sdc1 पर
किया हुआ

मैं ग्रब को सही तरीके से कैसे स्थापित कर सकता हूं?

जवाबों:


25

बूट सेक्टर और पहले विभाजन के बीच की दूरी को Nuke।

# dd if=/dev/zero of=/dev/sdX seek=1 count=2047

यह तब होता है जब पहला विभाजन सेक्टर 2048 से शुरू होता है। कुछ पहले शुरू होते हैं, विशेष रूप से उन ड्राइव पर जो विंडोज द्वारा विभाजित किए गए थे। सुनिश्चित करने के लिए, भागो

# fdisk -l /dev/sdX

शुरू करने से पहले और यह देखने के लिए जांचें कि पहला विभाजन कहाँ शुरू होता है। उपयोग करें count=S-1, जहां एस पहले विभाजन की शुरुआत है।


इसने मेरे लिए काम किया। मैं एक अलग ext4 / बूट विभाजन के साथ BTRFS का उपयोग करने की कोशिश कर रहा हूं। धन्यवाद।
थेल्स Ceolin

ध्यान दें कि यह GPT लेआउट को ट्रैश करेगा। हालांकि इसके बैकअप से उबरना संभव है।
सी.आर.

यदि आप GPT का उपयोग कर रहे हैं तो आपको BIOS BOOT PARTITION को पोंछना होगा। जहां यह निर्भर करता है कि आपने अपनी डिस्क कैसे रखी है। मैंने GPT के बाद, ब्लॉक 34 और 2047 के बीच, पहला "वास्तविक" विभाजन संभालने के बाद ब्लॉक 2048 से शुरू होता seek=34 count=2014है। मेरे लिए काम का उपयोग करने के लिए दिए गए कमांड-लाइन को संशोधित करना ।
स्टारफ्री

अच्छी तरह से काम!!!! ग्रब इसे स्वचालित रूप से करना चाहिए हालांकि
ब्रालियोबो

1
हाँ, आपको ऐसा लगता है, @brauliobo, लेकिन GRUB कुल कचरा है। मैं भी इसे किसी भी अधिक का उपयोग नहीं करते। इन दिनों, मैं gbr के लिए mbr और systemd- बूट के लिए syslinux का उपयोग करता हूं।
enigmaticPhysicist

3

एक नया विभाजन बना सकते हैं जहां GPT रिकॉर्ड है, फिर इसका उपयोग करके मिटा दें dd। इस तरह, केवल एमबीआर रिकॉर्ड ही रहेगा।

समस्या डिवाइस मान रहा है /dev/sda:

प्रारंभिक 1 MiB में एक नया विभाजन बनाएँ

$ parted /dev/sda
$ mkpart primary ext4 0MiB 1MiB
$ quit

फिर, नए बनाए गए विभाजन को शून्य करें

$ dd if=/dev/zero of=/dev/sda2

फिर, विभाजन हटाएं

$ parted /dev/sda
$ rm 2
$ quit

grub-install अब उम्मीद के मुताबिक काम करना चाहिए।


कृपया इस कोड को करने के लिए अपने जवाब को संपादित करें, और आप इसे समाधान क्यों मानते हैं।
मार्टिन थॉर्नटन

मेरे लिए काम किया। इसे स्पष्टता के लिए संपादित किया गया
Nitz

3

कई विभाजन लेबल के साथ एक समान समस्या थी, हालांकि मुझे पूरा यकीन है कि ऐसा नहीं है।

sudo grub-install target=i386-pc /dev/sda --force

यह वही है जो मुझे इसके आसपास मिलता था। एक पर टैप करना --force"अनुशंसित" समाधान नहीं है, लेकिन मेरे पास अभी तक कोई समस्या नहीं है = पी


1

यहाँ मैंने वही किया है जो इसे फिर से काम कर रहा है:

उपयोग किया गया gdiskएमबीआर विभाजन को जीपीटी में बदलने के लिए किया है, एक विभाजन को खाली स्थान में डालें (टाइप करें EF02 "BIOS बूट विभाजन"), मेरे मूल विभाजन के साथ इसके प्रवेश को ट्रांसपोज़ किया और इसे लीगेसी BIOS बूटेबल के रूप में चिह्नित किया।

फिर दौड़ा

$ सुडो माउंट / देव / sda1 / mnt
$ sudo grub-install --root-directory = / mnt / dev / sda

यह तब सफलतापूर्वक स्थापित हो गया, और मैं अपने मुख्य ड्राइव पर बूट करने में सक्षम हूं।

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