저는 8,3 2011 MacBook Pro에서 Linux를 실행하고 있습니다. EFI/rEFIt를 사용하여 부팅합니다.
GRUB2 EFI 지원을 설치할 수 있었고 rEFIt 부팅 메뉴에 정상적으로 표시됩니다. 모든 일이 거기서 일어나는 것 같습니다.
내가 한 일은 다음과 같습니다.
apt-get source grub2
sudo apt-get build-dep grub2
cd grub2-1.99
export EFI_ARCH=x86_64
./configure --with-platform=efi --target=${EFI_ARCH} --program-prefix ""
make
이것은 필요한 모든 것을 구축합니다. 이제 컴파일된 이미지를 설치할 차례입니다 grub.efi
.
cd grub-core
../grub-mkimage -O ${EFI_ARCH}-efi -d . -o grub.efi -p "" part_gpt part_msdos ntfs ntfscomp hfsplus fat ext2 normal chain boot configfile linux multiboot
sudo mount -t vfat -o rw /dev/sda1 /mnt
sudo mkdir -p /mnt/EFI/grub
sudo cp grub.efi *.mod *.lst /mnt/EFI/grub
sudo touch /mnt/EFI/grub/grub.cfg
지금까지는 모든 것이 좋아 보입니다. rEFIt로 재부팅하면 rEFIt에서 EFI GRUB 메뉴 항목을 볼 수 있고 시작할 수 있습니다. 아무것도 구성하지 않았기 때문에 아무것도 볼 수 없지만 원할 경우 GRUB 명령을 입력할 수 있습니다.
그런 다음 GRUB 프로필을 다음과 같이 정의해 보았습니다.
menuentry "Linux (BIOS)" {
search --file --no-floppy --set=root /vmlinuz
loadbios /boot/vbios.bin /boot/int10.bin
linux /vmlinuz root=/dev/sda4 video=efifb
initrd /initrd.img
}
menuentry "Linux (BIOS + Fix Video)" {
search --file --no-floppy --set=root /vmlinuz
fix_video
loadbios /boot/vbios.bin /boot/int10.bin
linux /vmlinuz root=/dev/sda4 video=efifb
initrd /initrd.img
}
menuentry "Linux (No BIOS)" {
search --file --no-floppy --set=root /vmlinuz
fakebios
linux /vmlinuz root=/dev/sda4 video=efifb
initrd /initrd.img
}
그런 다음 rEFIt에서 GRUB으로 부팅하면 이러한 메뉴 항목이 확실히 표시됩니다. 문제는 모든 사람이 다음과 같은 메시지를 생성한다는 것입니다.
error: file not found
나는 이것이 EFI 파티션에 존재하지 않기 때문에 찾을 수 없다는 것을 의미한다고 생각합니다 /vmlinuz
./boot/*
/initrd.img
이러한 파일은 어디서 구할 수 있으며 부팅 작업을 위해 EFI 파티션에 어떻게 복사합니까?
또한 로드할 커널을 어떻게 지정합니까? 이 GRUB 로더는 /dev/sda4
EFI 부팅 후 기본 GRUB 메뉴를 로드합니까?