2017年11月10日金曜日

FreeBSD+bhyve+ubuntu16.04LTS+LVMだと、ubuntu VMが起動できない

FreeBSD 11でbhyveを利用してUbuntu16.04 LTSをLVM構成でインストールすると、このインストールしたUbuntu VMが起動できません。回避方法はこのVM用のconfigファイルで
grub_run_dir="/grub"
と指定することです。configファイルの場所は、
  • このVM名をVM
  • /etc/rc.confvm_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/ 
手順は簡単です。
  1. /boot/loadr.conに以下を追加
    vmm_load="YES"
  2. bhyveのvmを管理するvm-bhyveをインストール
    # pkg install vm-bhyve 
  3. vmの管理領域をzfs上に”data/vm”として用意
    # zfs create data/vm 
  4. /etc/rc.confに以下の5行を追加。
    vm_enable="YES"
    vm_dir="zfs:data/vm"
    vm_list=""
    vm_delay="5"
  5. vm-bhyve環境の初期化を実行(一度だけ)。
    # vm init
  6. テンプレート設定ファイルをexsampleよりコピー。
    # cp /usr/local/share/examples/vm-bhyve/* /data/vm/.templates/
  7. 仮想スイッチ(bridge)を作成
    # vm switch create public
    #
    vm switch add public em0
      (このem0は主なネットワークインターフェースに置き換えて指定する)
  8. ISOファイルを入手する
    # vm iso http://releases.ubuntu.com/16.04/ubuntu-16.04-server-amd64.iso
  9. ubuntuインストールの実行
    # vm create -t ubuntu vmubuntu

    # vm install vmubuntu ubuntu-16.04-server-amd64.iso
  10. ubuntuをVMコンソールからインストール(コンソールはcu接続なので、「~.」で抜けることができます。
    # vm console vmubuntu