Linux + qemu で FreeBSD を動かす

#はじめに
Linux + qemu 上で FreeBSD を動かす手順を説明します。

以下の各説明では実際に実行するコマンドを以下のような形で記述しています。

```
$ sudo apt install パッケージ名
```
実際には上記のコマンドを実行するとパッケージインストールの進捗状況が表示されますが、本ページではそれらの表示を省いています。

#実行環境など
Ubuntu 20.04.1 LTS を使用します。
* 仮想マシンを起動する際に新しい Window が表示されるので、Desktop 環境で実行して下さい。
qemu 上で実行する FreeBSD は、12.2 RELEASE です。

#パッケージのインストール
Ubuntu 上で、以下の設定を行います。
* パッケージ qemu-system-x86 をインストールする。
* /dev/kvm へのアクセス権を追加するために、qemu を使用するユーザーを kvm グループに追加する。

```
$ sudo apt install qemu-system-x86
$ sudo gpasswd -a $(whoami) kvm
```

#FreeBSD のインストール
FreeBSD をインストールするために、Ubuntu 上で以下の操作を行います。
* 仮装ディスクを $HOME/VM/fbsd122 に作成
* 仮装ディスクの大きさは 16GB
* 仮想マシンに割り当てるメモリーは 1024GB
* FreeBSD のインストールメディアを取得
* FreeBSD のインストールメディアを使用して仮想マシンを起動
  * FreeBSD をインストール

```
$ mkdir -p ~/VM/fbsd122
$ cd ~/VM/fbsd122
$ qemu-img create -f qcow2 fbsd122.qcow2 16g
$ wget https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/12.2/FreeBSD-12.2-RELEASE-amd64-disc1.iso
```
 FreeBSD を FreeBSD-12.2-RELEASE-amd64-disc1.iso を起動します。

```
$ qemu-system-x86_64 -enable-kvm -m 1024 -boot order=d -cdrom FreeBSD-12.2-RELEASE-amd64-disc1.iso fbsd122.qcow2
```
* -boot order=d で CD-ROM からの起動の指定、-cdrom で使用する ISO イメージを指定します。
* Desktop 上に以下のような別 Window が表示され、FreeBSD のインストーラーが起動します。
    * インストール途中で操作を間違えたりした場合には、QEMU の Window のメニューから「Machine」->「Power Down」の操作を行うと仮想マシンの電源が OFF になるので、もう一度「qemu-system-x86_64」コマンドを実行してください。

![qemu-freebsd-start.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/915655/d0789b66-4d66-d571-a2e5-fbbdc21b3bd1.png)
![qemu-freebsd-installer.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/915655/2482e751-a80a-aee3-b89d-13047ab0642c.png)
上記の QEMU の Window 上で FreeBSD の操作を行います。
* QEMU Window の内側をクリックすると、インストーラーに対する操作を行えます。
* QEMU Window から抜ける際には、Ctlr + Alt + G キーを押下します。

FreeBSD のインストール手順は、以下の資料を参考にしてください。
* 英語: [HANDBOOK Installing FreeBSD](https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/bsdinstall.html)
* 日本語: [Share FreeBSD based information](https://freebsd.seirios.org/) の「Install FreeBSD」->「インストール手順」

インストールの注意事項として、以下の二点に留意してください。
* root パスワードの設定
* 一般ユーザーの登録

##root パスワードの設定
インストール中に以下の画面が表示され「root」のパスワードを入力するように指示されます。
* インストール後の操作でこのパスワードが必要になるので、忘れないようにしてください。
![qemu-freebsd-install-rootPassword.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/915655/fb5ff29b-6ac7-61d2-e462-890215ba6914.png)

##一般ユーザーの登録
インストール中に以下の画面が表示され、一般ユーザーの登録を促されます。
* ここで一般ユーザーを登録し、通常 FreeBSD を使用する際にはこのユーザーでログインして下さい。
* 「Login group is USERNAME. Invite yamada into other groups? []: 」に対して、「wheel」を入力してください (下記二枚目)。
![qemu-freebsd-install-adduser.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/915655/8edc6efd-7bb6-fec7-90b4-e223ff4da44d.png)
![qemu-freebsd-install-adduser-wheel.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/915655/ca2a9391-ad2e-6d6f-a7c2-cdba514ec013.png)

##インストール終了時の操作
インストールが終了したら「Complete」というダイアログが表示されるので、TAB キーを押して「Live CD」を選択して Enter キーを押してください。
![qemu-freebsd-complete.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/915655/36dd4fad-2ae1-1993-ad03-f98910b8b80d.png)
「login:」と表示されるので、「root」と入力して Enter キーを押してください。
* ここでは password の入力は不要です。
![qemu-freebsd-login-root.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/915655/a27b2c4c-a785-5615-4ac4-41f6c29f4ac7.png)
「poweroff」と入力して Enter キーを押してください。
![qemu-freebsd-poweroff.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/915655/7c738121-99eb-43a1-785a-81d5bed340ef.png)
poweroff が完了すると、QEMU の Window が消えます。

#HDDからの起動
インストール時の「-boot」と「-cdrom」を削除して実行すると、HDD から FreeBSD が起動されます。

```
$ qemu-system-x86_64 -enable-kvm -m 1024 fbsd122.qcow2
```
![qemu-hdd-login.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/915655/82573a6b-8ec9-b8f6-aa3a-6d760cd73444.png)
「login: 」に対して、「root」と入力し Enter キーを押します。
![qemu-hdd-password.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/915655/1e913c7a-f6f7-eaa3-259f-3b228c79d734.png)
「Password: 」に対して、FreeBSD のインストール時に設定した「root」のパスワードを入力して Enter キーを押してください。
* この時入力したパスワードは、画面に表示されません。
![qemu-hdd-root.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/915655/b2a83a73-aa2c-969a-9405-5a1f2a39a7c6.png)
ログインが成功すると、root のプロンプト「root@ホスト名:~ # 」が表示されます。

#FreeBSDのシャットダウン
rootでログインし、「shutdown -p now」と入力して Enter キーを押し、FreeBSD をシャットダウンします。
![qemu-hdd-shutdown.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/915655/ee70fe6e-742c-aa22-3459-42c952063b40.png)
シャットダウンが完了すると、QEMU の Window が消えます。