資料: OpenBSD FAQ - Virtualization
シンプル。以下の制限がある。
# #ハードウェアが対応しているか確認 # dmesg | egrep '(VMX/EPT|SVM/RVI)'
# #vmdを有効化 # rcctl enable vmd # rcctl start vmd
# #ディスクイメージを作成 # vmctl create -s 4G OpenBSD78.img # raw or qcow2
(ネットワークブリッジを使用しなければ)設定ファイルなしで動く。
# vmctl start -c -i 1 -L -m 2G -B cdrom -r install78.iso -d OpenBSD78.img obsd78
# vmctl start -i 1 -L -m 2G -d OpenBSD78.img obsd78
設定を/etc/vm.confに記述する。
# cat /etc/vm.conf
switch "uplink" {
interface veb0
}
vm "obsd78" {
disable
memory 2G
disk "/opt/vmd/OpenBSD78.img"
interfaces 1
interface { switch "uplink" }
}
(他にもVMがある場合は以下同様に記述)
前項のvm.confの設定ではVMをブリッジに接続し、外のネットワークに出られるようにしている。 これについて、ネットワークの追加設定が必要
# cat /etc/hostname.veb # veb(4) (Virtual Ethernet Bridge)の設定 add re0 add vport0 up
# cat /etc/hostname.re0 # 実機のNICの設定 up # 有効化するだけ
# cat /etc/hostname.vport # vebに接続する仮想ポート。実機のアドレス設定はここで inet autoconf # 実H/WのNICvebを接続するとアドレスを割り振れなくなるため inet alias 192.168.1.32 255.255.255.0 inet6 autoconf
# vmctl start obsd78
vmctl: started vm 1 successfully, tty /dev/ttyp1
# vmctl status
ID PID VCPUS MAXMEM CURMEM TTY OWNER STATE NAME
1 25809 1 516M 156M ttyp1 root running obsd78
/dev/ttyp1はVMのシリアルコンソール。cu(1)を使ってアクセスする。
# vmctl console obsd78
または、起動時に、
# vmctl start -c obsd78
| 区画 | OS | マウントポイント | 用途 |
| sd0a | 河豚板7.1 | ブートセレクタ/メンテ用 | |
| sd0b | swap | スワップ | |
| sd0d | 河豚板の環境保存用 | ||
| sd0e | OpenBSD 7.8/i386 | / | ビルド環境 |
| sd0f | OpenBSD 7.8/amd64 | / | ビルド環境 |
| sd0g | OpenBSD 7.8 | /opt/build | 生成物 |
| sd0k | OpenBSD 7.7/i386 | / | ビルド環境 |
| sd0l | OpenBSD 7.7/amd64 | / | ビルド環境 |
| sd0m | OpenBSD 7.7 | /opt/build | 生成物 |
| 7.8/i386, 7.8/amd64をバラしてVMに収容 7.7/* (一つ前のリリース)は保持しないこととした |