NetBSD on bhyve
bhyveを使うとFreeBSD以外のオペレーティングシステムを実行できます。今回はbhyveでNetBSDを利用する方法を紹介します。NetBSDプロジェクトは先日、
次の条件でセットアップを行います。
- ホスト:FreeBSD 10.
2-RELEASE/ amd64 - ゲスト:NetBSD 7.
0/ amd64 - ホストNIC:bge0
- ゲストNIC:tap0 (via bridge0)
- 仮想CPU:1個
- 仮想メモリ:2GB
- 仮想ディスク(32BG):/dev/
zvol/ z/netbsd-7. 0 - インストーラ:/d/
bhyve/ NetBSD-7. 0-amd64. iso - grub-bhyve設定ファイル:/d/
bhyve/ netbsd-7. 0-device. map
細かい説明はこれまでのbhyve記事を参考にしてください。
- 第18回 使ってみようハイパーバイザbhyve
- 第19回 bhyveでCentOSを使ってみよう!
- 第20回 ZFSデバイスファイルで仮想ディスクの性能アップ!
- 第23回 ハイパーバイザbhyveでOpenBSDを使ってみよう
ホストのセットアップ
ホストのセットアップを行います。vmmカーネルモジュールを読み込み、
# kldload vmm # ifconfig tap0 create # sysctl net.link.tap.up_on_open=1 net.link.tap.up_on_open: 0 -> 1 # ifconfig bridge0 create # ifconfig bridge0 addm bge0 addm tap0 up
再起動したときも同じコマンドが実行されるように3つの設定ファイルにそれぞれ次のような設定を追加します。
vmm_load="YES"
net.link.tap.up_on_open=1
oned_interfaces="bridge0 tap0"
ifconfig_bridge0="addm bge0 addm tap0"
ゲストのインストール
FreeBSD以外のオペレーティングシステムをbhyveで使う場合、
(hd0) /dev/zvol/z/netbsd-7.0
(cd0) /d/bhyve/NetBSD-7.0-amd64.iso
NetBSD 7.
# cd /d/bhyve/ # fetch ftp://ftp2.jp.netbsd.org/pub/NetBSD/NetBSD-7.0/iso/NetBSD-7.0-amd64.iso NetBSD-7.0-amd64.iso 100% of 371 MB 5616 kBps 01m08s # zfs create -V 32G -o volmode=dev z/netbsd-7.0
次のようにgrub-bhyveを実行してNetBSDカーネルを読み込みます。
# grub-bhyve -m netbsd-7.0-device.map -r cd0 -M 2G netbsd-7.0 GNU GRUB version 2.00 Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists possible device or file completions. grub> ls (cd0) Device cd0: Filesystem type iso9660 - Label `NETBSD_70' - Last modification time 2015-09-25 08:28:59 Friday, UUID 2015-09-25-08-28-59-00 - Total size 761284 sectors grub> ls (cd0)/ amd64/ bin/ boot boot.cfg dev/ etc/ install.sh lib/ libdata/ libexec/ mnt/ mnt2 / netbsd sbin/ stand/ sysinst sysinstmsgs.de sysinstmsgs.es sysinstmsgs.fr sysi nstmsgs.pl targetroot/ tmp/ usr/ var/ grub> knetbsd -h -r cd0a (cd0)/netbsd grub> boot #
# bhyve \ -H -P -A \ -W -c 1 \ -m 2G \ -l com1,stdio \ -s 0:0,hostbridge \ -s 1:0,lpc \ -s 2:0,virtio-net,tap0 \ -s 3:0,ahci-cd,/d/bhyve/NetBSD-7.0-amd64.iso \ -s 4:0,virtio-blk,/dev/zvol/z/netbsd-7.0 \ netbsd-7.0
![図5 NetBSD on bhyveインストールのようす 図5 NetBSD on bhyveインストールのよう](/assets/images/admin/serial/01/bsd-yomoyama/0024/thumb/TH800_005.jpg)
![図6 NetBSD on bhyveインストールのようす 図6 NetBSD on bhyveインストールのよう](/assets/images/admin/serial/01/bsd-yomoyama/0024/thumb/TH800_006.jpg)
![図7 NetBSD on bhyveインストールのようす 図7 NetBSD on bhyveインストールのよう](/assets/images/admin/serial/01/bsd-yomoyama/0024/thumb/TH800_007.jpg)
インストールが完了したらshutdownコマンドを実行して仮想環境を終了します。
# shutdown -p now Shutdown NOW! shutdown: [pid 268] sh: /usr/bin/wall: not found shutdown: poweroff by root: # System shutdown time has arrived About to run shutdown hooks... cron not running? (check /var/run/cron.pid). inetd not running? (check /var/run/inetd.pid). random_seed: /var/db/entropy-file: Bad file system type tmpfs Removing block-type swap devices swapctl: Cannot open `/etc/fstab': No such file or directory Tue Oct 13 12:28:31 GMT 2015 Done running shutdown hooks. syncing disks... done com1: detached pchb0: detached attimer1: detached audio0: detached cd0: detached atapibus0: detached atabus0: detached acpi0: entering state S5
インストールはとくに困ることはないと思います。インストーラの指示にしたがってそのままインストールしてみてください。
NetBSD 7.0を使ってみよう
以降は次のようにgrub-bhyveとbhyveコマンドを実行することでNetBSD 7.
# grub-bhyve -m netbsd-7.0-device.map -M 2G netbsd-7.0 GNU GRUB version 2.00 Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists possible device or file completions. grub> knetbsd -h -r cd0a (hd0,netbsd1)/netbsd grub> boot #
# bhyve \ -H -P -A \ -W -c 1 \ -m 2G \ -l com1,stdio \ -s 0:0,hostbridge \ -s 1:0,lpc \ -s 2:0,virtio-net,tap0 \ -s 3:0,virtio-blk,/dev/zvol/z/netbsd-7.0 \ netbsd-7.0
起動スクリプトを組むか、
alias bhyve_netbsd_7.0='sudo bhyvectl --destroy --vm=netbsd-7.0; printf "knetbsd -h -r cd0a (hd0,netbsd1)/netbsd\nboot\n" | sudo grub-bhyve -m /d/bhyve/netbsd-7.0-device.map -M 2G netbsd-7.0; sudo bhyve -W -c 1 -m 2G -H -P -A -l com1,stdio -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap7 -s 3:0,virtio-blk,/dev/zvol/z/netbsd-7.0 netbsd-7.0; sudo bhyvectl --destroy --vm=netbsd-7.0'
bhyve活用あれこれ
これまでFreeBSD bhyveでゲストオペレーティングシステムとしてFreeBSD、
bhyveがどういった仕組みで動作しているのか、
FreeBSD bhyveはいろいろと活用できる機能ですので、