잘못된 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.