FreeBSD 14.3 RELEASE 公式仮想イメージをVirtualBox で動かす
tag: freebsd-14.3, freebsd, virtualbox, FreeBSD-14.3-for-VirtualBox
情報源の通り操作すれば動く。
以下、情報源のままなのは心苦しいが転写しておく。
■環境情報
■FreeBSD公式イメージの入手
Oracle Virtual Box でイメージを可変サイズで取り扱うため vhd イメージをダウンロードする。
xz形式の展開は7-Zipなどを使う。手元では msys2 の xz コマンドを使った。
■ディスクを仮想メディアマネージャーに追加
VirtualBox の[ファイル]→[ツール]→[仮想メディアマネージャー]で、仮想メディアマネージャーのダイアログを開き、ダウンロードした vhdファイルを[追加]ボタンで追加。
プロパティからサイズを80GBに増やす。(一度増やすと、減らせないので注意)
OS起動時に自動的にディスクサイズいっぱいまでファイルシステムを拡張するのでここでディスクサイズが決まる。
■仮想マシンの作成
VirtualBox メニューから[仮想マシン]→[新規]を選択して[仮想マシンの作成]ダイアログを表示。
を指定して、[完了]ボタンを押すと仮想マシンが作成される。
作成した仮想マシンを選択して[設定]ボタンを押下。
■起動
起動してみる。
マルチユーザーモードで起動する場合は、FreeBSDのbootメニューが表示されている10秒間の間にEnterキーを押す。
Enterキーを押さないデフォルトではシングルユーザーモードで起動してくる。(マジかよ)
note: シングルユーザーモードでは各種サービスや各種デーモンは起動しない。virtualbox-ose-additionsサービスは起動して欲しいのでマルチユーザーモードで起動して各種サービスを起動させる。
順調ならばログインプロンプトまで進む。
ログインは root ユーザーでパスワードなしで行える。
■virtualbox-ose-additions のインストール
FreeBSD公式イメージはvirtualboxゲスト用の拡張 virtualbox-ose-additions が入っていない。
シームレスなマウス操作やウィンドウサイズに合わせたデスクトップの解像度変更、共有フォルダなどが使いたい場合はインストールする。
パッケージは以下のどちらか。
GUIをインストールしないならば -nox11 をインストールする。
virutalbox-ose-additionsのインストールはpkgコマンドを使う。以下に例を示す。
pkg install virutalbox-ose-additions
そのままだと有効にならないので、以下の操作を行い、サービスを有効化し、再起動を行う。
sysrc vboxguest_enable="YES" sysrc vboxservice_enable="YES" reboot
起動時に以下のように表示されていればサービスが開始されている。
Starting vboxservice.
■日本語キーボード設定
日本語キーボードを使用している場合は、以下の設定を行って再起動する。
sysrc keymap="jp" reboot
■ホスト名設定
必要であればホスト名を設定する。ここではfreebsd68.area54.localとした。
以下の設定を行って再起動する。
sysrc hostname="freebsd68.area54.local" reboot
■bashのインストール
pkgコマンドを使ってbashをインストールする。
pkg install bash
■rootパスワード設定
passwd コマンドで root ユーザーのパスワード変更を行う。
■一般ユーザー作成
普段使っている自分の一般ユーザー(george)とグループ(george)を追加しておく。
pwコマンドを使った作成例は以下。
# グループの作成 pw groupadd -n george -g 1001 # ユーザーの作成 pw useradd -n george -u 1001 -b /home -e 0 -p 0 -g 1001 -G operator,wheel -m -s /usr/local/bin/bash # コマンド実行後パスワードを聞いてくるので入力する
■一般ユーザーの秘密鍵・公開鍵作成
今は root で操作しているので、su コマンドでユーザーを切り替える。
su george cd
sshで接続するため、一般ユーザーの秘密鍵・公開鍵を生成する。 パスフレーズなし、PEM形式で生成している。
ssh-keygen -t rsa -m PEM -N "" -f ~/.ssh/id_rsa
自分の公開鍵を authorized_keys に追加しておく。
cd ~/.ssh cat id_rsa.pub >> authorized_keys cd
ユーザー george の操作は完了。exitでユーザーのシェルを終了してrootに戻る。
exit
■sshdの起動設定
FreeBSDマシンから以下のコマンドを入力して再起動。sshdが起動するようにする。
sysrc sshd_enable="YES" reboot
■一般ユーザー作成(vagrant)
vagrant用のboxイメージを前提とするセットアップスクリプトを使っている場合は、一般ユーザー(vagrant)とグループ(vagrant)を追加しておく。
pwコマンドを使った作成例は以下。
# グループの作成 pw groupadd -n vagrant -g 1002 # ユーザーの作成 pw useradd -n vagrant -u 1002 -b /home -e 0 -p 0 -g 1002 -G operator,wheel -m -s /usr/local/bin/bash # コマンド実行後パスワードを聞いてくるので入力する
■sudoインストールと設定
pkg install -y sudo
一般ユーザーからパスワード無しでrootになれる設定を入れる。
visudoコマンドで設定ファイルを編集する。以下の行を設定ファイルの最後に追加する。
george ALL=(ALL) NOPASSWD: ALL vagrant ALL=(ALL) NOPASSWD: ALL
■VirtualBox ポートフォワーディングの設定
ホストマシン:2222 から ゲストFreeBSDマシン:22 にポート転送する設定を行う。
VirtualBoxマネージャー画面の[設定]→[ネットワーク]→[ポートフォワーディング]ボタンを押下。
ポートフォワーディングルール画面にて、画面右の[+]を押下。
以下のルールを設定する。
■共有フォルダ
共有フォルダを設定するには、仮想マシン起動中のウィンドウから[デバイス]→[共有フォルダー]→[共有フォルダー設定]を選択する。
新規共有フォルダをホストのWindows側のフォルダを指定して追加。設定例を以下に示す。
ゲストの FreeBSD で以下のコマンドを入力すると、FreeBSD側では /vboxshare として Windowsのフォルダを参照することができるようになる。
mkdir /vboxshare mount -t vboxvfs vboxshare /vboxshare
■ゲストFreeBSDマシンの一般ユーザーの秘密鍵の持ち出し
ここでは共有フォルダ経由でゲストFreeBSDマシンのユーザーの秘密鍵を持ち出す想定とする。
持ち出し(ファイルコピー)のコマンド例を示す。
cp ~george/.ssh/id_rsa /vboxshare/freebsd68-george-privatekey.pem
■ゲストFreeBSDマシンへのssh接続
ホストマシンから以下のコマンドでssh接続ができる。
ssh -i <持ち出した秘密鍵ファイル名> george@localhost -p 2222
■VirtualBoxのコマンドラインインターフェースであるVBoxManageコマンドを使って仮想マシンの起動と電源オフ
ホストマシンの管理者権限を持つpowershellなどから以下。
${vboxmanage_vmname}には、仮想マシン作成時につけた名前を指定する。
# 仮想マシン起動 VBoxManage startvm ${vboxmanage_vmname}
# 仮想マシン電源オフ VBoxManage controlvm ${vboxmanage_vmname} acpipowerbutton