현재 내 컴퓨터에는 Windows 7과 Ubuntu 11.04(Natty)가 설치되어 있습니다. 또한 FreeBSD liveUSB(또는 설치 프로그램, 확실하지 않음. dd
.img를 USB 스틱으로 편집함)를 만들고 부트로더를 설치하지 않고 설치했습니다(GRUB 2를 엉망으로 만들고 싶지 않았고 GRUB 2가 있어야 한다고 생각하기 때문입니다). 대부분의 일을 시작할 수 있습니다). FreeBSD에는 자체 파티션이 있고 내부에는 설치 프로그램에 의해 자동으로 할당되는 FreeBSD 파티션이 있습니다(슬라이스라고 할까요?). 실행해 보았는데 update-grub
알 수 없는 Linux라고 나오며 이에 대한 항목을 추가하지 않습니다.
따라서 두 가지 질문이 있습니다.
- Ubuntu 도구나 내가 가지고 있는 USB 설치 스틱 사용에 대해 Grub에게 알리고 싶은 파티션을 어떻게 찾나요?
- 파티션을 찾으면 그 안에 무엇을 넣어야 합니까
/etc/grub.d/40_custom
?
답변1
세 가지 옵션이 있습니다. Grub이 FreeBSD를 알 수 없는 운영 체제로 처리하고 FreeBSD의 1단계 부트로더를 체인로드하도록 하거나, Grub이 FreeBSD의 2단계 부트로더를 로드하도록 하거나, Grub이 FreeBSD의 2단계 부트로더를 로드하도록 할 수 있습니다.
체인 로딩
이것은 가장 간단하고 신뢰할 수 있는 방법입니다. 필요한 것은 자체 슬라이스에 FreeBSD 부트로더를 설치하는 것뿐입니다(*BSD의 슬라이스는 Linux와 Windows에서 파티션이라고 부르는 것입니다). 그런 다음 /etc/grub.d/30_os-prober
Grub은 실행 시 자동으로 (경유로) 이를 찾아야 합니다 update-grub
. 의 항목은 /boot/grub/grub.cfg
다음과 같습니다(FreeBSD가 /dev/sda2
aka 에 있는 경우 /dev/wd0s2
).
menuentry "FreeBSD" {
set root=(hd0,2)
chainloader +1
}
FreeBSD 부트로더 또는 커널 로드
GRUB2현재 지원됨모든 주요 BSD 커널(컴퓨터가 BIOS에서 부팅된다고 가정) 설치 스크립트(적어도 Ubuntu 10.04와 함께 제공되는 스크립트, 11.04는 확인하지 않음)가 없으므로 이 경로를 선택하면 /etc/grub.d/40_Custom
.
아래는 샘플 항목입니다.FreeBSD 포럼의 David Marec이 작성함. 아직 테스트하지는 않았지만 합리적으로 보입니다. 가장 좋은 방법은 FreeBSD 2단계 부트로더를 로드하는 것 같습니다. FreeBSD 설치 위치를 디스크 번호, 슬라이스 번호 및 파티션으로 지정할 수 있습니다 a
.
menuentry "FreeBSD (/boot/loader)" {
insmod ufs2
set root=(hd0,1,a)
kfreebsd /boot/loader
}
또는 통해찾다특정 UUID, 파일 또는 레이블이 있는 파일 시스템:
menuentry "FreeBSD (/boot/loader)" {
insmod ufs2
search --no-floppy --file /boot/loader
kfreebsd /boot/loader
}
답변2
특정 UUID, 파일 또는 레이블을 사용하여 파일 시스템을 검색합니다.
menuentry "FreeBSD (/boot/loader)" {
insmod ufs2
search --no-floppy --file --set=root /boot/loader
kfreebsd /boot/loader
}
또는:
menuentry "FreeBSD (/boot/loader)" {
insmod ufs2
search --no-floppy --file /boot/loader --set=root /boot/loader
kfreebsd /boot/loader
}
답변3
달리기를 고려해 본 적이 있나요 update-grub
? 그러면 GRUB 시스템과 해당 프로젝트 목록이 자동으로 업데이트됩니다.