เส้นทางไฟล์ EFI ไม่ถูกต้อง


11

ฉันเพิ่งติดตั้ง Ubuntu 12 บนแล็ปท็อปเครื่องใหม่ของฉัน (ด้วยการติดตั้ง Win7 64 บิตล่วงหน้า) ในโหมด EFI และตอนนี้ฉันไม่สามารถโหลด Win7 ได้อีกต่อไป (Ubuntu เพิ่งโหลดได้ดีจากด้วง) เมื่อฉันเลือกรายการ Windows 7 ในเมนูด้วงฉันได้รับข้อผิดพลาดนี้:

Invalid EFI file path

รายการ grub.cfg (สร้างโดย boot-repair) คือ:

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) ) 

มีไฟล์ต่อไปนี้ (ไม่รวมโฟลเดอร์ grub และไฟล์อื่น ๆ ในรูทบูต):

./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 ของคุณสำหรับ Windows เหมาะสำหรับการบูตในโหมด BIOS แต่ไม่เหมาะสำหรับการบู๊ตโหมด EFI นี่คือข้อบกพร่องด้วง คุณสามารถลองแทนที่รายการด้วยสิ่งต่อไปนี้:

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จะตรวจจับทั้ง Windows และ GRUB โดยอัตโนมัติ และถ้าคุณใช้เมล็ดขนาด 3.3.0 หรือใหม่กว่า (จัดส่งมาพร้อมกับ Ubuntu 12.10 แต่ไม่ใช่กับ Ubuntu 12.04) คุณสามารถบูต Linux โดยตรงด้วย rEFInd โดยผ่าน GRUB ทั้งหมด gummibootเป็นอีกตัวเลือกหนึ่งที่มีความสามารถในการบูตคล้ายกัน แต่ต้องมีการบำรุงรักษาด้วยตนเองถ้าคุณต้องการบูต Linux โดยตรงด้วย gummiboot


ใช้รายการเมนูนั้นส่งฉันจากด้วงไปยังหน้าจอสีดำแล้วกลับไปด้วงอีกครั้ง :(
Simone Margaritelli

refind ให้ตัวเลือก windows กับฉันถ้าฉันเลือกเมนูด้วงเปิด Oo
Simone Margaritelli

1
เสียงเหมือนอูบันตูเปลี่ยนชื่อบูตเดอร์ Windows และติดตั้งแทน! ลางสังหรณ์ของฉันคือEFI/Microsoft/Boot/bootmgfw.efi.grbไฟล์บน ESP เป็นตัวบูตการบูตจริงของ Windows ดังนั้นการเปลี่ยนชื่อbootmgfw.efiเป็นอย่างอื่นแล้วเปลี่ยนชื่อbootmgfw.efi.grbกลับเป็น bootmgfw.efi จะแก้ไขได้ คุณสามารถตรวจสอบขนาดไฟล์ของไฟล์เหล่านี้และEFI/ubuntu/grubx64.efiเพื่อตรวจสอบความถูกต้องนี้หรือใช้diffเพื่อเปรียบเทียบ FWIW นักพัฒนาของ Ubuntu อาจทำเช่นนี้เพื่อแก้ไขข้อผิดพลาดในการใช้งาน EFI บางอย่าง แต่ก็ค่อนข้างซุกซนถ้าเป็นเช่นนั้น!
Rod Smith เมื่อ

1
ในแล็ปท็อปของฉันฉันต้องset root=(hd0,gpt1)เพราะนั่นคือสิ่งที่ DELL ของฉันเก็บพาร์ติชัน EFI ไว้
บ๊อบกลายพันธุ์

อย่าหลงคิดเพราะการเติมข้อความอัตโนมัติของแท็บสามารถเห็นป้ายกำกับ gpt และอื่น ๆ ได้เพื่อใช้ในการบูต insmod part_gptเป็นสิ่งจำเป็น หากคุณอยู่ที่นี่สำหรับการแก้ไข chainloading ที่ไม่ใช่ Windows GRUB และเส้นทางของคุณถูกต้องนั่นคือคำตอบของคุณ
SleighBoy

2

ในที่สุดฉันได้แก้ไขการจัดรูปแบบและติดตั้งใหม่ทุกอย่างตั้งแต่เริ่มต้น ... โดยทั่วไป (ไม่รู้ว่าทำไม) ด้วงได้เขียนทับตัวโหลด windows 7 นั่นเป็นปัญหา


1
Ubuntu เคยมีข้อผิดพลาดที่มันจะเช็ด ESP แต่ฉันคิดว่ามันได้รับการแก้ไขแล้ว บางทีมันยังคงอยู่ภายใต้สถานการณ์บางอย่าง :-( เคล็ดลับ: สำรอง ESP ทั้งหมดของคุณด้วยวิธีนี้หากมีสิ่งแปลก ๆ เกิดขึ้นคุณสามารถกู้คืนได้ในอนาคต (EFI ไม่พึ่งพารหัสภาคการบูตดังนั้นการสำรองข้อมูลระดับไฟล์จึงใช้งานได้)
Rod สมิ ธ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.