क्या GRUB2 EFI सिस्टम विभाजन को विंडोज के साथ साझा कर सकता है?


30

मेरे पास एक मौजूदा विंडोज 7 जीपीटी इंस्टॉलेशन है, जिसमें पहले से ही एक ईएफआई सिस्टम विभाजन है।

मैं अब एक अलग हार्डडिस्क पर लिनक्स स्थापित करने की कोशिश कर रहा हूं, जिसे GPT भी स्वरूपित किया गया है। मुझे EFI सिस्टम विभाजन के बिना ग्रब बूटिंग प्राप्त करने का कोई कार्य तरीका नहीं मिला, इसलिए मेरा प्रश्न है:

क्या ग्रब 2 के लिए विंडोज़ के समान ईएफआई सिस्टम विभाजन का उपयोग करना संभव है? मैं इसे उपयोग करने के लिए grub2 कैसे बताऊं?

मेरा सेटअप स्पष्ट करने के लिए:

gpt /dev/sda:
    1 EFI System partition created by windows (100MB)
    2 "Microsoft reserved partition" (200MB)
    3 Windows root (rest of disk)

gpt /dev/sdb:
    # After answering my own question: this partition is not needed
    1 boot partition containing grub, kernels etc.(32MB)
    2 crypto LVM partition (rest of disk)

मैं मौजूदा /dev/sda1EFI विभाजन का उपयोग करने के लिए grub2 चाहता हूं ।

PS: मेरा मेनबोर्ड EFI सक्षम है।

जवाबों:


22

एक दिन के शोध के बाद, अब मैं अपने स्वयं के प्रश्न का उत्तर दे सकता हूं: हां यह संभव है, और आप उस विभाजन का उपयोग / बूट के रूप में भी कर सकते हैं और अपनी गुठली / इनिट्रामाफ़्स / आदि को स्टोर कर सकते हैं। क्या आप वहां मौजूद हैं।

आवश्यकताएँ:

  • ग्रब> = 2.00 (1.98 और 1.99 काम नहीं करते)
  • ग्रब को लिनक्स कर्नेल से स्थापित किया जाना चाहिए, जिसमें EFI चर ( CONFIG_EFI_VARSमॉड्यूल में या इसके रूप में संकलित efivars) के लिए समर्थन है
  • EFI बूट प्रविष्टि बनाने के लिए आपको आवश्यकता होगी efibootmgr

सेट अप:

सबसे पहले अपने EFI पार्टीशन को / boot पर माउंट करें

mount /dev/sdX1 /boot

यदि आप माउंट प्रविष्टि को देखते हैं, तो आप देखेंगे, कि यह केवल FAT (32) विभाजन है। इसके तहत /bootआपको एक निर्देशिका मिलनी चाहिए efi

जैसे ही ग्रब कॉल करेगा efibootmgr, आपको लोड करना चाहिए evivars, अगर यह कर्नेल में संकलित नहीं है:

modprobe efivars

अब आप ग्रब स्थापित कर सकते हैं:

# Replace x86_64 by i386 for 32 bit installations
grub2-install --target=x86_64-efi

ग्रब हमेशा की तरह अपनी फ़ाइलों को स्थापित करता है /boot/grub2। यदि सब कुछ सही ढंग से काम करता है, तो आपके पास अब एक फ़ोल्डर /boot/efi/grub2या भी होना चाहिए /boot/efi/your_distros_name। साथ --bootloader-id=isert_name_hereआप भी फ़ोल्डर खुद के लिए नाम निर्दिष्ट कर सकते हैं।

ग्रब efibootmgrस्वचालित रूप से कॉल करता है और EFI बूट मेनू में उस नाम के साथ एक बूट प्रविष्टि बनाता है (मेरे मामले में, इसका मतलब है कि यह EFI मेनू में एक बूट करने योग्य उपकरण के रूप में दिखाई देता है, यह सुनिश्चित नहीं है कि यह हर EFI बोर्ड पर है)

आगे का सेटअप सामान्य ग्रब 2 सेटअप से भिन्न नहीं है, grub2-mkconfigआपके लिए ईएफआई के लिए उपयुक्त मॉड्यूल जोड़ देगा grub.cfg

विंडोज लोड हो रहा है:

जैसा कि मैंने विंडोज के साथ एक दोहरी बूट के लिए कहा है, मैं इसे चेनलोड करने के लिए ग्रब कॉन्फ़िगरेशन शामिल करूंगा:

EFI पर एक विंडोज इंस्टालेशन को लोड करना MBR डिस्क पर एक से थोड़ा अलग है। आपको इसके बजाय ntfsया part_mbrमॉड्यूल की आवश्यकता नहीं होगी fatऔर इसकी part_gptआवश्यकता है।

साथ ही, सेटिंग रूट की आवश्यकता नहीं है, यह जानकारी विंडोज के अपने बूट मैनेजर द्वारा संग्रहीत की जाती है। इसके बजाय searchआदेश निर्दिष्ट करें । इसके लिए आवश्यक पैरामीटर द्वारा निर्धारित किया जा सकता है

grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi

यह आपको EFI विभाजन के स्थान को खोजने के लिए मापदंडों को देगा, यह कुछ इस तरह दिखना चाहिए:

--hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 1ce5-7f28

chainloaderपढ़ने के लिए क्षेत्रों की संख्या बताने के बजाय , आपको ईएफआई विभाजन में विंडोज के ईएफआई लोडर के लिए पथ निर्धारित करना होगा। यह सभी विंडोज ईएफआई प्रतिष्ठानों के लिए समान है। परिणामी प्रविष्टि इस तरह दिखनी चाहिए:

menuentry "Microsoft Windows x86_64 UEFI-GPT" {
    insmod part_gpt
    insmod fat
    insmod search_fs_uuid
    insmod chain
    search --fs-uuid --no-floppy --set=root <insert ouput from grub-probe here>
    chainloader /efi/Microsoft/Boot/bootmgfw.efi
}

स्रोत: ये कुछ और मामलों को कवर करते हैं, यदि आप EFI से बूट करना चाहते हैं, तो वे पढ़ने योग्य हैं:


मुझे (Fedora24) के लिए मैं खिड़कियों डाल 10 EFI विभाजन पर mount /dev/sdXX /boot/efiहै, तो इसके बाद इस और भाग bcdedit /set {bootmgr} path \EFI\fedora\shim.efiबूटस्ट्रैप EFI के लिए खिड़कियों से।
jozxyqk
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.