विभाजन तालिका के बिना GRUB को एक पूरी ext4 डिस्क पर कैसे स्थापित करें?


15

वर्तमान में मेरे पास /dev/sdaext4 के रूप में पूरी डिस्क स्वरूपित है, और Gentoo स्थापित है।

(कोई एमबीआर नहीं है, कोई विभाजन नहीं है।)

लेकिन अंत में, मैं इस पर GRUB स्थापित नहीं कर सकता, क्योंकि ऐसा लगता है जैसे GRUB को MBR पर लिखना है।

# grub-install /dev/sda
Unknown partition table signature
Unknown partition table signature
Unknown partition table signature
Unknown partition table signature
Unknown partition table signature
The file /boot/grub/stage1 not read correctly. 

न तो grubकाम करता है ,

# grub
grub> root (hd0)
 Filesystem type unknown, using whole disk

grub> setup (hd0)
 Error 17: Cannot mount selected partition

किसी भी तरह से मैं एमबीआर के बिना GRUB को / dev / sda में स्थापित कर सकता हूं?

पुनश्च /bootनिर्देशिका और grub.confफ़ाइलें:

# tree /boot 
/boot
|-- boot -> .
|-- grub
|   |-- default
|   |-- device.map
|   |-- e2fs_stage1_5
|   |-- fat_stage1_5
|   |-- ffs_stage1_5
|   |-- grub.conf
|   |-- iso9660_stage1_5
|   |-- jfs_stage1_5
|   |-- menu.lst -> grub.conf
|   |-- minix_stage1_5
|   |-- reiserfs_stage1_5
|   |-- splash.xpm.gz
|   |-- stage1
|   |-- stage2
|   |-- stage2_eltorito
|   |-- ufs2_stage1_5
|   |-- vstafs_stage1_5
|   `-- xfs_stage1_5
`-- kernel-2.6.36-gentoo-r5

# cat /boot/grub/grub.conf
default 0
timeout 30
splashimage=(hd0)/boot/grub/splash.xpm.gz

title Gentoo Linux 2.6.36-r5
root (hd0)
kernel /boot/kernel-2.6.36-gentoo-r5 root=/dev/sda

title Gentoo Linux 2.6.36-r5 Rescue
kernel /boot/kernel-2.6.36-gentoo-r5 root=/dev/sda init=/bin/bb

# cat /boot/grub/devices
(fd0)   /dev/fd0
(hd0)   /dev/sda

यह उपयोगी होगा यदि आप उस कमांड को शामिल कर सकते हैं जो आपने उपयोग किया था और त्रुटि संदेश जो आपको स्थापित करने की कोशिश करते समय मिला था। उदाहरण के लिए, क्या आपने कोशिश की है grub-install /dev/sda?
फुनेहे

मैंने पहले ही MBR के साथ डिस्क लेआउट को फिर से बनाया है, और डिस्क के एकल विभाजन में कच्चे फ़ाइल सिस्टम की प्रतिलिपि बनाई है। हालाँकि, मैं एक नए Gento इंस्टालेशन को पुनः प्रयास करूँगा और कुछ समय बाद त्रुटि संदेश पेस्ट करूँगा। धन्यवाद
झी Jìléi

EDIT मैंने त्रुटि संदेश जोड़ा है।
शीला जौली

जवाबों:


5

BIOS डिस्क के पहले सेक्टर (512 बाइट्स) को पढ़ता है और इसमें शाखाएं होती हैं। यदि आपकी डिस्क में पीसी-शैली विभाजन हैं, तो पहले क्षेत्र में विभाजन तालिका भी है। यदि आपकी डिस्क में एक एकल फाइल सिस्टम है, तो पहले क्षेत्र में जो कुछ भी फाइल सिस्टम वहां डालने का निर्णय लेता है। Ext [234] (और कई अन्य फाइल सिस्टम) के मामले में, पहले सेक्टर¹ को बूटलोडर के लिए आरक्षित किया जाता है (और शुरू में इसे शून्य कर दिया जाता है)। आप Grub पर स्थापित कर सकते हैं /dev/sda

कहा जा रहा है कि, कभी-कभी ऐसे BIOS होते हैं जो एक उपकरण से बूट करने से इनकार करते हैं जिसमें विभाजन तालिका नहीं होती है। (लेकिन ऐसे BIOS भी हैं जो कुछ बाहरी उपकरणों से बूट करने से इंकार करते हैं यदि वे एक विभाजन तालिका रखते हैं!) यदि आपके पास इनमें से एक BIOS है, तो आपको एक विभाजन तालिका बनानी होगी।

यहां तक ​​कि अगर एक विभाजन तालिका आवश्यक नहीं है, तो यह अनुशंसित है। आप केवल कुछ किलोबाइट्स बर्बाद करते हैं, और कई गैर-लिनक्स ओएस के तहत पठनीयता प्राप्त करते हैं और किसी भी सह-सीसादमिन के लिए कम आश्चर्य की बात है। यदि आप गलती से अपनी डिस्क को विंडोज चलाने वाली मशीन में प्लग कर देते हैं, तो यह आपको विभाजन का टेबल नहीं दिखने पर डिस्क को पुन: स्वरूपित करने का सुझाव दे सकता है, जबकि यह शिकायत करेगा कि यदि यह एक विभाजन तालिका देखता है तो यह डेटा को नहीं पढ़ सकता है। एक विभाजन प्रकार यह पहचान नहीं करता है।

Where वास्तव में, पहला ब्लॉक, मुझे लगता है, जहां एक ब्लॉक 1kB, 2kB या 4kB है जो पास किए गए विकल्पों पर निर्भर करता है mkfs


5
यह VirtualBox में अतिथि Gentoo OS द्वारा उपयोग किया जाता है। मैंने एक .vmdk वर्चुअल डिस्क बनाई है, जो एक कच्चे द्वारा बैक-एंड है image.ext4। एक फाइल सिस्टम के लिए मैं पूरी डिस्क का उपयोग करने का कारण यह है कि, मैं ट्रिकी जैसी बिना किसी छेड़छाड़ के वॉल्यूम को सीधे होस्ट ओएस में माउंट करना चाहता हूं -o loop,offset=1048576
क्ले जेलेई 13

1
संबंधित मामले में, हमारे पास एक सिस्टम से जुड़ी एफसी डिस्क हैं। इन्हें एक डेटाबेस या LVM द्वारा उपयोग के लिए JBOD के रूप में माना जाता है, जिसका उद्देश्य विभाजन रहित होना है। जब ग्रब के साथ फिर से स्थापित हो --recheckरहा है, तो यह उन विभाजन-कम ड्राइव के साथ अपनी मानचित्र तालिका को अपडेट करने जा रहा है, तब शिकायत करें जब यह उनके गैर-मौजूदा विभाजन तालिका को चबाता है। अगर मैं नक्शे फ़ाइल से इन ड्राइव पथों को हटाता हूं, तो चेतावनी चली जाती है।
ओथियस

2

यह अनिवार्य नहीं है कि GRUB को MBR पर लिखा जाना चाहिए। आप इसे विभाजन बूट क्षेत्र पर स्थापित कर सकते हैं और एमबीआर से दूसरे बूट लोडर को लोड कर सकते हैं, जैसे कि विंडोज 7 लोडर।

http://www.linuxselfhelp.com/gnu/grub/html_chapter/grub_3.html


0

बस के बारे में सब कुछ एक विभाजन तालिका की उम्मीद है। मुझे लगता है कि आपको कम से कम / बूट, स्वैप और / रूट विभाजन होने के सुझाए गए दिशानिर्देशों को फिर से स्थापित करना होगा। तुम्हारी अदला-बदली कहाँ है?


4
लिनक्स परवाह नहीं करता है। अधिकांश BIOS परवाह नहीं करते (हालांकि कुछ करते हैं)। अलग स्वैप और बूट विभाजन आवश्यक नहीं हैं, और /bootअब इसे आधुनिक हार्डवेयर पर अनुशंसित नहीं किया गया है (यह डिस्क आकार पर BIOS सीमाओं को बायपास करने के लिए और ग्रब 1 में LVM जैसे उन्नत डिस्क मोड के लिए समर्थन की कमी है)।
गिलेस एसओ- बुराई को रोकना '

@ गिल्स तुम्हारा मतलब है, मैं एक अलग बिना LVM हो सकता है /boot? यदि हां, तो /bootउसी विभाजन में छोड़ना बेहतर क्यों है /?
फुन्हेहे

2
@phunehehe: आप एक अलग बिना एलवीएम हो सकता है /bootलिलो या ग्रब 2 के साथ है, लेकिन साथ नहीं ग्रब 1. एक अलग /bootएक प्रशासनिक लागत (आप एक और विभाजन करने की जरूरत है, और आप ऊपर मिश्रण के प्रति सावधान रहने की जरूरत है /bootके साथ /), इसलिए आप केवल एक का उपयोग करेंगे यदि कोई कारण हो (जैसे आपका बूटलोडर LVM को नहीं समझ रहा है)।
गिलेस एसओ- बुराई को रोकना '

1
@ अब आप मुझे पुनः स्थापित करने का अनुभव करें ...
१६

1
आपके पास संपूर्ण डिस्क एन्क्रिप्शन जैसी चीजें भी हो सकती हैं :)
XTL
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.