QEMU 上に AArch64 版 OpenBSD の環境を構築する手順です。
『QEMU のインストール』を参照して QEMU のインストールを行います。
本稿では 2021 年 10 月にリリースされた OpenBSD 7.0 を使用します。
miniroot70.img を取得します。
※miniroot70.img はインストーラならびにその関連ファイルが含まれたイメージファイルとなります。
作業用フォルダを作成します。
本稿では『C:\openbsd』とします。
取得を行った SD カードイメージファイルを作業用フォルダに配置します。
コマンドプロンプトを起動して作業用フォルダに移動します。
> cd C:\openbsd
SD カードイメージファイルのサイズを拡張します。
本稿ではサイズを 16G とします。
> "C:\Program Files\qemu\qemu-img.exe" resize -f raw miniroot70.img 16G
SD カードイメージファイルを使用してインストーラを起動します。
本稿ではユーザモードネットワークを使用することとします。
また、仮想マシンへは TELNET 経由でのシリアル接続を行うこととします。
> "C:\Program Files\qemu\qemu-system-aarch64.exe" ^
-M virt ^
-cpu cortex-a53 ^
-smp 4 ^
-m 1g ^
-bios "C:\Program Files\qemu\share\edk2-aarch64-code.fd" ^
-drive file=miniroot70.img,format=raw ^
-net user ^
-net nic ^
-nographic ^
-serial telnet::30023,server,nowait
TELNET 経由で OpenBSD のシリアルコンソールへの接続を行います。
接続先は QEMU を実行しているホストの 30023/TCP となります。
以下は Tera Term を使用した場合の接続先設定例となります。
『Raspberry Pi 上での OpenBSD 環境構築』を参照してインストールを行います。
なお本稿では IPv4 アドレスは自動設定 (『autoconf』を選択) を行うこととします。
インストール完了後、ターミナル画面に OpenBSD のログインプロンプトが表示されます。
OpenBSD/arm64 (openbsd.my.domain) (console)
login:
ユーザ名『root』でログインします。
以下のプロンプトが表示されます。
openbsd#
マシンアーキテクチャが『aarch64』であることを確認します。
openbsd# uname -p
aarch64
ユーザモードネットワークで DHCP により設定されたネットワーク情報を確認します。
仮想マシンへは『10.0.2.15/24』以降の IP アドレスが付与されます。
またネットワークインタフェース名は『vio0』となります。
openbsd# ifconfig -a
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768
index 3 priority 0 llprio 3
groups: lo
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
inet 127.0.0.1 netmask 0xff000000
vio0: flags=808843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF4> mtu 1500
lladdr 52:54:00:12:34:56
index 1 priority 0 llprio 3
groups: egress
media: Ethernet autoselect
status: active
inet 10.0.2.15 netmask 0xffffff00 broadcast 10.0.2.255
enc0: flags=0<>
index 2 priority 0 llprio 3
groups: enc
status: active
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33136
index 4 priority 0 llprio 3
groups: pflog
ゲートウェイの IP アドレスは『10.0.2.2』となります。
openbsd# netstat -rn -f inet
Routing tables
Internet:
Destination Gateway Flags Refs Use Mtu Prio Iface
default 10.0.2.2 UGS 5 25 - 8 vio0
224/4 127.0.0.1 URS 0 0 32768 8 lo0
10.0.2/24 10.0.2.15 UCn 2 0 - 4 vio0
10.0.2.2 52:55:0a:00:02:02 UHLch 1 2 - 3 vio0
10.0.2.3 52:55:0a:00:02:03 UHLc 0 41 - 3 vio0
10.0.2.15 52:54:00:12:34:56 UHLl 0 2 - 1 vio0
10.0.2.255 10.0.2.15 UHb 0 0 - 1 vio0
127/8 127.0.0.1 UGRS 0 0 32768 8 lo0
127.0.0.1 127.0.0.1 UHhl 1 12 32768 1 lo0
DNS サーバの IP アドレスは『10.0.2.3』となります。
openbsd# cat /etc/resolv.conf
nameserver 10.0.2.3 # resolvd: vio0
lookup file bind
『Raspberry Pi 上での OpenBSD 7.0 環境の構築』を参照して適宜環境設定を行います。