하루의 연구 끝에 이제 내 자신의 질문에 대답 할 수 있습니다. 그렇습니다. 가능하며 해당 파티션을 / boot로 사용하고 커널 / initramfs / etc를 저장할 수도 있습니다. 그곳에.
요구 사항 :
- Grub> = 2.00 (1.98 및 1.99가 작동하지 않음)
- Grub은 EFI 변수를 지원하는 Linux 커널에서 설치해야합니다 (
CONFIG_EFI_VARS
컴파일 또는 모듈로 컴파일 됨 efivars
).
- EFI 부팅 항목을 만들려면 다음이 필요합니다.
efibootmgr
설정:
먼저 EFI 파티션을 / boot에 마운트하십시오.
mount /dev/sdX1 /boot
마운트 항목을 보면 단순히 FAT (32) 파티션이라는 것을 알 수 있습니다. 아래 /boot
에 디렉토리가 efi
있습니다.
grub이 호출 efibootmgr
할 evivars
때 커널에 컴파일되지 않은 경우 load를 실행해야 합니다.
modprobe efivars
이제 grub을 설치할 수 있습니다 :
# Replace x86_64 by i386 for 32 bit installations
grub2-install --target=x86_64-efi
Grub은 평소와 같이 파일을 설치합니다 /boot/grub2
. 모든 것이 제대로 작동하면 이제 폴더를해야 /boot/efi/grub2
하거나 /boot/efi/your_distros_name
. 으로 --bootloader-id=isert_name_here
당신 또한 폴더에 자신의 이름을 지정할 수 있습니다.
Grub은 efibootmgr
자동으로 호출 하고 EFI 부팅 메뉴에서 해당 이름으로 부팅 항목을 만듭니다 (제 경우에는 EFI 메뉴에서 부팅 가능한 장치로 표시됩니다. 모든 EFI 보드에 해당되는지 확실하지 않습니다).
추가 설정은 일반적인 grub2 설정과 다르지 않으며 grub2-mkconfig
EFI에 적합한 모듈을에 추가합니다 grub.cfg
.
체인 로딩 윈도우 :
Windows에서 이중 부팅을 요청하면서 체인로드를위한 grub 구성을 포함시킬 것입니다.
EFI에서 Windows 설치를 체인로드하는 것은 MBR 디스크의 것과는 약간 다릅니다. 당신은 필요하지 않습니다 ntfs
또는 part_mbr
모듈을 대신 fat
하고 part_gpt
필요하다.
또한 루트를 설정할 필요가 없으며이 정보는 Windows의 자체 부팅 관리자에 의해 저장됩니다. 대신 search
명령을 지정하십시오 . 필요한 매개 변수는 다음과 같이 결정할 수 있습니다.
grub-probe --target=hints_string /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
그러면 EFI 파티션의 위치를 지정하는 검색 매개 변수가 제공됩니다.
--hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1 1ce5-7f28
chainloader
읽을 섹터 수 를 알려주 는 대신 EFI 파티션에서 Windows의 EFI 로더 경로를 설정해야합니다. 이것은 모든 Windows EFI 설치에서 동일합니다. 결과 항목은 다음과 같아야합니다.
menuentry "Microsoft Windows x86_64 UEFI-GPT" {
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
search --fs-uuid --no-floppy --set=root <insert ouput from grub-probe here>
chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
출처 : 이것들은 더 많은 경우를 다루며, EFI로 부팅하려면 읽을 가치가 있습니다.
mount /dev/sdXX /boot/efi
넣은 다음 이것을 따라bcdedit /set {bootmgr} path \EFI\fedora\shim.efi
Windows에서 EFI 부트 스트랩으로 실행 했습니다.