[unix] GRUB2 부팅 메뉴에 FreeBSD 추가

내 MBR 드라이브에 Grub2와 함께 Gentoo x64를 설치했습니다. 오늘 저는 FreeBSD x64 9.2를 설치했습니다. 이제 젠투에서 grub2메뉴 목록 에 FreeBSD를 추가하려고 합니다.

grub2-install /dev/sda
os-prober
grub2-mkconfig -o /boot/grub2/grub.cfg

젠투에서 위의 작업을 수행했지만 FreeBSD를 찾지 못했습니다. FreeBSD 중첩 파티션이 있고 파티션을 sda1포함 freebsd-ufs하고 freebsd-swap있습니다.

FreeBSD를 grub2어떻게 추가 할 수 있습니까?



답변

여기 내 것이있다 :

menuentry "FreeBSD" --class freebsd --class bsd --class os {
 insmod ufs2
 insmod bsd
 set root=(hd0,1)
 kfreebsd /boot/kernel/kernel
 kfreebsd_loadenv /boot/device.hints
 set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ada0s1a
 set kFreeBSD.vfs.root.mountfrom.options=rw
 set kFreeBSD.hw.psm.synaptics_support=1
}


답변

저의 목표는 다음과 같습니다. /etc/grub.d에서 40_custom을 편집하여 Grub2에서 FreeBSD 10을 부팅하십시오

내 설정 : FreeBSD10은 내 시스템의 다섯 번째 hdd (Linux에서는 / dev / sde, 따라서 Grub2의 경우 hd4입니다. Grub2의 경우 hd는 드라이브의 경우 hd0에서 시작하고 파티션은 0이 아닌 1에서 시작 함을 기억하십시오. 루트 파티션은 FreeBSD의 Guided partitioning (전체 디스크 사용)을 설치하는 동안 (가장 간단한) 두 번째 파티션 (/ dev / sde2)입니다. 즉, 다섯 번째 hdd와 두 번째 파티션에 대해 root = ‘(hd4,2)’를 설정하십시오.

info : (chainloader +1은 실제로 필요하지 않습니다. 다음은 FreeBSDs Bootloader로 직접 연결됩니다).

조금만 요약하면 set root = (x, x)를 적용하면 더 이상 필요하지 않습니다. 커널을 직접 부팅하려면 아래 항목보다 약간 복잡합니다.

menuentry "FreeBSD 10.0" {
    insmod part_gpt
    set root='(hd4,2)'
    kfreebsd /boot/loader
}

나는 ‘/ dev / sde2의 알 수없는 리눅스 배포판’을 찾은 os-prober에 약간 실망했습니다.

추신 : 나중에 ‘update-grub’과 Taddaa를 잊지 마십시오. 🙂 누군가가 성공하면, 메시지를 던져, 나는 당신의 의견을 드리겠습니다!


답변

이 순서대로 수행하십시오.

  1. uzsolt의 지시문을 편집 /etc/grub.d/40_custom하고 추가 하십시오 . 파일 끝에 지시문을 추가 하십시오. 안에있는 것을 삭제하지 마십시오 .

  2. 40_custom실행 가능한지 확인하십시오 . 그렇지 않다면 chmod u+x 40_custom.

  3. 이제 변경 사항을에 기록하십시오 grub.cfg.

    grub2-install /dev/sda
    os-prober
    grub2-mkconfig -o /boot/grub/grub.cfg
    
  4. 타다! 지금 재시작 해; GRUB 메뉴의 OS 목록에 FreeBSD가 있어야합니다.

UFS 파티션 슬라이스에 액세스하려면 다음을 수행해야합니다.

  1. 커널 구성을 편집하여 UFS filesystem및 을 추가하십시오 UFS label.

  2. 그런 make && make_modules다음 커널.

  3. UFS 파일 시스템 소프트웨어를 설치하십시오 .

  4. Linux에서 UFS 슬라이스를 마운트하십시오.

    sudo mkdir /mnt/freebsd && sudo mount -r -t ufs -o ufstype=ufs2 /dev/sda1 /mnt/freebsd
    

답변

이 사이트 에 따르면 :

  1. 리눅스 부팅.
  2. /boot/grub2/custom.cfg파일을 작성 하십시오.
  3. 작성된 파일에 다음 행을 추가하십시오.

    menuentry "FreeBSD" {
    set root='(hd0,3)'
    kfreebsd /boot/loader
    }
    

    여기서 hd0,3이것은 첫 번째 하드 드라이브이고 FreeBSD가 세 번째 파티션에 있음을 의미합니다 (디스크 번호는 0부터 시작하고 파티션 번호는 1부터 시작하므로). 아마 당신은 그 숫자를 조정해야 할 것입니다. 디스크가 무엇인지 알아내는 한 가지 방법은 실행하는 것 fdisk -l입니다.

  4. 를 실행하십시오 grub2-mkconfig -o /boot/grub2/grub.cfg.

명령이 약간 다를 수 있습니다. grub2-mkconfig수도 grub-mkconfig와에 있도록 (이 BunsenLabs 리눅스에 내 사건이었다).


이 시스템에서 ZFS 대신 UFS와 함께 FreeBSD를 사용하고 있다는 점에 유의하십시오. 제시된 솔루션은 내가 들었던 ZFS 기반 설치에서는 작동하지 않습니다.


답변

아치 리눅스 위키 같은 아주 좋은 설명이있다. 일반적인 방법, 즉 직접 OS 로딩과 체인 로딩을 안내합니다.

그러나 sudo grub-mkconfig -o /boot/grub/grub.cfg변경 사항을 커밋 하려면 반드시 발행해야합니다 .


답변