デスクトップ向け Live USB FreeBSD ディストリビューション NomadBSD の VirtualBox 仮想ハードディスクへのインストール、及び日本語環境の構築

[当方執筆の技術情報に関するライセンス、免責事項、禁止事項](https://qiita.com/EarthSimilarityIndex/items/6b9bb2ccacb38aae15b1)

****

#お詫び
公式の記述とまるっきり被ってました。本当に申し訳ない。
http://nomadbsd.org/handbook/handbook.html#vbox

###上記公式ハンドブックでの記述についての出典、及びNomadBSDに関する先行研究
NomadBSD - 610t's BSD Life
https://scrapbox.io/BSD/NomadBSD

↑こちらで指摘されていますが、[公式ハンドブック](http://nomadbsd.org/handbook/handbook.html)に目を通しましょう。本記事はまるっきり車輪の再発明でした。OTL

#Q ＆ A
Q:USBメモリにインストールして使うディストリビューションですよね？
A:はい。

Q:あほですか？
A:めいびー。

#NomadBSDとは
NomadBSD is a live system for USB flash drives, based on FreeBSD®. Together with automatic hardware detection and setup, it is configured to be used as a desktop system that works out of the box, but can also be used for data recovery, for educational purposes, or to test FreeBSD®'s hardware compatibility. 

NomadBSD は USB フラッシュメモリ向けの FreeBSD® に基づくライブシステム（[デスクトップ](https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97%E7%92%B0%E5%A2%83)向け [FreeBSD](https://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/) [Live USB](https://ja.wikipedia.org/wiki/Live_USB) ）です。ハードウェアの自動認識とオートセットアップにより、デスクトップシステムとしてただちにお使い頂けるのみならず、データ復旧や教育用途、あるいは FreeBSD® のハードウェア互換性のテストにもお使い頂けます。

![Screenshot_2019-05-06 NomadBSD.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/410379/1f088866-b3fb-5eef-2a05-76cec1509c4e.png)
http://nomadbsd.org/
※ ロゴ画像は公式サイトより

###スクリーンショット
#####Ver.1.2
![のまどびーえすでぃー02.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/410379/d78ada3b-c681-d6da-8e5b-ba2513847cbe.jpeg)


#発想
dd を用いて書き込む用途の、もしくは dd により抽出した OS の HDD イメージは VBoxManage で convertfromraw により VDI 化しての仮想ハードディスク運用が可能である。

この応用として、Rufus や Win32 Disk Imager で USB メモリに書き込む用途の OS イメージを流用、仮想ハードディスクイメージに変換し VirtualBox 上で利用することが考えられる。

さらなる応用としては、実ドライブのマウントと Clonezilla（必要に応じて Gparted Live 等で書き込んだパーティションをリサイズ）の合わせ技で強引に LiveUSB の OS イメージを実機の HDD へとインストールすることも可能であろう。
↑仮想化ソフトウェアによる実ドライブのマウントは有用とは思うがリスキーな手順でもあるので、実験する際はバックアップを入念に。



#Installing NomadBSD on a hard disk
Start Openbox menu -> System -> NomadBSD Installer and follow the instructions.
http://nomadbsd.org/handbook/handbook.html#installation

※ NomadBSD にはインストーラーが用意されていますね。失礼しました。



#作業例（on Windows）
ダウンロード・展開した nomadbsd-1.2.img がホームフォルダの \VirtualBox VMs\nomadbsd-1.2.img\ 以下に存在する場合

コマンドプロンプトから

```
cd "%HOMEPATH%\VirtualBox VMs\nomadbsd-1.2.img\"
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" convertfromraw --format VDI .\nomadbsd-1.2.img .\nomadbsd-1.2.vdi
```

あとは仮想マシン構築の際、ハードディスク選択時に先ほど生成された nomadbsd-1.2.vdi を指定してやれば良い。

※ 拡張子 lzma の圧縮ファイルは 7-zip で展開出来る。

#Guest Additions の有効化
###2019年5月時点
起動したNomadBSDで /etc/rc.conf を編集し以下を追記

```
vboxguest_enable="YES"
vboxservice_enable="YES"
vboxservice_flags="--disable-timesync"
```

#####出典
21.5. FreeBSD as a Guest on VirtualBox™
https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/virtualization-guest-virtualbox.html

#かな漢字変換の導入
###fcitxの導入例
端末エミュレータから

```
sudo pkg install ja-fcitx-mozc zh-fcitx-configtool fcitx-qt5
```

次に.xinitrcを編集

```
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
/usr/local/bin/mozc start
fcitx -r -d
```

例えばこのような記載をウィンドウマネージャ呼び出し行より上に追記する。与える環境変数やコマンドは必要に応じて適宜変更すること。

#####出典
FreeBSD あれこれ: トップ > デスクトップ環境構築 > 共通事項 > 日本語入力・フォント > fcitx-mozc
http://freebsd.sing.ne.jp/

#####備考
※ ~~NomadBSD は startx コマンドで GUI を起動しているようである。~~そのため .xinitrc への記載が適用されるものと思われる。
![のまどびーえすでぃー03.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/410379/6cb84218-4b61-c716-1abe-683eccd33416.jpeg)

※ pstree で SLiM が使われていることを確認しました。失礼しました。

　 SLiM - ArchWiki
　 https://wiki.archlinux.jp/index.php/SLiM

　 SLiM - Wikipedia (en)
　 https://en.wikipedia.org/wiki/SLiM

#画面解像度の変更
###ARandR を使う
![のまどびーえすでぃー01.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/410379/08aaabb6-3b21-4d66-d250-b190cc742f1c.jpeg)

###xrandr を使う
例

```
xrandr --output VGA-0 --mode 1024x768
```

.xinitrc に追記することで、次回ログイン時から指定した解像度で起動可能。
#####出典
5.4. Xorg の設定 - FreeBSD ハンドブック
https://www.freebsd.org/doc/ja_JP.eucJP/books/handbook/x-config.html
###VBoxClient-allを使う
.xinitrc に、xrandrの行を記述する代わりに

```
VBoxClient-all
```

と追記する。
これによりクリップボード共有とウィンドウの自動リサイズが有効化されるとのこと。

#####出典
FreeBSD 10.0にVirtualBox-Guest Additionsを入れて使う
https://qiita.com/in_silico_/items/2ab6c37c14e777e6f48f

#####参考
VirtualBox - ArchWiki の「VirtualBox ゲストサービスを起動」の節
https://wiki.archlinux.jp/index.php/VirtualBox
https://wiki.archlinux.jp/index.php/VirtualBox#VirtualBox_.E3.82.B2.E3.82.B9.E3.83.88.E3.82.B5.E3.83.BC.E3.83.93.E3.82.B9.E3.82.92.E8.B5.B7.E5.8B.95
> VirtualBox には X11 サーバーが実際に動作中かどうか確認して全ての機能を自動的に有効にする Bash スクリプト VBoxClient-all が入っています。

便利。

#CLIのキーボードレイアウトが変
/etc/rc.conf で keymap="jp.kbd" 等としておく。

※ keymap="jp"だけでも良いっぽい。
参考
FreeBSD あれこれ: トップ > メンテナンス・トラブルシュート > boot 時のトラブル > replace keymap
http://freebsd.sing.ne.jp/

#おまけ、機械翻訳風紹介文
###俺式機械訳
遊牧民BSDはUSB光る記憶のための、自由BSDに基づいた生きているシステムです。金物類の識別と八百長によって、既成概念から自由になって働く机の上の体系として使えるように形作られているだけでなく、事実を取り戻したり、教育目的であったり、自由BSDの金物類互換性の試金石に用いるといった様々な用途でご利用になれます。
###Googleせんせー（2019/05/09）
NomadBSDはFreeBSD®をベースにしたUSBフラッシュドライブ用のライブシステムです。自動ハードウェア検出とセットアップと一緒になって、そのまま使用できるデスクトップシステムとして使用するように設定されていますが、データ回復、教育目的、またはFreeBSD®のハードウェア互換性のテストにも使用できます。
###逆襲のexcite翻訳（2019/05/09）
NomadBSDはUSBフラッシュドライブのためのライブのシステムであり、FreeBSDRに基づく。自動的なハードウェア検出とセットアップとともに、それは、ボックスの外で作動するデスクトップのシステムとして使われるように設定されるけれども、また、教育的な目的にわたって、またはFreeBSDRのハードウェア互換性をテストするために、データリカバリのために使われうる。
###俺式普通訳＋ノムリッシュ翻訳（2019/05/09）
NomadBSD は USB ホーリジャメモリ向けの FreeBSD® に基づくライブ魔導システム（プロムナード向け FreeBSD 狂信者の集会 コンバートギア …噂には聞いていたが、これ程とはな……）――ということだ。ハードウェアの自律型認識とオートマタセットアップにより、デスクトップ「機構」としてただちにお使い頂けるのみならば……私がきっと……！お前を、見つけだしてやるッ……！ず、仮想化思念体復旧や教育用途、これは呪いか、それとも罰か FreeBSD® のハードウェア闇を武器にかえる互換性の己が知恵を矛にして戦う絶望遊戯にもお使い神の世界けようとも、人類は自らを貪り続ける。。

※ ノムリッシュ翻訳にかけたら思いのほかドラマチックに。せっかくなので、いつかショートストーリーに仕上げたく思います。