BSD界隈四方山話

第23回 ハイパーバイザbhyveでOpenBSDを使ってみよう

この記事を読むのに必要な時間:およそ 8.5 分

OpenBSD on bhyve

bhyveを使うとFreeBSD以外のオペレーティングシステムを実行できます。今回はbhyveでOpenBSDを利用する方法を紹介します。OpenBSDはLibreSSLの開発やpf(4)の開発など興味深い取り組みを行っているプロジェクトです。簡単に利用できる環境を用意しておくとなにかと便利です。

今回は次の条件でセットアップを行います。

  • ホスト:FreeBSD 10.2-RELEASE/amd64
  • ゲスト:OpenBSD 5.7/amd64
  • ホストNIC:bge0
  • ゲストNIC:tap0(via bridge0)
  • 仮想CPU:1個
  • 仮想メモリ:2GB
  • 仮想ディスク(32BG)⁠/dev/zvol/z/openbsd-5.7
  • インストーラ: /d/bhyve/install57.iso
  • grub-bhyve設定ファイル:/d/bhyve/openbsd-5.7-device.map

細かい説明はこれまでのbhyve記事を参考にしてください。

ホストのセットアップ

ホストのセットアップを行います。vmmカーネルモジュールを読み込み,bridge0にtap0とbge0を追加します。

図1 ホスト環境をセットアップ

# kldload vmm
# ifconfig tap0 create
# sysctl net.link.tap.up_on_open=1
net.link.tap.up_on_open: 0 -> 1
# ifconfig bridge0 create
# ifconfig bridge0 addm bge0 addm tap0 up

再起動したときも同じコマンドが実行されるように3つの設定ファイルにそれぞれ次のような設定を追加します。

リスト1 /boot/loader.confに追加する設定

vmm_load="YES"

リスト2 /etc/sysctl.confに追加する設定

net.link.tap.up_on_open=1

リスト3 /etc/rc.confに追加する設定

cloned_interfaces="bridge0 tap0"
ifconfig_bridge0="addm bge0 addm tap0"

ゲストのインストール

FreeBSD以外のオペレーティングシステムをbhyveで使う場合,カーネルのローディングにgrub-bhyveを使います。grub-bhyveで使う設定ファイルを次のように用意します。

リスト4 grub-bhyve for OpenBSDのマッピングファイル openbsd-5.7-device.map

(hd0) /dev/zvol/z/openbsd-5.7
(cd0) /d/bhyve/install57.iso

OpenBSD 5.7のインストールイメージファイルをダウンロードするとともに,次のようにZFSを使って仮想ディスクを作成します。

図2 仮想ディスクの作成

# fetch ftp://ftp.kddilabs.jp/OpenBSD/5.7/amd64/install57.iso
install57.iso                                 100% of  218 MB 4525 kBps 00m49s
# zfs create -V 32G -o volmode=dev z/openbsd-5.7

次のようにgrub-bhyveを実行してOpenBSDカーネルを読み込みます。

図3 OpenBSD 5.7カーネルの読み込み

# grub-bhyve -m openbsd-5.7-device.map -r cd0 -M 2G openbsd-5.7

                             GNU GRUB  version 2.00

   Minimal BASH-like line editing is supported. For the first word, TAB
   lists possible command completions. Anywhere else TAB lists possible
   device or file completions.

grub> ls (cd0)
Device cd0: Filesystem type iso9660 - Label \`OpenBSD/amd64   5.7 Install CD' -
Last modification time 2015-03-06 01:10:10 Friday, UUID 2015-03-08-11-10-10-00
- Total size 448444 sectors
grub> ls (cd0)/
5.7/ etc/ TRANS.TBL
grub> ls (cd0)/5.7
amd64/ TRANS.TBL
grub> ls (cd0)/5.7/amd64/
base57.tgz boot.catalog bsd bsd.mp bsd.rd cdboot cdbr comp57.tgz game57.tgz INS
TALL.amd64 man57.tgz SHA256 TRANS.TBL xbase57.tgz xfont57.tgz xserv57.tgz xshar
e57.tgz
grub> kopenbsd -h com0 (cd0)/5.7/amd64/bsd.rd
grub> boot
#

図4 OpenBSD 5.7インストーラの起動

# bhyve \
    -H -P -A \
    -W -c 1 \
    -m 2G \
    -l com1,stdio \
    -s 0:0,hostbridge \
    -s 1:0,lpc \
    -s 2:0,virtio-net,tap0 \
    -s 3,ahci-cd,/d/bhyve/install57.iso \
    -s 4,virtio-blk,/dev/zvol/z/openbsd-5.7 \
    openbsd-5.7

コメント

コメントの記入