grub2- स्थापित करें: "इस GPT विभाजन लेबल में कोई BIOS बूट विभाजन नहीं है"


41

इस बारे में काफी चर्चा हो रही है लेकिन मुझे इसका सरल उत्तर नहीं मिल रहा है।

जब मैं grub2 को स्थापित करने का प्रयास करता हूं तो मुझे यह त्रुटि मिलती है:

# grub2-install /dev/sda
Installing for i386-pc platform.
grub2-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
grub2-install: warning: Embedding is not possible.  GRUB can only be installed in this setup by using blocklists.  However, blocklists are UNRELIABLE and their use is discouraged..
grub2-install: error: will not proceed with blocklists.

यहाँ / dev / sda का लेआउट दिया गया है:

Disk /dev/sda: 111.8 GiB, 120034123776 bytes, 234441648 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 7ECE06D0-9F0C-44FF-BCFB-142283172CCA

Device        Start       End   Sectors  Size Type
/dev/sda1      2048    411647    409600  200M Linux filesystem (/boot)
/dev/sda2    411648   4605951   4194304    2G Linux swap
/dev/sda3   4605952  46548991  41943040   20G Linux filesystem (/)
/dev/sda4  46548992 234441614 187892623 89.6G Linux LVM (/var)

वहाँ एक सरल तरीका है कि मैं इस समस्या के आसपास मिल सकता है? मैं समझता हूं कि मुझे "BIOS बूट पार्टीशन" के रूप में डिस्क की शुरुआत में एक छोटा विभाजन बनाने की आवश्यकता है। मुझे लगता है कि एक विकल्प स्वैप को / वॉल्यूम / sda4 को एक तार्किक वॉल्यूम के रूप में स्थानांतरित करना होगा, और / बूट के रूप में / dev / sda2 का उपयोग करना होगा।

वैकल्पिक रूप से मैं बस ग्रब-विरासत पर वापस जा सकता था और इसके बारे में चिंता नहीं करता था (क्या वास्तव में ग्रब 2 में अपग्रेड करने का एक फायदा है अगर यह बहुत परेशानी का कारण बनता है?)।

विचार?

जवाबों:


23

आपको पहले यह निर्धारित करना चाहिए कि क्या आप BIOS / CSM / विरासत-मोड बूट या EFI / UEFI- मोड बूट का उपयोग करना चाहते हैं। पूर्व तरीका यह है कि पीसी 1980 के दशक से बूटिंग कर रहा है, लेकिन यह एक बदसूरत और हैकिश प्रणाली है जो बहुत पहले से डोडो के रास्ते जा रहा है। MBR पार्टीशन टेबल में विंडोज़ BIOS-मोड बूटिंग को टाई करता है, जिसका आप उपयोग नहीं कर रहे हैं (लेकिन यह कर सकते हैं; आपकी डिस्क कहीं नहीं है, जीपीटी की आवश्यकता के पास पर्याप्त नहीं है)। लिनक्स, फ्रीबीएसडी, और अधिकांश अन्य आधुनिक ओएस अधिक लचीले हैं, और जीपीटी से BIOS-मोड बूटिंग का समर्थन करते हैं; लेकिन कभी-कभी फर्मवेयर-निर्मित जटिलताएं होती हैं, और निश्चित रूप से यदि आप बाद में एक दोहरे बूट सेटअप में विंडोज स्थापित करने का निर्णय लेते हैं, तो आपको परिवर्तन या समझौता करने की आवश्यकता होगी।

EFI / UEFI- मोड बूटिंग एक हैक से कम नहीं है; लेकिन EFI कार्यान्वयन गुणवत्ता में बहुत भिन्न होता है और EFI के लिए वेब पर विशेषज्ञता और समर्थन का समग्र स्तर BIOS के लिए कम है। Windows ने GPT से EFI- मोड बूटिंग का उपयोग किया है, इसलिए यदि आप कभी भी अपने कंप्यूटर पर Windows स्थापित करने की अपेक्षा करते हैं, तो EFI निश्चित रूप से जाने का मार्ग है। पुराने कंप्यूटर केवल BIOS हैं। ईएफआई ने 2011 के मध्य में बाज़ार में उतारना शुरू किया, इसलिए यदि आपका कंप्यूटर इससे पुराना है, तो आप शायद एफएफआई का उपयोग करने में सक्षम नहीं होंगे।

यदि आप BIOS-मोड बूटिंग के साथ जाते हैं, तो आपको डिस्क पर BIOS बूट पार्टीशन बनाना चाहिए । इस विभाजन के लिए आपकी डिस्क की शुरुआत में पर्याप्त जगह है, लेकिन आपको इस कार्य के लिए अपने सेक्टर संरेखण मूल्य को 1 (सामान्य 2048 से) निर्धारित करना होगा। अगर यह इसके साथ किया जा सकता है parted, तो मुझे पता नहीं है , लेकिन आप इसे कर सकते हैं gdisk। (ध्यान दें कि BIOS डिस्क विभाजन के लिए अनुशंसित 1MiB आकार के तहत आपकी डिस्क की शुरुआत में स्थान थोड़ा है, लेकिन सिर्फ कुछ क्षेत्रों द्वारा। यह शायद ठीक काम करेगा, लेकिन भविष्य में किसी बिंदु पर गर्भधारण करने में विफल हो सकता है।) वैकल्पिक रूप से , आप BIOS बूट विभाजन के लिए जगह बनाने के लिए अपने किसी भी विभाजन को 1-2MiB तक सिकोड़ सकते हैं। इस विभाजन को डिस्क पर पहला विभाजन होने की आवश्यकता नहीं है, हालांकि यह पारंपरिक स्थान है।

यदि आप EFI / UEFI- मोड बूटिंग के साथ जाते हैं, तो आपको एक EFI सिस्टम विभाजन (ESP) बनाना होगा। यह विभाजन FAT-स्वरूपित होना चाहिए और BIOS बूट विभाजन से काफी बड़ा होना चाहिए, इसलिए आपको इसे बनाने के लिए कुछ का आकार बदलना होगा। मैं 550MiB के आकार की सलाह देता हूं, हालांकि इसका दसवां हिस्सा चुटकी में काम कर सकता है।

GRUB को स्थापित करने के लिए, आपको पहले यह सुनिश्चित करना चाहिए कि आपने सही GRUB पैकेज स्थापित किया है। मैं सभी वितरणों में नाम रखने के बारे में निश्चित नहीं हूं, लेकिन उबंटू में, यह grub-pcBIOS / CSM / विरासत मोड और grub-efi-amd64EFI / UEFI मोड के लिए होगा। EFI- मोड इंस्टॉलेशन को भी EFI मोड में GRUB (एक लाइव सीडी / यूएसबी, संभवतः) स्थापित करने के लिए जो भी आप उपयोग कर रहे हैं उसे बूट करने की आवश्यकता होगी। ऐसा करने के लिए आपके कंप्यूटर के अंतर्निहित बूट प्रबंधक का उपयोग करने की आवश्यकता हो सकती है, जिसे आमतौर पर फ़ंक्शन कुंजी के माध्यम से एक्सेस किया जाता है, लेकिन विवरण एक कंप्यूटर से दूसरे में भिन्न होता है।


आपके बहुत उपयोगी उत्तर के लिए धन्यवाद। मुझे वर्चुअल मशीन पर काम करने में थोड़ी गड़बड़ हुई। जब मैं अपने "प्रोडक्शन" मशीन (जिसमें दो हार्ड ड्राइव हैं) पर ऐसा करने की कोशिश करता हूं तो मुझे कई समस्याएं होती हैं: grub2-install grub-setup=/bin/true /dev/sdaदेता है grub2-install: error: More than one install device?.। मेरे कामकाजी वीएम पर शुरुआती क्षेत्र को 32 के रूप में चिह्नित किया गया है, लेकिन उत्पादन मशीन पर इसके 2048. पता नहीं है कि क्या यह प्रासंगिक है।
रॉबर्ट एस

जैसा कि फ्लो अपने जवाब में बताता है कि BIOS बूट विभाजन का विभाजन प्रकार 0x04 पर सेट होना चाहिए जो "BIOS बूट" है अन्यथा ग्रब स्थापित करने में विफल रहता है। इसे उदाहरण के लिए fdisk के "t" कमांड के साथ सेट किया जा सकता है।
user1225999

क्या बिना बायोस बूट विभाजन के ग्रब 2 स्थापित करने का एक तरीका है ? मैं केवल यूईएफआई का उपयोग करना चाहता हूं।
CMCDragonkai

1
EFI- मोड इंस्टॉलेशन में, GRUB 2 एक BIOS बूट पार्टीशन का उपयोग नहीं करता है। यदि GRUB एक के लिए पूछ रहा है, तो संभावना है कि आपने BIOS मोड में बूट किया है, EFI मोड में नहीं। अपने CSM को अक्षम करने के लिए अपने बूट विकल्पों की जांच करें, जैसा कि इस विषय पर मेरे वेब पेज पर वर्णित है: rodsbooks.com/efi-bootloaders/csm-good-bad-ugly.html
Rod Smith

6

यदि आप पुराने शैली के BIOS बूट मोड के साथ GPT विभाजन का उपयोग करना चाहते हैं, तो आपको उस डिवाइस पर कुछ मेगाबाइट्स (16MiB ठीक और भविष्य के प्रमाण होने चाहिए) का BIOS विभाजन बनाने की आवश्यकता होती है, जहां आप ग्रब स्थापित करना चाहते हैं grub-install

fdiskअपने डिस्क पर कहीं प्रकार "BIOS बूट" के विभाजन को बनाने के लिए , उदाहरण के लिए , का उपयोग करें । उदाहरण आउटपुट:

# fdisk -l /dev/sda
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 57E16A16-36B4-4445-A216-031EF6501415

Device        Start        End    Sectors   Size Type
/dev/sda1      2048    4196351    4194304     2G Linux RAID
/dev/sda2   4196352   35653631   31457280    15G Linux RAID
/dev/sda3  35653632   37750783    2097152     1G Linux swap
/dev/sda4  37750784   37816319      65536    32M BIOS boot
/dev/sda5  37816320 1953525134 1915708815 913.5G Linux LVM

3

बूट पार्टीशन को फेट 32 फॉर्मेट किया जाना चाहिए, ताकि वह काम कर सके

mkfs.vfat -F32 /dev/sdXY

इसे आपके लिए ठीक करना चाहिए

साथ ही बूट फ्लैग को अलग किया जाना चाहिए:

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