BSD界隈四方山話

第50回 Ubuntu 16.04をbhyveにインストール

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

Ubuntu 16.04 LTS登場

Canonicalは4月21日(米国時間)⁠Ubuntuの最新版となる「Ubuntu 16.04 LTS」を公開しました。今回のリリースは長期サポートバージョンとされており,向こう5年間のサポートが提供されます。

今回のバージョンは今後のマルチプラットフォーム展開を見据えてパッケージフォーマットが新しい「snap」に変更された点が注目されるほか,LXD/LXCが最新バージョンにアップデートされたこと,コンテナ技術のファイルシステム/ボリュームとしてのZFSが利用しやすくなったことが注目されます。

今回はbhyveにUbuntu Server 16.04 LTSをインストールする方法を紹介します。インストール方法はいくつかあるのですが,grub2-bhyveで起動するためにファイルシステムと起動時に指定する内容を一致させる必要があります。今回はLVMを利用しない場合のインストールおよび起動方法を説明します。

仮想環境のセットアップ

次の構成で仮想環境を用意することにします。インストールイメージファイルや設定ファイルなどを適宜用意しておきます。

 ホストとゲストの設定

項目内容
ホストOSFreeBSD 10.3-RELEASE/amd64
ゲストOSUbuntu Server 16.04 LTS
ホストNICbge0
ゲストNICtap11 via bridge0
仮想CPU2個
仮想メモリ2GB
仮想ディスク(32BG)/dev/zvol/z/ubuntu-16.04
インストーラ/d/bhyve/ubuntu-16.04-server-amd64.iso
grub-bhyve設定ファイル/d/bhyve/ubuntu-16.04-device.map

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

vmm_load="YES"

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

net.link.tap.up_on_open=1

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

cloned_interfaces="bridge0 tap0 tap1 tap2 tap3 tap4 tap5 tap6 tap7 tap8 tap9 tap10 tap11 tap12"
ifconfig_bridge0="addm bge0 addm tap0 addm tap1 addm tap2 addm tap3 addm tap4 addm tap5 addm tap6 addm tap7 addm tap8 addm tap9 addm tap10 addm tap11 addm tap12"

リスト /d/bhyve/ubuntu-16.04-device.mapファイルの中身

(hd0) /dev/zvol/z/ubuntu-16.04
(cd0) /d/bhyve/ubuntu-16.04-server-amd64.iso

設定ファイルを用意したあとにシステムを再起動しないのであれば,次のようにコマンドを手動で実行します。

 ネットワーク環境をセットアップ

# kldload vmm
# ifconfig tap11 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 tap11 up

仮想環境で利用する仮想ディスクを次のようにZFSで作成します。

 ゲストの仮想ディスクをセットアップ

# zfs create -V 32G -o volmode=dev z/ubuntu-16.04

カーネルの読み込みにgrub2-bhyveが必要になるので,パッケージからインストールしておきます。

 カーネルの読み込みに使用するgrub2-bhyveをインストール

# pkg install grub2-bhyve

これで仮想環境のセットアップは完了です。

Ubuntu 16.04インストール

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

 カーネルのローディング

# grub-bhyve -r cd0 -m /d/bhyve/ubuntu-16.04-device.map -M 2G ubuntu-16.04

 Install Ubuntu Serverを選択

図 Install Ubuntu Serverを選択

次にインストーラを起動します。

 インストーラ起動

# bhyve \
    -H -P -A \
    -c 2 -m 2G \
    -l com1,stdio \
    -s 0:0,hostbridge \
    -s 1:0,lpc \
    -s 2:0,virtio-net,tap11 \
    -s 3,ahci-cd,/d/bhyve/ubuntu-16.04-server-amd64.iso \
    -s 4,virtio-blk,/dev/zvol/z/ubuntu-16.04 \
    ubuntu-16.04

インストールの途中で次のような画面でパーティションの設定を求められますが,ここでLVMを利用しないパーティションを選択します。

 パーティションでLVM以外を選択

図 パーティションでLVM以外を選択

 LVMを利用しないでパーティションを設定

図 LVMを利用しないでパーティションを設定

インストールが終了したら,手動で一旦仮想環境を終了します。

 インストーラの最後の操作

図 インストーラの最後の操作

 仮想マシンを終了

# bhyvectl --destroy --vm=ubuntu-16.04

インストーラを終了しても仮想環境は実行されたままですので,上記のようにbhyvectl(8)を実行して仮想環境を一旦終了させます。

コメント

コメントの記入