Windows 10 上の Hyper-VにFreeBSD 12.1 release をインストールして日本語環境を構築するまで

Windows 10 Pro が5月にアップデートされて2004となり、VMwareを使いながらもHyper-Vが使えるようになりました。そこで私のPCでは新機能になるこのHyper-Vを初インストールして、仮想マシンとしてFreeBSD12.1RELEASEをインストールしてみました。
せっかちな人向けにすでにインストール済みの仮想HDDのイメージファイルもダウンロード可能となっているので、このファイルからFreeBSDの日本語デスクトップ環境を構築を試してみました。以下はその経緯

# 前準備

ステップ1：64bitのWindows 10 Proをホストマシンとして使っていることを前提として　[https://www.freebsd.org/ja/where.html](https://www.freebsd.org/ja/where.html) から仮想マシンイメージamd64を選び vhd.xzファイルをダウンロードします。 ダウンロードしたファイルは7-zipなどで解凍します。

ステップ2： 仮想マシンを新規に作成してドライブを解凍したvhdファイルに指定します。


<img width="641" alt="filesystem_is_full.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655268/7c428a03-6260-b92a-3928-1a80ea123727.png">

すぐに起動しますが、起動直後なので何もインストールされていないばかりか、設定も行われてません。試しに`pkg update -f` のコマンドを試してみると、filesystem is full と言われて先に進めません。
したがって手動設定が面倒な人はインストーラーであるisoディスクイメージをダウンロードして、isoファイルから起動して仮想マシンを作成した方が簡単に必要なセットアップができるようになってるので、インストール済み仮想HDDイメージを使ってセットアップする方法はあまりお勧めできない、というか、かえって面倒かもしれません。どちらの方法がいいかはお好みで。

ステップ3： 仕方がないのでいったん仮想マシンをシャットダウンした後、Hyper-Vマネージャーの仮想マシンの「設定」-「ハードウェア」から「ハードドライブ」を選び-「仮想ハードディスク」-「編集」ーディスクを拡張して、拡張後に、FreeBSDの仮想マシンをもう一度起動します。そしてFreeBSD内部 のファイルシステムの空き領域を増やします。
（[参照](https://www.vultr.com/docs/how-to-resize-a-disk-in-freebsd)）

<img width="586" alt="uitbreiden12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655268/1f7ba259-e7f7-6dbb-b454-6609dc8f0d02.png">

<img width="641" alt="filesystem-is-full12.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655268/d9546e05-72fe-d901-b182-ea03abe40cae.png">

```
# df -h

```
でディスク使用状況を確認。空き領域が明らかに足りてません。

```
# gpart show
```
でその都度確認

<img width="642" alt="gpart_show.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655268/9598a36e-1d36-85f8-38d0-f7e9955552e0.png">

[corrupt]となっているので修正する


```
# gpart recover da0
```

<img width="643" alt="da0resized.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655268/021537c5-e992-4f4e-e2c1-7a0c8f7c562f.png">
この後でディスクのリサイズが出来ます

```
# gpart resize -i 3 da0
```
このままではまだディスクへの容量割り当ては出来てません



```
# service growfs onestart
```
でリサイズが完了します
<img width="643" alt="service_growfs.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655268/7598a4ac-fa65-7b6f-f897-ae9eb05f1198.png">

これでアプリケーションをインストールできる環境が整いました。

# 日本語環境の構築とX Windowサーバーを使ったデスクトップ環境のインストール
必要なアプリケーションやお好みのアプリケーションのインストール

```
# pkg update -f
# pkg install vim
```

 emacs
 xorg
 xeyes
 xfce4
firefox
gnuplot
geogebra
gimp
texlive-full
など

タイムゾーンの設定と日本語環境のインストール：日本語フォントと入力メソッドをインストールします



```
# tzsetup /usr/share/zoneinfo/Asia/Tokyo
# pkg install ja-font-std ja-font-vlgothic ja-font-takao 
# pkg install ja-scim-anthy
```

`/etc/rc.conf` は次のように記述

```
hostname="freebsd12-1"
keymap="jp.kbd"
ifconfig_DEFAULT="DHCP inet6 accept_rtadv"
growfs_enable="YES"
hald_enable="YES"
dbus_enable="YES"
sshd_enable="YES"
avahi_daemon_enable="YES"
avahi_dnsconfd_enable="YES"
moused_enable="YES"
```

 `gnome_enable="YES"`と書くとgnome3にログインできなくなるので注意
`growfs_enable="YES"`と`ifconfig_DEFAULT="DHCP inet6 accept_rtadv`は自動で書き込まれているはずです。

```
pkg install xorg
```
でXorgをHyper-Vの画面で表示させても良いのですが、
WSL(Windows subsystem for Linux)で使っているXサーバーアプリケーションの[VcXsrv](https://sourceforge.net/projects/vcxsrv/)でGUI画面を表示させる方法を試してみたいと思います。有料アプリですが[X410](https://x410.dev/)もいいです。 

Cシェルを使う場合は次のように追記します。

`.cshrc`

```c
setenv LC_CTYPE ja_JP.UTF-8
setenv LANG     ja_JP.UTF-8
setenv DISPLAY  192.168.XX.XX:0.0

setenv QT_IM_MODULE scim
setenv GTK_IM_MODULE scim
setenv XMODIFIERS @im=SCIM
scim -d

```

`192.168.XX.XX`でホストマシンのIPアドレスを指定します。
 
X Window サーバーをWindows上で使うとWSLに似た使用感になりますが、クリップボード共有などの機能が使えてHyper-VでFreeBSDのデスクトップ環境を整えるにはこの方法が最適だと思います。
xfce4をインストールした場合、`startxfce4`でX Windowに表示されたGUI画面で`Ctrl+space` で日本語入力が有効になるはずです。



2020/06/23　2:30更新