FreeBSD公式仮想イメージをVirtualBox で動かす

## 公式の仮想イメージがあるが使い方がない

　OSをインストールせずにお手軽に試せるようにということで、最近はOS開発元の公式で仮想環境用のイメージを用意しています。
　FreeBSD でも公式イメージをビルドして公開しているのですが、2022年12月現在使い方が見当たりません。

　使い方は簡単なので「説明不要だ」と言われればそうかもしれないのですが、一応注意する部分があるので、その点を抑えながら使用方法を紹介しようと思います。

　ちなみにデスクトップ環境などは入っていません。仮想環境で重いGUIは入れたくない人は逆に嬉しいでしょう。デスクトップ環境が欲しい場合は追加でインストールしましょう。

　今回は仮想環境としては VirtualBox を使用します。バージョンは 6.1.40で確認しています。

VirtualBox ダウンロード
https://www.oracle.com/jp/virtualization/technologies/vm/downloads/virtualbox-downloads.html

　ホスト OS は Windows10/MacOS/Linux/FreeBSD等 VirtualBoxが動作する環境ならばなんでも大丈夫なはずですが、今回は Windows10 で確認しています。

## イメージのダウンロード

　公式のamd64版仮想環境用ディスクイメージは

13.1-RELEASE
https://download.freebsd.org/ftp/releases/VM-IMAGES/13.1-RELEASE/amd64/Latest/

12.3-RELEASE
https://download.freebsd.org/ftp/releases/VM-IMAGES/12.3-RELEASE/amd64/Latest/

に各種(qcow2/vmdk/vhd/raw) あります。
　今回は VirtualBoxでイメージを可変サイズで取り扱いたいので vhd イメージをダウンロードします。FreeBSDのバージョンは 13.1を使用します。

vhd イメージ直リンク
https://download.freebsd.org/releases/VM-IMAGES/13.1-RELEASE/amd64/Latest/FreeBSD-13.1-RELEASE-amd64.vhd.xz

　ダウンロードしたファイルは xz 形式で圧縮されているので、Windows ならば 7-Zip などのツールで展開してください。

## ディスクを仮想メディアマネージャーに追加

　VirtualBox の[ファイル]→[仮想メディアマネージャー]で、仮想メディアマネージャーのダイアログを開き、ダウンロードした vhdファイルを[追加]ボタンで追加します。

![仮想メディアマネージャー.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103137/1b00f8aa-150d-9e49-20e3-cc2adef11c20.png)

　ディスクイメージのサイズは3GB程度です。このままだとOSのファイルがギチギチに入っている状態で、ユーザーが使える空き容量がほとんどない状態です。ダイアログの下側にある[サイズ]の項目で容量を増やしてください。
　パーティションは起動時に勝手にディスクサイズ領域いっぱいまで拡張されるので、パーティションを切り直す必要はありません。ここではとりあえず32GBに増やしています。

## 仮想マシンの作成

　VirtualBox マネージャーの画面に戻って、[新規]ボタンを押して仮想マシンを作成します。

![作成1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103137/9282ac7b-4fe4-d5a0-11d4-8e4bc068880f.png)

* [タイプ]に "BSD" 
* [バージョン]に "FreeBSD(64-bit)" 
* メモリは使用したいサイズ(足りなければ後で変更可能)

![作成2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103137/37bd559f-0179-77d7-0657-fb8a391c9bfd.png)

* ハードディスクで[すでにある仮想ハードディスクを使用する]
  * 上記で作成したディスクイメージを指定

を指定して、[作成]ボタンを押すと仮想マシンが作成されます。

## グラフィックコントローラーは VBoxSVGA を指定

　このままデフォルト値で大体問題ないのですが、一点[ディスプレイ]の[グラフィックコントローラー]をVBoxSVGAが推奨されます。ゲストのFreeBSD側に入っているvirtualbox-ose-addition で推奨される設定なので素直に従います。VirtualBoxで警告が出ますが無視します。また「3Dアクセラレーションを有効化」を無効のままにしておきます。

![VBoxSVGA.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103137/10ed9ade-431a-6b67-c3d0-7fc945674bd6.png)


## 起動

　ここまでで動かす準備ができたので、起動してみます。順調ならばログインプロンプトまで進むと思います。
　ログインは root ユーザーでパスワードなしで行えます。passwd コマンドで root  ユーザーのパスワード変更、adduserコマンドで一般ユーザーを追加してください。

## virtualbox-ose-additions のインストール

　イメージはVirtualBox用というわけではないので virtualboxゲスト用の拡張 virtualbox-ose-additions が入っていません。シームレスなマウス操作やウィンドウサイズに合わせたデスクトップの解像度変更、共有フォルダなどが使いたい場合はインストールします。

　パッケージは 

* virutalbox-ose-additions (X Window を使う)
* virtualbox-ose-additions-nox11 (X Windowを使わない)

のどちらかです。GUIをインストールしないならば、余計なものをインストールしない-nox11 をインストールしたほうがいいでしょう。
　virutalbox-ose-additionsのインストールはpkgコマンドで

```
# pkg install virutalbox-ose-additions
```

で行えます。そのままだと有効にならないので、

```
# sysrc vboxguest_enable="YES"
# sysrc vboxservice_enable="YES"
# reboot
```

を実行してサービスを有効化し、再起動を行います。

　起動時に
```
Starting vboxservice.
```
と表示されていればサービスが開始されています。

　共有フォルダを試す場合は、OSのウィンドウの[デバイス]→[共有フォルダの設定]します。

![共有.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/103137/ad327db1-9455-7ef5-7129-67b9046e5de9.png)

　新規共有フォルダをホストのWindows側のフォルダを指定して追加(例として[フォルダ名]をvboxshareと命名)し、ゲストの FreeBSD で

```
mkdir /vboxshare
# mount -t vboxvfs vboxshare /vboxshare
```

とすると、FreeBSD側では /vboxshare として Windowsのフォルダを参照することができるようになります。

　取り敢えずここまでで FreeBSD が使えるようになりました。

## 最後に

　インストール済みのディスクイメージが既にある状態なのだからなるべくお手軽に使えると嬉しいわけですが、ちょっとでも躓いてあれこれ調べるところがあると利点が大きく損なわれてしまいます。というわけで主要な手順を並べて、流し読みすればさっさと使えるようにまとめてみました。