ソースの表示以前のリビジョンバックリンク全て展開する/折り畳む文書の先頭へ Share via Share via... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer Reddit Teams最近の変更Send via e-Mail印刷パーマリンク × 目次 vm-bhyveでお手軽にbhyveを使う 試した環境 準備 インストール 初期化 仮想スイッチの作成 Windows 10を入れてみる データストアを追加する vm-bhyveコマンド例集 vm-bhyveでお手軽にbhyveを使う 試した環境 FreeBSD 11.1-RELEASE FreeBSD 11.2-RELEASE FreeBSD 12.0-RELEASE vm-bhyve 1.2.3 vm-bhyve 1.3.0 ZFS環境 準備 インストール packagesからvm-bhyveを入れる # pkg install vm-bhyve 初期化 vm-bhyve用のZFSファイルシステムを作る。ここにvm-bhyveの管理情報、VM情報、VMのストレージが格納されることになる。 # zfs create zvm/R/vm rc.confに設定を追加。見てわかる通り、vm_dirにvm-bhyve用のFSのパスを指定する。 # echo 'vm_enable="YES"' >> /etc/rc.conf # echo 'vm_dir="zfs:zvm/R/vm"' >> /etc/rc.conf vm-bhyveの初期化(最初の1回のみ) vm init vm_dirのデフォルト構造は以下のようになる $ find /zvm/R/vm /zvm/R/vm /zvm/R/vm/.iso /zvm/R/vm/.templates /zvm/R/vm/.config /zvm/R/vm/.config/system.conf /zvm/R/vm/.config/null.iso VMのテンプレートをコピーする # cp /usr/local/share/examples/vm-bhyve/* /zvm/R/vm/.templates/ 仮想スイッチの作成 VMの通信は、VMの仮想NICから仮想スイッチを経由して物理ネットワークに出て行く。bhyveにおける仮想スイッチは、実のところFreeBSD標準の単なるネットワークブリッジである。 一般的な方法 以下ではpublicという名前の仮想スイッチを作成し、物理NICとしてigb0をスイッチに“接続”している。 # vm switch create public # vm switch add public igb0 ゲストからホストにアクセスする場合 VMからホストのサービスにアクセスする必要がある場合(VM上のWindowsからホストのSambaを使う時とか)は、手動でブリッジを作成し仮想スイッチとして登録しなければならない。 ブリッジにIPアドレスを割り当てるようにしないと、ゲスト→ホストのpingは通るのにサービスにアクセス出来ないといった事が起こる。参考:strange network problem about bridge · Issue #146 · churchers/vm-bhyve · GitHub # ifconfig_igb0="inet 192.168.1.1/24" ifconfig_bridge0="ether xx:yy:zz:ww:uu:vv addm igb0 addm tap0 up" ifconfig_bridge0_alias0="inet 192.168.1.1/24" ifconfig_igb0="up" ifconfig_tap0="description 'dummy-tap' up" xx:yy:zz:ww:uu:vvには一意のMACアドレスを指定する。指定しないとランダム値が指定された気がするので、固定しといた方が無難(うろ覚え)。参考:プライベートなMACアドレス→Basic MACアドレス 手動で作ったbridge0をvm-bhyveのpublicな仮想スイッチとして登録。 # echo 'switch_list="public"' >> vm_dir/.config/system.conf' # echo 'bridge_public="bridge0" >> vm_dir/.config/system.conf' Windows 10を入れてみる テンプレート(-t) windows、仮想ストレージ(-s) 60GB、VM名windowsでVMを作る。 # vm create -t windows -s 60 windows vm configure VM名でVMの設定ファイルを編集できる。必要に応じて編集してくだしあ。自分はCPUとメモリを増量し、↓こんな感じにしますた。 # vm configure windows uefi="yes" cpu=2 memory=6G network0_type="virtio-net" network0_switch="public" disk0_type="ahci-hd" disk0_name="disk0.img" uuid="7faf487e-ed4f-11e7-9682-XXXXXXXXXXXX" graphics="yes" なお、インストールに使うISOイメージはvm_dir/.iso/に入れておく必要がある。 # cp /path/to./windows_install.iso vm_dir/.iso/ インストールモードでVMを起動する # vm install windows windows_install.iso vm startとの違いは、指定したISOを自動マウントしてくれる点と、VNCでVMに接続するまで起動を止めてくれる点。 Windowsのインストールが完了したら、vm startで起動する事ができる。 # vm start windows データストアを追加する vm datastore addコマンドで、vm_dirとは別のVMストレージ置き場を追加する事ができる。 現状確認 # vm datastore list NAME TYPE PATH ZFS DATASET default zfs /zvm/R/vm zvm/R/vm zhome2/ROOT/vmというZFSファイルシステムをデータストアとして追加してみる。 # vm datastore add mirrorhdd zfs:zhome2/ROOT/vm 追加されたか確認 # vm datastore list NAME TYPE PATH ZFS DATASET default zfs /zvm/R/vm zvm/R/vm mirrorhdd zfs /zhome2/ROOT/vm zhome2/ROOT/vm 追加したデータストアを使う時は、vm createの-dオプションで指定する。 vm-bhyveコマンド例集 VMの削除 # vm destroy VM名 データストアの削除。vm-bhyveの管理から削除されるだけでデータは残ったまま。 # vm datastore remove freebsd/bhyve/freebsd_11.1r_use_vm-bhyve.txt 最終更新: 2020-12-03 19:35by Decomo