Skip to main content

FreeBSD on xhyve でディスクをマウントできた

前に xhyve で FreeBSD を動かしたときにディスクのマウントに失敗すると書いた。

原因と解決方法が分かったので補足しておく。

原因 #

BOOTVOLUME を定義していれば IMG_HDD の定義は不要だと勘違いしていたが、IMG_HDD の定義も必要であるらしい。この前は IMG_HDD を定義していなかったので、ディスクのマウントに失敗していたのである。

解決方法 #

原因が分かったので起動用スクリプトを下記のように修正した。

#!/bin/sh

USERBOOT="test/userboot.so"
BOOTVOLUME="FreeBSD-10.1-RELEASE-amd64.raw"
KERNELENV=""

MEM="-m 1G"
#SMP="-c 2"
#NET="-s 2:0,virtio-net"
#IMG_CD="-s 3,ahci-cd,/somepath/somefile.iso"
IMG_HDD="-s 4,virtio-blk,FreeBSD-10.1-RELEASE-amd64.raw"
PCI_DEV="-s 0:0,hostbridge -s 31,lpc"
LPC_DEV="-l com1,stdio"
#UUID="-U deadbeef-dead-dead-dead-deaddeafbeef"

build/xhyve -A $MEM $SMP $PCI_DEV $LPC_DEV $NET $IMG_CD $IMG_HDD $UUID -f fbsd,$USERBOOT,$BOOTVOLUME,"$KERNELENV"

そうしたら、問題無くディスクがマウントされて FreeBSD が起動した。