先日、Ubuntuの長期サポートバージョンとなる「Ubuntu 18.04 LTS」が公開された。サポート期間は5年間で、今後長期にわたって使われるバージョンになると見られる。本稿では、FreeBSDサーバにUbuntu Server 18.04 LTSをインストールする方法を説明する。FreeBSDはbhyveと呼ばれる仮想化機能を搭載しており、複数のオペレーティングシステムを動作させるハイパーバイザーとして利用できる。

ホストおよびゲストの前提条件や設定ファイル、ゲスト環境を作成するコマンドなどは次のとおり。

項目 内容
ホストOS FreeBSD 11.1-RELEASE/amd64
ゲストOS Ubuntu Server 18.04 LTS
ホストNIC bge0
ゲストNIC tap0 via bridge0 with bge0
仮想CPU 2個
仮想メモリ 2GB
仮想ディスク(32BG) /dev/zvol/z/ubuntu-18.04
インストーラCD /d/bhyve/ubuntu-18.04-live-server-amd64.iso
grub-bhyve設定ファイル /d/bhyve/ubuntu-18.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"
ifconfig_bridge0="addm bge0 addm tap0"

/d/bhyve/ubuntu-18.04-device.mapファイル

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

ブートローダインストール

pkg install grub2-bhyve

ゲストディスク作成

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

設定を行ったら、一度システムを再起動するか、次のように仮想化機能モジュールの読み込みとゲストネットワークの設定を行う。

仮想化機能モジュールの読み込み

kldload vmm

ゲストネットワークのセットアップ

ifconfig tap0 create
sysctl net.link.tap.up_on_open=1
ifconfig bridge0 create
ifconfig bridge0 addm bge0 addm tap0 up

準備が整ったら次のようにローダを起動して「Install Ubuntu Server」を選択する。

Linuxカーネル読み込み

grub-bhyve -r cd0 \
 -m /d/bhyve/ubuntu-18.04-device.map \
 -M 2G ubuntu-18.04
  • Install Ubuntu Serverを選択

    Install Ubuntu Serverを選択

bhyveコマンドでインストーラを起動してインストールを実施する。

インストーラ起動

bhyve \
 -H -P -A \
 -c 2 -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/ubuntu-18.04-live-server-amd64.iso \
 -s 4,virtio-blk,/dev/zvol/z/ubuntu-18.04 \
 ubuntu-18.04
  • インストーラ動作サンプル

    インストーラ動作サンプル

インストールしたUbuntu Server 18.04 LTSの起動は、grub-bhyveコマンドによるカーネル読み込みとbhyveコマンドによるシステムの起動によって実施する。起動ごとにコマンドを入力するのは煩雑なので、次のようにエイリアスを設定しておく。

Ubuntu Server 18.04 LTS起動用エイリアス

alias bhyve_ubuntu_18.04='
 sudo bhyvectl --destroy --vm=ubuntu-18.04;
 sudo grub-bhyve -r hd0,gpt2 \
  -m /d/bhyve/ubuntu-18.04-device.map \
  -M 2G ubuntu-18.04 &&
 sudo bhyve -H -P -A -c 2 -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/ubuntu-18.04-live-server-amd64.iso \
  -s 4,virtio-blk,/dev/zvol/z/ubuntu-18.04 \
   ubuntu-18.04;
 sudo bhyvectl --destroy --vm=ubuntu-18.04'
  • Ubuntu Server 18.04 LTS on FreeBSD bhyve

    Ubuntu Server 18.04 LTS on FreeBSD bhyve

FreeBSDは組み込み機器や高性能アプライアンス、ゲームコンソール、ストレージソリューションなどで使われている。仮想化機能はそうしたデバイスにおいても利用されている。