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