Đường dẫn tệp EFI không hợp lệ


11

Tôi vừa cài đặt Ubuntu 12 trên máy tính xách tay mới của mình (đã cài đặt sẵn Win7 64 bit) ở chế độ EFI và bây giờ tôi không thể tải Win7 nữa (Ubuntu chỉ tải tốt từ grub). Khi tôi chọn mục Windows 7 trong menu grub, tôi gặp lỗi này:

Invalid EFI file path

Mục grub.cfg (được tạo bởi boot-Repair) là:

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
}

Đây là đầu ra chia tay:

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

Phân vùng EFI khởi động, được gắn kết là

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

có các tệp sau (không bao gồm thư mục grub và các tệp khác trên thư mục gốc):

./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

Làm thế nào tôi có thể sửa lỗi này ?

Cảm ơn

Câu trả lời:


6

Mục nhập GRUB cho Windows của bạn phù hợp với khởi động ở chế độ BIOS, nhưng không phải cho khởi động ở chế độ EFI. Đây là một lỗi GRUB. Bạn có thể thử thay thế mục nhập bằng một cái gì đó như sau:

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

Tôi không đảm bảo rằng nó sẽ hoạt động, nhưng nó có thể. Nếu có, hãy thêm mục /etc/grub.d/40_customđó để nó sẽ được tạo lại bất cứ khi nào Ubuntu cập nhật cấu hình GRUB của nó.

Một tùy chọn khác là sử dụng trình quản lý khởi động khác ngoài hoặc thay vì GRUB. rEFInd, chẳng hạn, sẽ tự động phát hiện cả Windows và GRUB; và nếu bạn đang sử dụng hạt nhân 3.3.0 trở lên (như được vận chuyển với Ubuntu 12.10, nhưng không phải với Ubuntu 12.04), bạn có thể khởi động Linux trực tiếp với rEFInd, bỏ qua GRUB hoàn toàn. gummiboot là một tùy chọn khác có khả năng khởi động tương tự, nhưng nó yêu cầu bảo trì thủ công nhiều hơn nếu bạn muốn khởi động Linux trực tiếp với gummiboot.


Sử dụng mục menu đó, gửi cho tôi từ grub sang màn hình đen và sau đó quay lại grub một lần nữa :(
Simone Margaritelli

refind cho tôi tùy chọn windows bằng cách nếu tôi chọn nó, menu grub được mở Oo
Simone Margaritelli

1
Nghe có vẻ như Ubuntu đã đổi tên bộ tải khởi động Windows và tự cài đặt vào vị trí của nó! Linh cảm của tôi là EFI/Microsoft/Boot/bootmgfw.efi.grbtập tin trên ESP là bộ tải khởi động Windows thực sự, vì vậy đổi tên bootmgfw.efithành một cái khác và sau đó đổi tên bootmgfw.efi.grblại thành bootmgfw.efi sẽ sửa nó. Bạn có thể kiểm tra kích thước tệp của các tệp này và EFI/ubuntu/grubx64.efiđể xác minh điều này hoặc sử dụng diffđể so sánh chúng. FWIW, các nhà phát triển của Ubuntu có thể đã làm điều này để khắc phục các lỗi trong một số triển khai EFI, nhưng nếu nó khá nghịch ngợm với họ, nếu vậy!
Rod Smith

1
Trên máy tính xách tay của tôi, tôi đã phải set root=(hd0,gpt1)bởi vì đó là nơi DELL của tôi giữ phân vùng EFI của nó.
Mutant Bob

Đừng dại dột suy nghĩ vì tab tự động hoàn thành có thể thấy các nhãn gpt, v.v ... rằng nó sẽ sử dụng chúng để khởi động. Điều insmod part_gptcần thiết. Nếu bạn ở đây để sửa lỗi tải chuỗi GRUB không phải Windows và đường dẫn của bạn là chính xác, đó là câu trả lời của bạn.
SleighBoy

2

Cuối cùng tôi đã giải quyết định dạng và cài đặt lại mọi thứ từ đầu ... về cơ bản (không biết tại sao) grub đã ghi đè lên trình tải windows 7, đó là vấn đề.


1
Ubuntu đã từng có một lỗi trong đó nó sẽ xóa sạch ESP, nhưng tôi nghĩ rằng nó đã được sửa. Có lẽ nó còn vương vấn trong một số trường hợp. . :-( Một mẹo: Sao lưu toàn bộ của bạn ESP Bằng cách đó nếu có điều gì kỳ lạ xảy ra, bạn có thể khôi phục lại nó trong tương lai (EFI không dựa trên mã boot sector, do đó, một sao lưu tập tin cấp hoạt động tốt.).
Rod Smith
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.