अमान्य EFI फ़ाइल पथ


11

मैंने अभी अपने नए लैपटॉप पर Ubuntu 12 को स्थापित किया है (Win7 64bit प्री इंस्टाल के साथ) EFI मोड में और अब मैं Win7 लोड नहीं कर सकता (उबंटू सिर्फ ग्रब से ठीक लोड करता है)। जब मैं ग्रब मेनू में विंडोज 7 प्रविष्टि का चयन करता हूं, तो मुझे यह त्रुटि मिलती है:

Invalid EFI file path

Grub.cfg प्रविष्टि (बूट-मरम्मत द्वारा उत्पन्न) है:

menuentry "Windows 7 (loader) (on /dev/sda3)" --class windows --class os {
    insmod part_gpt
    insmod ntfs
    set root='(hd0,gpt3)'
    search --no-floppy --fs-uuid --set=root B8449665449625E2
    chainloader +1
}

यह बिदाई आउटपुट है:

GNU Parted 2.3
Viene usato /dev/sda
Benvenuti in GNU Parted. Digitare "help" per l'elenco dei comandi.
(parted) print list
Modello: ATA ST9500325AS (scsi)
Disco /dev/sda: 500GB
Dimensione del settore (logica/fisica): 512B/512B
Tabella delle partizioni: gpt

Numero  Inizio  Fine   Dimensione  File system  Nome                  Flag
 5      1049kB  106MB  105MB       fat32                              avvio
 3      345MB   200GB  200GB       ntfs         Basic data partition
 1      200GB   200GB  1049kB                                         bios_grub
 2      200GB   496GB  296GB       ext4
 4      496GB   500GB  4172MB

बूट EFI विभाजन, के रूप में घुड़सवार

/dev/sda5 on /boot/efi type vfat (rw) ) 

निम्नलिखित फाइलें हैं (बूट रूट पर ग्रब फ़ोल्डर और अन्य फ़ाइलों को छोड़कर):

./efi
./efi/efi
./efi/efi/boot
./efi/efi/boot/bootx64.efi
./efi/efi/ubuntu
./efi/efi/ubuntu/grubx64.efi
./efi/efi/Microsoft
./efi/efi/Microsoft/Boot
./efi/efi/Microsoft/Boot/bootmgfw.efi.grb
./efi/efi/Microsoft/Boot/bootmgfw.efi
./efi/efi/Microsoft/Boot/bootx64.efi.grb
./efi/efi/Microsoft/Boot/bootx64.efi

मैं इसे कैसे ठीक करूं ?

धन्यवाद

जवाबों:


6

विंडोज के लिए आपका GRUB प्रवेश BIOS-मोड बूट के लिए उपयुक्त है, लेकिन EFI- मोड बूट के लिए नहीं। यह एक GRUB बग है। आप निम्न के साथ प्रविष्टि को बदलने की कोशिश कर सकते हैं:

menuentry "Windows 7" {
    insmod part_gpt
    insmod chain
    set root='(hd0,gpt5)'
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}

मैं कोई गारंटी नहीं देता कि यह काम करेगा, लेकिन यह हो सकता है। यदि ऐसा होता है, /etc/grub.d/40_customतो उस प्रविष्टि को इसमें जोड़ें ताकि जब भी Ubuntu अपने GRUB कॉन्फ़िगरेशन को अपडेट करे तो इसे फिर से बनाया जा सके।

एक अन्य विकल्प GRUB के अलावा या इसके विपरीत एक अलग बूट प्रबंधक का उपयोग करना है। उदाहरण के लिए, REFInd, विंडोज और GRUB दोनों को ऑटो-डिटेक्ट करेगा; और यदि आप 3.3.0 या बाद के कर्नेल का उपयोग कर रहे हैं (जैसा कि Ubuntu 12.10 के साथ भेज दिया गया है, लेकिन उबंटू 12.04 के साथ नहीं), तो आप GREF को पूरी तरह से दरकिनार करके सीधे rEFInd के साथ लिनक्स को बूट कर सकते हैं। gummiboot समान बूट क्षमताओं के साथ एक और विकल्प है, लेकिन अगर आपको सीधे gummiboot के साथ Linux बूट करना हो तो इसे और अधिक मैन्युअल रखरखाव की आवश्यकता होती है।


उस मेनू प्रविष्टि का उपयोग करते हुए, मुझे ग्रब से एक ब्लैक स्क्रीन पर भेजता है और फिर वापस ग्रब करने के लिए वापस भेज देता है :(
सिमोन मार्गारिटेली

यदि मैं इसे चुनता हूँ तो मुझे विंडो विकल्प का पुनर्भरण देता है। यह मेनू मेनू खोला जाता है Oo
सिमोन मार्गारिटेली

1
ऐसा लगता है कि उबंटू ने विंडोज बूट लोडर का नाम बदलकर खुद को उसकी जगह स्थापित कर लिया है! मेरा कूबड़ EFI/Microsoft/Boot/bootmgfw.efi.grbईएसपी पर फ़ाइल असली विंडोज बूट लोडर है, इसलिए bootmgfw.efiकिसी और चीज़ का नाम बदलकर bootmgfw.efi.grbफिर से बूटएमएमएफडब्ल्यू.फी पर फिर से नाम डालकर इसे ठीक कर देगा। आप इन फ़ाइलों के फ़ाइल आकार की जाँच कर सकते हैं और EFI/ubuntu/grubx64.efiइसे सत्यापित करने के लिए या diffउनकी तुलना करने के लिए उपयोग कर सकते हैं। एफडब्ल्यूआईडब्ल्यू, उबंटू के डेवलपर्स ने कुछ ईएफआई कार्यान्वयन में बग के आसपास काम करने के लिए ऐसा किया हो सकता है, लेकिन यह उनके लिए शरारती है, यदि ऐसा है!
रॉड स्मिथ

1
अपने लैपटॉप पर मुझे set root=(hd0,gpt1)ऐसा इसलिए करना पड़ा क्योंकि मेरा DELL अपना EFI पार्टीशन रखता है।
म्यूटेंट बॉब

यह सोचकर मूर्ख मत बनो क्योंकि टैब स्वतः पूर्ण gpt लेबल, आदि को देख सकता है कि यह उन्हें बूट करने के लिए उपयोग करेगा। की insmod part_gptजरूरत है। यदि आप एक गैर-विंडोज GRUB चेनलोडिंग फिक्स के लिए यहां हैं और आपका रास्ता सही है, तो यह आपका उत्तर है।
स्लीवबॉय

2

अंत में मैंने स्वरूपण को हल किया है और खरोंच से सब कुछ पुनः स्थापित किया है ... मूल रूप से (न जाने क्यों) ग्रब ने विंडोज 7 लोडर को अधिलेखित कर दिया था, यही समस्या थी।


1
उबंटू में एक बग होता था जहां यह ईएसपी मिटा देगा, लेकिन मुझे लगा कि यह तय हो गया है। शायद यह कुछ परिस्थितियों में सुस्त है। :-( एक टिप: अपने पूरे ईएसपी का बैकअप लें। इस तरह अगर कुछ अजीब होता है, तो आप इसे भविष्य में पुनर्स्थापित कर सकते हैं (ईएफआई बूट सेक्टर कोड पर भरोसा नहीं करता है, इसलिए एक फ़ाइल-स्तरीय बैकअप ठीक काम करता है।)
रॉड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.