잘못된 EFI 파일 경로


11

EFI 모드에서 새 랩톱 (Win7 64 비트 사전 설치)에 Ubuntu 12를 방금 설치했으며 더 이상 Win7을로드 할 수 없습니다 (Ubuntu는 grub에서 정상적으로로드됩니다). grub 메뉴에서 Windows 7 항목을 선택하면 다음 오류가 발생합니다.

Invalid EFI file path

boot-repair에 의해 생성 된 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
}

이것은 parted 출력입니다.

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

Windows 용 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_customUbuntu가 GRUB 구성을 업데이트 할 때마다 다시 생성되도록 해당 항목을 추가 하십시오.

다른 옵션은 GRUB 외에 또는 GRUB 대신 다른 부팅 관리자를 사용하는 것입니다. 예를 들어 rEFInd 는 Windows와 GRUB을 모두 자동 감지합니다. 3.3.0 이상의 커널 (Ubuntu 12.10과 함께 제공되지만 Ubuntu 12.04와 함께 제공되지 않음)을 사용하는 경우 GRUB을 완전히 무시하고 rEFInd를 사용하여 Linux를 직접 부팅 할 수 있습니다. gummiboot 는 유사한 부팅 기능을 가진 또 다른 옵션이지만 gummiboot를 사용하여 Linux를 직접 부팅하려는 경우 수동 유지 관리가 더 필요합니다.


해당 메뉴 항목을 사용하여 :( 다시 GRUB의 뒤쪽으로 검은 화면에 GRUB에서 날을 보내고
— 시몬 MARGARITELLI

REFind 함수는 나에게 내가 그것을 메뉴가 됐지 열립니다 GRUB 선택하면하여 Windows 옵션을 제공합니다
— 시몬 MARGARITELLI

1
우분투가 Windows 부트 로더의 이름을 바꾸고 그 자리에 자체 설치 된 것처럼 들립니다! 내 직감은 EFI/Microsoft/Boot/bootmgfw.efi.grbESP 의 파일이 실제 Windows 부팅 로더이므로 bootmgfw.efi다른 것으로 이름 을 바꾼 다음 bootmgfw.efi.grbbootmgfw.efi로 다시 이름을 바꾸면 문제가 해결됩니다. 이러한 파일의 파일 크기 EFI/ubuntu/grubx64.efi를 확인하고이를 확인하거나 diff비교하는 데 사용할 수 있습니다. FWIW, Ubuntu의 개발자는 일부 EFI 구현에서 버그를 해결하기 위해이 작업을 수행했을 수도 있지만, 그렇지 않은 경우에는 다소 잘못된 것입니다!
— Rod Smith

1
set root=(hd0,gpt1)DELL이 EFI 파티션을 유지하는 곳이기 때문에 랩톱에서해야했습니다 .
— 돌연변이 밥

탭 자동 완성 기능은 gpt 레이블 등을 볼 수 있으므로 부팅하는 데 사용할 수 있으므로 생각에 속지 마십시오. 이 insmod part_gpt필요합니다. Windows GRUB 이외의 체인 로딩 수정 프로그램을 사용하고 있고 경로가 정확하다면 이것이 정답입니다.
— SleighBoy

2

마지막으로 포맷을 해결하고 처음부터 모든 것을 다시 설치했습니다 ... 기본적으로 grub이 windows 7 로더를 덮어 썼습니다. 이것이 문제였습니다.


1
우분투는 ESP를 지우는 버그가 있었지만 문제가 해결되었다고 생각했습니다. 어쩌면 어떤 상황에서는 계속 남아있을 것입니다. :-( 팁 : 전체 ESP를 백업하십시오. 이렇게하면 이상한 일이 발생하면 나중에 복원 할 수 있습니다 (EFI는 부트 섹터 코드에 의존하지 않으므로 파일 수준 백업이 제대로 작동합니다.)
— Rod Smith
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.