Windows 7 파티션을 부팅하기 위해 Grub을 가져올 수 없습니다. "오류: 잘못된 EFI 파일 경로"

Windows 7 파티션을 부팅하기 위해 Grub을 가져올 수 없습니다. "오류: 잘못된 EFI 파일 경로"

저는 "HP pavilion 7008tx dv7" 노트북을 가지고 있습니다. Windows 7과 함께 번들로 제공되며 1TB HHD 2개와 32G SSD가 포함되어 있습니다.

이것은 "sudo parted -l"의 출력입니다:

Model: ATA TOSHIBA MQ01ABD1 (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: msdos


Number  Start   End     Size    Type     File system  Flags
 1      1049kB  210MB   209MB   primary  ntfs         boot
 2      210MB   977GB   977GB   primary  ntfs
 3      977GB   1000GB  23.1GB  primary  ntfs
 4      1000GB  1000GB  113MB   primary  fat32        lba


Error: /dev/sdb: unrecognised disk label                                  

Model: ATA TOSHIBA MQ01ABD1 (scsi)
Disk /dev/sdc: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt


Number  Start   End     Size    File system     Name  Flags
 1      1049kB  538MB   537MB   fat32                 boot
 2      538MB   992GB   991GB   ext4
 3      992GB   1000GB  8474MB  linux-swap(v1)

그리고sudo blkid

/dev/sda1: LABEL="SYSTEM" UUID="A0A08877A08855A6" TYPE="ntfs" 
/dev/sda2: LABEL="OS" UUID="1A041783041760D5" TYPE="ntfs" 
/dev/sda3: LABEL="Recovery" UUID="6E301CC5301C95E5" TYPE="ntfs" 
/dev/sda4: LABEL="HP_TOOLS" UUID="04AD-78C7" TYPE="vfat" 
/dev/sdb: TYPE="isw_raid_member" 
/dev/sdc1: UUID="A857-0A03" TYPE="vfat" 
/dev/sdc2: UUID="869d2800-385c-4a90-9ecb-dfca61632257" TYPE="ext4" 
/dev/sdc3: UUID="67cd5e66-fad6-4b70-b295-5536283ab10f" TYPE="swap" 

모든 기본 옵션을 사용하여 Ubuntu를 설치하고 위와 같이 /dev/sdc에 설치했습니다. 흥미롭게도 Ubuntu를 설치했을 때 Window 7이 발견되었다는 메시지가 표시되지 않았습니다. Grub 화면을 표시하고 아래와 같이 일부 항목을 추가하려면 Grub을 수동으로 편집해야 했습니다./etc/grub.d/40_custom

menuentry "Windows 7 (loader) (on /dev/sda1)" {
insmod part_msdos
insmod ntfs
set root='(hd0,msdos1)'
chainloader +1
}

그러나 grub 항목에서 선택하면 error: invalid EFI file path.

/dev/sda1"SYSTEM"이라고 하며 Bootbootmgr이라는 폴더와 파일이 있습니다. /dev/sda2이를 "운영 체제"라고 하며 Window 7을 포함합니다. /dev/sda3HP 복구 파티션입니다. /dev/sda4"HP_TOOLS"라고 합니다.

grub에서 windows7 항목을 작동시키는 방법이나 적어도 다른 방법으로 Windows 7을 부팅하는 방법을 아는 사람이 있습니까?

고쳐 쓰다

실제로 ESC를 누른 다음 F9를 눌러 Windows로 부팅할 수 있었고, 시스템에 부팅 장치 메뉴가 로드되었습니다. 목록에는 두 가지 Ubuntu 옵션이 있었고 "노트북 하드 드라이브"와 같은 또 다른 옵션이 있었습니다. 후자 옵션을 선택하면 창이 열립니다. 이것은 다소 성가신 과정이므로 가능하다면 여전히 grub 옵션을 사용하는 것을 선호합니다.

답변1

문제는 grub2가 말하자면 본질적으로 "EFI 응용 프로그램"이라는 것입니다.

Grub2 기반 BIOS 파티셔닝에는 파일 이름 대신 섹터 매핑 구문을 chainloader이해하는 명령이 있습니다. +1BIOS 위에서 실행될 수 있는 기계어라고 가정하고 이러한 섹터를 로드하고 실행합니다.

UEFI-GPT 파티션 기반 grub2에는 스타일 구문을 chainloader이해하지 못하는 명령이 있습니다. +1그것은 EFI경로를 해석하고 있으며 그것이 오류 메시지가 나오는 곳이라고 생각합니다.

수행하려는 작업이 불가능할 수 있습니다. 즉, UEFI 부트로더 내에서 BIOS 세계로 다시 연결하는 것입니다.

BIOS가 디스크의 레거시 파티션 테이블을 감지하고 그에 따라 특성을 조정하므로 BIOS에서 직접 Windows 파티션을 부팅할 수 있습니다.

따라서 Michael Shigorin의 답변에서 알 수 있듯이 rEFInd 부팅 관리자는 귀하가 찾고 있는 더 나은 듀얼 부팅 경험을 제공할 수 있습니다.http://www.rodsbooks.com/refind/

답변2

당신은 찾을 수 있습니다Rod의 EFI 관련 서적유용합니다. 설치 중입니다.다시 찾기그가 쓴 내용이 도움이 될 수 있습니다(포함시켰습니다)ALT 리눅스 구조또한 이 이미지에서 "피라미드" 스캔 옵션을 사용해 보고 도움이 되는지 확인하세요.

efibootmgr이제 유틸리티를 통해 부팅 목록을 사용할 수 있는 펌웨어의 부팅 관리자를 사용하고 있습니다 . refind: 펌웨어를 설치하면 하나 이상의 레코드를 얻게 되며(아마도 이를 기본값으로 설정하려고 할 것입니다.) 부팅하고 grub 또는 Windows 부팅 관리자를 부팅하며 커널을 부팅합니다(아이러니한 이유는 적어도 Linux 커널은 펌웨어의 부팅 관리자에 의해 직접 부팅될 수 있습니다. 하하).

답변3

Windows용 GRUB 항목은 BIOS 모드 부팅에는 적합하지만 EFI 모드 부팅에는 적합하지 않습니다. GRUB 오류입니다. 항목을 다음으로 바꿔볼 수 있습니다.

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

}

이것이 작동할 것이라는 보장은 없지만 그럴 수도 있습니다. 그렇다면 해당 항목을 /etc/grub.d/40_custom에 추가하여 Ubuntu가 GRUB 구성을 업데이트할 때마다 다시 생성되도록 하십시오.

답변4

먼저 리눅스 복구 모드로 들어갑니다 ls. 광산에는 다음이 표시됩니다: (hd1,gpt1) (hd1,gpt...) 여기서 gptX는 하드 디스크의 각 파티션이며 msdos1, msdos2...로 표시될 수도 있습니다.

그런 다음 이 항목을 /boot/grub/grub.cfg에 넣습니다.

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

gpt1을 EFI 파티션으로 교체

관련 정보