BSD界隈四方山話

第47回OpenBSD 5.9-RELEASEをbhyveにインストール

OpenBSD 5.9-RELEASE

2016年3月29日(カナダ時間⁠⁠、当初5月1日のリリースが予定されていたOpenBSD 5.9が、1ヵ月前倒しになる形でリリースされました。すでにインストールイメージのダウンロードなどが実施できるようになっています。

「OpenBSD 5.9」では、とくにセキュリティを強化することになる新しいシステムコールpledge(2)が導入された点が注目されます。pledge(2)はすでにユーザランドの70%ほどのコマンドに適用されたと説明があります。それ以外にもネットワークスタックのマルチコア/プロセッサにおけるスケーラビリティの改善、Xen domUサポートの改善、インストーラにおけるGPTサポートの改善などが注目されます。

今回のリリースでは仮想化機能vmmは有効化されていませんし、ネットワークスタックの性能もまだまだ改善の余地があるとされています。OpenBSDは今後のリリースもしばらくは注目度の高いリリースになるものとみられます。今回はFreeBSD bhyveにOpenBSD 5.9をインストールして利用する方法を紹介します。

仮想環境のセットアップ

次の構成で仮想環境を用意することにします。インストールイメージファイルや設定ファイルなどを適宜用意しておきます。

表 ホストとゲストの設定
項目内容
ホストOSFreeBSD 10.2-RELEASE/amd64
ゲストOSOpenBSD 5.9/amd64
ホストNICbge0
ゲストNICtap10 via bridge0
仮想CPU2個
仮想メモリ2GB
仮想ディスク(32BG)/dev/zvol/z/openbsd-5.9
インストーラ/d/bhyve/install59.iso
grub-bhyve設定ファイル/d/bhyve/openbsd-5.9-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 tap1 tap2 tap3 tap4 tap5 tap6 tap7 tap8 tap9 tap10 tap11 tap12"
ifconfig_bridge0="addm bge0 addm tap0 addm tap1 addm tap2 addm tap3 addm tap4 addm tap5 addm tap6 addm tap7 addm tap8 addm tap9 addm tap10 addm tap11 addm tap12"
/d/bhyve/openbsd-5.9-device.mapファイルの中身
(hd0) /dev/zvol/z/openbsd-5.9
(cd0) /d/bhyve/install59.iso

設定ファイルを用意したあとにシステムを再起動しないのであれば、次のようにコマンドを手動で実行します。

 ネットワーク環境をセットアップ
# kldload vmm
# ifconfig tap10 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 tap10 up

仮想環境で利用する仮想ディスクを次のようにZFSで作成します。

 ゲストの仮想ディスクをセットアップ
# zfs create -V 32G -o volmode=dev z/openbsd-5.9

OpenBSDカーネルの読み込みにgrub2-bhyveが必要になるので、パッケージからインストールしておきます。

OpenBSDカーネルの読み込みに使用するgrub2-bhyveをインストール
# pkg install grub2-bhyve

これで仮想環境のセットアップは完了です。

OpenBSD 5.9インストール

次のようにgrub2-bhyveを実行してOpenBSD 5.9カーネルを読み込みます。

 OpenBSD 5.9カーネルのローディング
# grub-bhyve -m openbsd-5.9-device.map -r cd0 -M 2G openbsd-5.9

                             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 `OpenBSD/amd64   5.9 Install CD' -
Last modification time 2016-02-23 17:04:44 Tuesday, UUID 2016-02-26-02-04-44-00
- Total size 456372 sectors
grub> ls (cd0)/
5.9/ etc/ TRANS.TBL
grub> ls (cd0)/5.9
amd64/ TRANS.TBL
grub> ls (cd0)/5.9/amd64
base59.tgz boot.catalog bsd bsd.mp bsd.rd cdboot cdbr comp59.tgz game59.tgz INS
TALL.amd64 man59.tgz SHA256 TRANS.TBL xbase59.tgz xfont59.tgz xserv59.tgz xshar
e59.tgz
grub> kopenbsd -h com0 (cd0)/5.9/amd64/bsd.rd
grub> boot
#

次にOpenBSD 5.9インストーラを起動します。

 OpenBSD 5.9インストーラ起動
# 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,tap10 \
    -s 3,ahci-cd,/d/bhyve/install59.iso \
    -s 4,virtio-blk,/dev/zvol/z/openbsd-5.9 \
    openbsd-5.9

インストールでとくに困ることはないでしょう。会話形式で必要な項目を入力していけばインストールが完了します。

 OpenBSD 5.9インストーラ起動中
OpenBSD 5.9インストーラ起動中
 OpenBSD 5.9インストール完了
OpenBSD 5.9インストール完了

インストールが完了したらrebootコマンドを実行して仮想環境を終了します。

OpenBSD 5.9 on bhyveを利用

毎回grub-bhyveコマンドを実行したりbhyve(8)コマンドにたくさんオプションを指定するのは面倒なので、次のようなエイリアスを用意します。

 OpenBSD 5.9 on bhyveを起動するためのショートカットエイリアス
alias bhyve_openbsd_5.9='sudo bhyvectl --destroy --vm=openbsd-5.9; printf "kopenbsd -h com0 -r sd0a (hd0,openbsd1)/bsd\nboot\n" | sudo grub-bhyve -m /d/bhyve/openbsd-5.9-device.map -M 2G openbsd-5.9; 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,tap10 -s 3,virtio-blk,/dev/zvol/z/openbsd-5.9 openbsd-5.9; sudo bhyvectl --destroy --vm=openbsd-5.9'

これで次回からbhyve_openbsd_5.9でOpenBSD 5.9の仮想環境が起動してくるようになります。

 OpenBSD 5.9 on bhyve
OpenBSD 5.9 on bhyve
 OpenBSD 5.9から導入された新しいシステムコールpledge(2)
OpenBSD 5.9から導入された新しいシステムコールpledge(2)

FreeBSD勉強会 告知

第51回 4月14日(木) 19:00~ FreeBSD 10.3R / 11.0 新機能紹介

2016年3月末または4月の値には安定板の最新バージョンとなるFreeBSD 10.3-RELEASEのリリースが予定されています。さらに今年の夏となる7月末または8月には、次期メジャーアップグレードバージョンとなるFreeBSD 11.0-RELEASEのリリースが予定されています。FreeBSD 11.0-RELEASEには現在の10系にはバックポートされていない魅力的な機能がたくさん用意されており、リリースが楽しみなバージョンです。

第51回目となる今回はFreeBSD 10.3-RELEASEの登場のタイミングに合わせて、10.3-RELEASEの新機能を紹介するとともに、11.0-RELEASEで登場が予定されている新機能や変更点を先取りして紹介します。最近のFreeBSDがどうなっているのか、最新版に移行しようかどうか迷っているので詳しく内容を知りたい、そんな方向けの勉強会です。

参加申請はこちらから。

第52回 5月26日(木) 19:00~ FreeBSD翻訳に貢献しよう!基本的なツールの使い方

ソースコードが読めないからドライバを書いたりカーネルを書き換えたりできないし、新しくportsを作るのもちょっと難しい……そう思ってはいませんか? プロジェクトに貢献するのはなにもソースコードだけではありません。FreeBSDにはFreeBSD Handbookという優れたドキュメントがあります。このドキュメントを翻訳するだけでも、多くの日本のユーザに貢献することになります。

FreeBSD Docチームは最近POの機能を取り込んだ翻訳システムを構築して活用しています。このシステムを導入する前に比べると自動化できる部分も増えましたし、システマティックに変更部分を判断することもやりやすくなりました。こうした新しい翻訳作業に関してdocチームは各国で開催されるカンファレンスやサミットでチュートリアルを開催するなど、こうした仕組みを広く伝える取り組みをおこなっています。

今回の勉強会では、翻訳するにあたって使われているツールやサービスについて紹介したり、実際にどうやって作業を行っているのかの紹介を実施します。実際に翻訳作業をするわけではなくても、新しいドキュメント管理の方法を学ぶという上でも役に立つのではないかと思います。多くの方のご参加をお待ちしております :)

参加申請はこちらから。

おすすめ記事

記事・ニュース一覧