FreeBSD 11でbhyveを利用してUbuntu16.04 LTSをLVM構成でインストールすると、このインストールしたUbuntu VMが起動できません。回避方法はこのVM用のconfigファイルで
grub_run_dir="/grub"
と指定することです。configファイルの場所は、
- このVM名をVM
- /etc/rc.confのvm_dirで指定したディレクトリをVM_DIR
とすると、
VM_DIR/VM/VM.conf
です。
これの情報は以下のblogで知りました。
FreeBSD forums
https://forums.freebsd.org/threads/51861/
When LVM is selected in a Debian/Ubuntu install, the grub config file is put into a non-default location: /grub/grub.cfg instead of /boot/grub/grub.cfg.
grub-bhyve can be told to look into the alternate directory with the -d <dir>
option. The boot should be fine if you change your grub-bhyve command line to grub-bhyve -d /grub -m /opt/data/bhyve/vm0-device.map -r hd0,msdos1 -M 2048 proxy
bhyveを利用してLinuxなどをインストールする方法は、以下のblogを参考にしました。
FreeBSD bhyve + vm-bhyveでゲストにFreeBSD環境を入れてみる
https://blog.bixr.com/2016/06/1090/
FreeBSD bhyve + vm-bhyveでゲストにUbuntu 16.04 LTS serverを入れてみる
https://blog.bixr.com/2016/07/1178/
手順は簡単です。
- /boot/loadr.conに以下を追加
vmm_load="YES"
- bhyveのvmを管理するvm-bhyveをインストール
# pkg install vm-bhyve
- vmの管理領域をzfs上に”data/vm”として用意
# zfs create data/vm
- /etc/rc.confに以下の5行を追加。
vm_enable="YES"
vm_dir="zfs:data/vm"
vm_list=""
vm_delay="5"
- vm-bhyve環境の初期化を実行(一度だけ)。
# vm init
- テンプレート設定ファイルをexsampleよりコピー。
# cp /usr/local/share/examples/vm-bhyve/* /data/vm/.templates/
- 仮想スイッチ(bridge)を作成
# vm switch create public
# vm switch add public em0
(このem0は主なネットワークインターフェースに置き換えて指定する)
- ISOファイルを入手する
# vm iso http://releases.ubuntu.com/16.04/ubuntu-16.04-server-amd64.iso
- ubuntuインストールの実行
# vm create -t ubuntu vmubuntu
# vm install vmubuntu ubuntu-16.04-server-amd64.iso
- ubuntuをVMコンソールからインストール(コンソールはcu接続なので、「~.」で抜けることができます。
# vm console vmubuntu