作成開始 : 平成31年(2019年) 04月01日(月) 最終更新 : 平成31年(2019年) 04月24日(水)

FreeBSD 12 + Oracle VM VirtualBox を GUI で使ってみた。


現在使用中の仮想用PCには以下を実装している。

1.メールサーバー+プライマリDNSサーバー+NTPサーバー
2.セカンダリDNSサーバー
3.Delegateによるリバースプロキシサーバー
4.メインのwebサーバー
5.FreeNAS (DLNA、SMB)
※FreeNAS以外はFreeBSDです。

この環境を構築したのが平成24年なので、もう6年くらい稼働しています。
途中、ハードウェアが故障し同じ機種のハードウェアにHDD乗せ換えしました。つまり、HDDはそろそろ限界を迎えつつあると思います。
なので、ここいらで少しずつ別のPCを仮想用PCとして作っていこうと思いました。

【ホストPC】

本来は高速でマルチコアなCPUと潤沢なメモリ実装できるPCにすべきですが、新 たに購入するにはそれなりに費用がかかります。
そこで、これまた無料で頂戴した以下のPCに実装してみることにします。(メモ リ、HDDは購入して増設しました)

機種 : FMV BIBLO NF70Y

CPU : Core 2 Duo T7250 2.0GHz/2コア
周波数 : 2.0GHz
メモリ : 4GB
HDD : 160GB

現在稼働のホストは、OSがFreeBSD 9.0 RELESE で CUI、VirtualBox はコマンドベースで構築・運用しています。
今度はGUIベースで構築・運用できたらいいなぁーと思いました。


1.FreeBSD 12.0 RELEASE のインストール

(1)インストール・ディスクの準備
ダウンロードは「FreeBSD プロジェクト」 -> 「FreeBSD を入手する」からします。
私の場合、インストールDVDを作りたかったので「インストーライメージ -> amd64 」です。
ダウンロードしたisoファイルをDVDに書いてインストールDVDを作成します。USB メモリスティックに書くと高速にインストールできるでしょう。
(2)インストール(すいませんスクリーンショット無しでテキストのみです)
a.インストールディスクの起動
BIOS 画面で、CD/DVDドライブからの起動が有効になっていることを確認したら、ドライブにインストルディスクを挿入して、起動します。

少したつと起動画面が表示されます。

「default」で進めますので「Enter」押します。
b,起動モードの選択
ここではインストール作業を行いますので「Install」のまま「Enter」押します。
c.キーマップの選択
キーマップの変更画面が表示されます。
「↓」で「Japanese 106」「Japanese 106x」のうち使用しているものを選択し「Enter」押します。
キーボードが選択された状態で「Enter」押すと別画面でキーの入力を行い適切なエコーバックが行われることを確認できます。
問題がなければ最上位の「Continue with ... keymap」を選択して「Enter」押します。
d.ホスト名の入力
ホスト名の入力画面が表示されますのでホスト名を入力して「Enter」押します。
e.インストール対象の選択
ディフォルトで「kernel-dbg」「lib32」が選択されています。

pkg を使う予定であれば「ports」のチェックは必要ありませんが、わたしは使うので、チェックをしました。
よほどディスクが小さいのでなければ、後々のために「src」のチェックも入れておいた方がいいかと思います。

※以前、9.0 の時に OSインストール時に src を選択しなかったら VirtualBox を Portsからインストールしようとした時にエラーが出てsrc を追加でインストールした。
f.パーティション入力方法選択
ディフォルトで「Auto (UFS)」が選択されています。

他には・・・・

・Manual     Manual Disk Setup (experts)
・Shell      Open shell and partition by hand
・Auto (ZFS)  Guided Root-on-ZFS

特にこだわりがなければ最上位の「Auto (UFS)」でいいかと思います。

「Auto(UFS)」を選択した場合、実装メモリを判断して適切な swap 領域を作成し、あとは boot パーティションと root パーティションのみの構成となります。
ディスクが容量・早さとも十分であれば、これでいいと思います。

該当のを選択し「Enter」押します。

すると、これでいいかみたいな選択になるので「Entire Disk」をマークしてして「Enter」押します。
g,フォーマットの選択
HDDが160GBなので「MBR」を選択しました。2TB超える場合は「GPT」だそうです。
該当形式選択で「Enter」押します。

ディスクの構成が表示されます。
構成を変更したい場合は<Create><Delete><Modify>等々で操作します。
OKであれば<Finish>をマークして「Enter」押します。

確認画面となりますので <Commit> マークし「Enter」押します。

フォーマットが開始され、その後ファイルのインストールが始まります。
h.パスワード入力
ひととおり、システムファイルのインストールが終わると、root パスワードの入力画面になります。
root パスワードを確認入力を含めて2回入力します。
i.ネットワーク設定
ネットワークインタフェースの設定画面が表示されます。
認識されたネットワークインタフェースが表示されますので、適切なインタフェースを選択して「Enter」押します。

IPv4 設定を行うかきいてきます。使用するのであれば [Yes] を選択して「Enter」押します。

DHCP を使用するかきいてきます。
自分は使用しないので <No> を選択し「Enter」押します。

※DHCP を使用する場合は、ネットワーク検索の画面が表示され、使用しない場合はネットワークアドレス入力画面が表示されますので、入力していきます。

IPv4 の設定が終わったら IPv6 設定を行うかきいてきます。IPv4 と同じ要領で設定します。(ここでは「No」を選んで進めていきます)

resolv(DNSサーバーのアドレス) の設定をきいてきます。
わからない場合はそのまま「OK」にカーソルを合わせて「Enter」押します。
j.タイムゾーンの設定
UTCでいいかきいてくるので <No> を選択し「Enter」押します。

「Asia」を選択して「Enter」押します。

「Japan」を選択して「Enter」押します。

'JST'でよいかきいてくるので <Yes> 選択し「Enter」押します。

日付設定画面が表示されるので、合ってなければ <Set Date> で設定します。
合っていれば <Skip> で「Enter」押します。

時間設定画面が表示されるので、合ってなければ <Set Time> で設定します。
合っていれば <Skip> で「Enter」押します。
k.初回起動サービスの選択
初回起動時に起動するサービスをきいてきます。
デフォルトで「sshd」「dumpdev」が選択されています。
自分はこれに加え「ntpdate」を選択しました。
よければ「Enter」押します。
l.システムセキュリティ強化オプションの選択
システムセキュリティ強化オプションの選択画面が表示されます。
とりあえずそのまま「Enter」押しました。
m.初期ユーザの作成
初期起動時にユーザを追加しておくかきいてきます。

adduser コマンドが起動されます。

自分は ssh で teraterm 使ってメンテとかする方が楽なので wheel グループで作成します。
n.最終確認
インストール時にやり残したことがないか、最終確認画面が表示されます。

問題がなければ「OK」を選択して「Enter」押します。
(大体のことはインストール後に変更できます)

再度、確認画面が現れるので <No> 選択で「Enter」押します。

reboot するかきいてくるので <Reboot> 選択で「Enter」押します。
インストールDVDを取り出しておきます。

reboot 後にログイン画面が表示されれば OS のインストールは完了です。
・・・とまぁ、こんな感じです。

2.SSHでリモートログインを許可する (sshd)

後でGUIでのリモート接続を設定しますが、自分は Tera Term を使ってSSHでリモートログインしての操作が早いし慣れているのでその設定をします。
LAN内なのでプレインテキストでパスワード方式により接続します。
最初のインストールで SSH を有効にしているので /etc/rc.conf に 以下記載があります。
sshd_enable="YES"
次に、sshdの設定ファイルである「/etc/ssh/sshd_config」を編集します。
#PermitRootLogin no
↓変更(コメントアウト#を除き : ←root でのログインの不可 )
PermitRootLogin no
#PasswordAuthentication no
↓変更(コメントアウト#を除き no -> yesにする : ←パスワード認証の許可 )
PasswordAuthentication yes
#PermitEmptyPasswords no
↓変更(コメントアウト#を除き : ←パスワード無しの不可 )
PermitEmptyPasswords no
sshdを再起動します。
# service sshd restart
windows から Tera Term を使って接続します。

 ↑
「続行(C)」をクリックします。

  ↑
「OK」をクリックします。

  ↑
接続できました。

3.デスクトップの構築

デスクトップとして「xfce」を導入してみます。
(1)パッケージのアップデート
「xfce」のインストール前にパッケージのアップデートをします。
# pkg update
初回の pkg インストールになりますので、パッケージマネージャからのインストールが始まります。
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: -> yを入力して Enter押します。
パッケージの更新が始まります。
(2)portsの更新
pkgでは提供されていないものもあるので、ここではとりあえずportsの最新を反映して更新しておきます。
portsnap は最初だけ全ての ports ツリー全体を portsnap.conf ファイルで指定したサイト (デフォルトでは portsnap.FreeBSD.org)から取得し、ディスク上に展開します。
# portsnap fetch
# portsnap extract
2回目以降は・・・
# portsnap fetch
# portsnap update
portsを厳密に管理する場合、もう少し細かい設定とか順序あります。
(3)パッケージのインストール
# pkg install xorg
# pkg install japanese/font-std
# pkg install ja-fcitx-mozc
# pkg install x11/slim
# pkg install x11-wm/xfce4
(4)/etc/rc.conf 編集
slim_enable="YES"
dbus_enable="YES"
polkitd_enable="YES"
(5)ユーザ用初期化ファイルの作成
ユーザのホームディレクトリに .xinitrc というファイルを作成し以下を記述します。
#!/bin/sh
# set locale
export LC_ALL=ja_JP.UTF-8
export LANGUAGE=ja_JP.UTF-8
export LANG=ja_JP.UTF-8
#
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=xim
export XMODIFIERS=@im=fcitx
/usr/local/bin/mozc start
fcitx -r -d
#
setxkbmap -layout jp
#
exec $1
(6)xfce 起動
# service dbus start
# service slim start
うまくできていれば、ログイン画面が表示されます。
ユーザ名・パスワードを入力してログインします。
(7)初回ログイン時の設定
初回ログイン時は「ようこそXfceへ初めてパネルが起動されました」ダイアログが表示されます。

ここは、「ディフォルト設定を使用する」をクリックします。
後はOS再起動して Xfce 画面が表示されればOKです。
デスクトップは色々とカスタマイズ可能です。

4.パッケージ管理 (OctoPkg)

OctoPkg はパッケージ管理(pkgng) のグラフィカルな管理ツールです。
OctoPkg は root ユーザ権限で動作させる必要があることから、その操作を可能にするパッケージ gksu も同時にインストールします。
# pkg install octopkg
# pkg install gksu
インストールが終われば「アプリーケーション」->「システム」に追加されています。

5.リモート接続 (TigerVNC)

いずれ仮想マシンをインストールしてサーバーとして稼働させるつもりですが、その際居間と離れた場所に設置します。
SSH でもいいですがGUIで管理したいのでリモート接続できるようにします。
VNCサーバーにも色々ありますが、FreeBSDでの最近のドキュメントがなかなか見つけられなかったので、 Linux 向けの記事を参考にしてインストール、設定してみます。
pkg に見つからなかったので Ports からインストールしてみます。
せっかくなので表示された選択から viewer も入れてみます。
以外の選択は全てディフォルトとしました。
# cd /usr/ports/net/tigervnc
# make
# make install
ユーザーパスワードファイルを作成します。作成されたファイルは ~/.vnc に保存されます。
$ vncserver
パスワードをきいてくるので2回入力します。(view only のもきいてきますので適宜)
tigervnc には物理的な X セッションを直接操作できる x0vncserver バイナリが入っています。
以下のようにして実行してみます。
$ x0vncserver -display :0 -passwordfile ~/.vnc/passwd
そして、他のPCから VNC Viewer から接続してみます。

  ↑
できました。
自動起動したいので ~/.xinitrc に x0vncserver -display :0 -passwordfile ~/.vnc/passwd & を追加します。
一旦ログアウト -> GUIログイン -> 他のPCから VNC Viewer から接続ができたらOKです。

6.リモートデスクトップ接続(xrdp)

Windowsマシンからリモートデスクトップ接続ができたら便利かなぁーと思い試してみました。
パッケージからインストールしてみます。
# pkg install net/xrdp
リモートデスクトップ接続時に日本語端末として接続するため以下編集します。
/usr/local/etc/xrdp/startwm.sh

#. /etc/environment
#export PATH=$PATH
#export LANG=$LANG

以下のように1行追加

#. /etc/environment
#export PATH=$PATH
#export LANG=$LANG
export LANG=ja_JP.UTF-8
/etc/rc.confに以下追加します。
xrdp_enable="YES"
xrdp_sesman_enable="YES"
OS再起動します。
そして Windowsマシンからリモートデスクトップ接続してみます。

  ↑
接続指定の画面になります。
あれ! sesman が選択の中にありません。

Vnc-any で IPアドレス(名前だと接続できず)、パスワードを入力して「OK」押します。

 ↑
接続してコントロールできたけど画面が小さいっすね。
この辺は後で調べてみます。・・・・っていうかこれで正解みたいです。

これって、リモートデスクトップ接続 -> VMCサーバー のようです。
事前に VNC をインスールしておかないといけないですね。

7.Oracle VM VirtuallBox のインストール

いよいよ Oracle VM VirtuallBox をインストールしてみます。
結構な時間かかります。
# cd /usr/ports/emulators
# cd virtualbox-ose
# make
# make install
表示された選択は全てディフォルトのままとしました。
/boot/loader.conf に以下を追記します。
vboxdrv_load="YES"
さらに、/etc/rc.conf に以下を追記します。ネットワークをブリッジ接続とします。
vboxnet_enable="YES"
OSインストール時に作成した初期ユーザで実行したいのでpw groupmod vboxusers -m '作成したユーザ名'としました。
これにより、/etc/group の vboxusersグループのメンバとして登録されます。
※VirtuallBox 専用の実行ユーザを作成してもいいと思います。
ここでOS再起動します。
起動後ログインし、「アプリケーション」 -> 「システム」 -> 「VirtualBox」で起動したらインストール成功です。

 ↑
起動できました。
仮想マシンを作成するディレクトリを作成します。管理のし易さから階層の浅い場所に作っておくと便利と思います。
# mkdir /var/HardDisks
# mkdir /var/Machines
ディレクトリの権限を仮想マシンを扱うユーザ名にします。
# chown <仮想マシンを使う一般ユーザのユーザ名> /var/HardDisks
# chown <仮想マシンを使う一般ユーザのユーザ名> /var/Machines
「ファイル」->「環境設定」で仮想マシンの場所を設定します。
仮想OSをインストールする。・・・は左のリンク からどうぞ!
仮想OSを別PCに移行する。(仮想アプライアンスのエクスポート、イ ンポート) ・・・は左のリンクからどうぞ!!

サイトトップへ