xhyveでFreeBSD guestを動かす
久しぶりですね。κeenです。最近はMacでもまともな仮想環境が整ってきたのでFreeBSDでも動かすかーといって試したやつを共有します。
大部分はここを参考にしてますが、ちゃんと動きます。
xhyveとは
xhyve – Lightweight Virtualization on OS X Based on bhyve | pagetable.com
FreeBSDのBHyVeをMac OS Xに移植したものです。Intel CPUの仮想化フレームワークを使うことで仮想化の実装が(比較的)が楽になるからやろうぜってプロジェクトです。 カーネルレベルでのサポートが必要になりますがyosemiteからHyervisor.frameworkが入っているのでそれが使えます。
因みに開発はそんなに活発ではないです。
動かす
xhyveの準備
FreeBSDのサポートは既にマージされているのでcloneしてきてそのまま使えます。
git clone git@github.com:mist64/xhyve.git
cd xhyve
make
FreeBSDのイメージの入手 イメージは現在10.2が出ているので
fetch http://ftp.freebsd.org/pub/FreeBSD/releases/VM-IMAGES/10.2-RELEASE/amd64/Latest/FreeBSD-10.2-RELEASE-amd64.raw.xz
unxz FreeBSD-10.2-RELEASE-amd64.raw.xz
で入手出来ます。
起動スクリプトの準備
参照ブログのままだとハードディスクが読めないのでIMG_HDDにもイメージを指定します。
名前は何でも良いのですがfreebsd.sh
として保存し、chmod +x freebsd.sh
します。
#!/bin/sh
USERBOOT="test/userboot.so"
BOOTVOLUME="FreeBSD-10.2-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,$BOOTVOLUME"
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.sh
で起動します。
その他
FreeBSDのイメージを一杯作りたい人はダウンロードしてきたやつをcp
して使うと良いと思います。