UEFI를 사용하여 PXE를 통해 mfsBSD 부팅

UEFI를 사용하여 PXE를 통해 mfsBSD 부팅

UEFI 부팅이 활성화된 호스트에서 PXE를 통해 mfsBSD ISO를 부팅하려고 합니다.

BIOS 부팅은 매우 간단한 작업입니다. 이 작업을 위한 ipxe 구성은 다음과 같습니다.

kernel --name freebsd http://pxe.host/memdisk
initrd http://pxe.host/mfsbsd.img
imgargs freebsd harddisk raw
boot

UEFI 부팅 방식은 memdisk 방식을 지원하지 않고, mfsBSD를 직접 시작할 수 있는 다른 방법도 없는 것 같아서 먼저 GRUB2 시작으로 전환했습니다.

kernel --name grub2 http://pxe.host/grub2.efi
boot

이제 거기에서 mfsBSD ISO를 부팅하려고 하는데 다음과 같습니다 grub.cfg.

insmod efinet
insmod tftp
insmod loopback
insmod iso9660
insmod ufs2
insmod part_msdos
insmod gfxterm
insmod vbe

menuentry "mfs12.1.iso" {
  set isofile=(tftp)/mfs12.1.iso
  loopback loop $isofile
  echo "ISO mounted"
  set root=(loop)
  kfreebsd /boot/kernel/kernel.gz
  echo "kernel loaded"
  kfreebsd_loadenv /boot/device.hints
  kfreebsd_module /boot/kernel/ahci.ko
  echo "ahci.ko loaded"
  kfreebsd_module /mfsroot.gz type=mfs_root
  set kFreeBSD.vfs.root.mountfrom="ufs:/dev/md0"
  echo "set kFreeBSD.vfs.root.mountfrom"
  set kFreeBSD.mfs_type="mfs_root"
  echo "set kFreeBSD.mfs_type"
  set kFreeBSD.mfs_name="/mfsroot"
  echo "set kFreeBSD.mfs_name"
  set kFreeBSD.mfsbsd.autodhcp="YES"
  echo "set kFreeBSD.mfsbsd.autodhcp"
}

불행하게도 모든 부팅이 화면에 아무 정보 없이 중단됩니다. mfsBSD 시작

kFreeBSD.vfs.root.mountfrom결과 없이 변경 을 시도하고 "cd9660:/dev/md0"다른 mfsBSD 버전을 시도하고 이 솔루션을 사용하여 EFI 지원 ISO를 구축했습니다.https://github.com/mmatuska/mfsbsd/pull/100

이 설정에서 뭔가 빠졌나요? 어떤 도움이라도 정말 감사하겠습니다.

답변1

일이 제대로 안 되고 있는 게 확실해요? 네트워크를 통해 접속해 보셨나요?

당신이 보면GRUB 매뉴얼검색해 보면 amd64 EFI헤드리스 부팅만 지원한다는 것을 알 수 있습니다. 귀하의 스크린샷을 통해가능한그러면 시스템이 성공적으로 시작된 것입니다. 그러나 화면에 콘솔 출력이 표시될 것으로 예상해서는 안 됩니다.

자신만의 mfsBSD 버전을 구축하거나 ISO 이미지를 패치하는 경우 nullconsole다음 설정을 시도해 볼 수 있습니다.comconsole/boot/loader.conf

console=nullconsole

...콘솔 없이 - 또는 사용직렬 콘솔사용

console=comconsole

아니면 좀 보세요2.12 고급 설치 가이드

모든 것이 사용자를 위해 만들어졌기 때문에 mfsBSD 사용의 편리함을 이해합니다. 그러나 Grub을 완전히 건너뛰고 FreeBSD로 직접 부팅하는 것은 실제로 그렇게 어렵지 않습니다. 유일한 성가심은 시작하려면 어딘가에서 NFS를 실행해야 한다는 것입니다.

문서를 보면31.8. PXE를 사용한 디스크 없는 작업- DHCP 서버의 샘플 구성을 볼 수 있습니다. UEFI 부팅을 위해 이를 수정하는 것은 간단합니다.

# path of boot loader obtained via tftp
filename "loader.efi";

# pxeboot boot loader will try to NFS mount this directory for root FS
option root-path "192.168.0.1:/tftproot/FreeBSD/" ;

/boot/loader.efi따라서 FreeBSD를 TFTP 서버에 복사하면 즉시 올바른 로더로 부팅됩니다. 네트워크를 통해 NFS를 통해 커널을 가져오는 AFAIK loader.efi는 여전히 지원됩니다.pxeboot(8)이는 TFTP를 사용하여 추가로 달성할 수 있습니다. 그러나 NFS가 있으면 설정이 매우 쉽습니다. 이에 대해 더 자세히 읽을 수 있습니다.디스크리스(8)

기본적으로 일반적인 NFS 루트 디렉터리가 제공됩니다. 하지만 능력이 있다면 스토리지 디스크로 작업하는 것은 전혀 어렵지 않습니다.17.9. 메모리 디스크그리고다중 파일 시스템(8). mdmfs지원 으로geom_uzip필요한 경우 쉽게 수정할 수 있는 아름다운 이미지를 포함할 수 있습니다.

앞으로 나아갈 길에 관해서는 이미 작업을 시작했습니다.UEFI HTTP 부팅 지원NFS 대신 HTTP를 통해 서비스를 제공하려는 경우 작업이 단순화됩니다. 그러나 이것은 여전히 ​​​​새롭고 반짝입니다.

가지다기타 보고서UEFI, Grub 및 mfsBSD를 사용하여 실행 중인 설정과 동일한 문제가 발생했습니다.

다시:나는 mfsBSD 이미지 사용의 편리함을 이해합니다. 나는 단지 대안적인 길이 있다는 것을 보여주고 싶었을 뿐입니다. 운이 좋다면 Grub 경험이 더 많은 사람이 더 나은 답변을 제공할 수 있을 것입니다.

관련 정보