FreeBSD 15.0 RELEASE 公式仮想イメージをVirtualBox で動かす
tag: freebsd-15.0, freebsd, virtualbox, FreeBSD-15.0-for-VirtualBox
情報源の通り操作すれば動く。
以下、情報源のままなのは心苦しいが転写しておく。
■環境情報
■FreeBSD公式イメージの入手
Oracle Virtual Box でイメージを可変サイズで取り扱うため vhd イメージをダウンロードする。
xz形式の展開は7-Zipなどを使う。手元では msys2 の xz コマンドを使った。
展開済みのvhdファイルは後でVirtualBoxで使うので以下の場所に展開して置いておく。
# コマンド例 cd $HOME mkdir -p 'VirtualBox VMs' cd 'VirtualBox VMs' mkdir -p 69-virtualbox-freebsd150 cd 69-virtualbox-freebsd150 cp ~/Downloads/FreeBSD-15.0-RELEASE-amd64-zfs.vhd.xz . xz -d FreeBSD-15.0-RELEASE-amd64-zfs.vhd.xz
■ディスクを仮想メディアマネージャーに追加
VirtualBox の[ファイル]→[ツール]→[メディア]を選択、仮想メディアマネージャーの画面を開き、上で展開した vhdファイルを[追加]ボタンで追加。
プロパティからサイズを80GBに増やす。(一度増やすと、減らせないので注意)
OS起動時に自動的にディスクサイズいっぱいまでファイルシステムを拡張するのでここでディスクサイズが決まる。
■仮想マシンの作成
VirtualBox メニューから[仮想マシン]→[新規]を選択して[仮想マシンの作成]ダイアログを表示。
を指定。[完了]ボタンを押すと仮想マシンが作成される。
■起動
起動してみる。
VirtualBox マネージャー画面の左ペインにて仮想マシンを選択。今回の仮想マシンを選択して起動ボタンをクリック。
マルチユーザーモードで起動する場合は、FreeBSDのbootメニューが表示されている10秒間の間にEnterキーを押す。(10秒待ってもいいけど)
順調ならばログインプロンプトまで進む。
ログインは root ユーザーでパスワードなしで行える。
■日本語キーボード設定
日本語キーボードを使用している場合は、以下の設定を行って再起動する。
余談だが、 「=」は日本語キーボードでは「^」の位置、「"」は日本語キーボードでは「Shift+:」の位置に相当する。
sysrc keymap="jp" reboot
■ホスト名設定
必要であればホスト名を設定する。ここではfreebsd69.area54.localとした。
以下の設定を行って再起動する。
sysrc hostname="freebsd69.area54.local" reboot
■bashのインストール
pkgコマンドを使ってbashをインストールする。
pkg install -y bash
■一般ユーザー作成
普段使っている自分の一般ユーザー(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,video -m -s /usr/local/bin/bash
ユーザーgeorgeのパスワードを設定しておく。
passwd george # georgeのパスワードを入力
■一般ユーザーの秘密鍵・公開鍵作成
今は 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
■sudoインストールと設定
FreeBSDマシンから実施。
pkg install -y sudo
一般ユーザーからパスワード無しでrootになれる設定を入れる。
visudoコマンドで設定ファイルを編集する。以下の行を設定ファイルの最後に追加する。
george ALL=(ALL) NOPASSWD: ALL vagrant ALL=(ALL) NOPASSWD: ALL
■VirtualBox ポートフォワーディングの設定
ホストマシン:2222 から ゲストFreeBSDマシン:22 にポート転送する設定を行う。
VirtualBoxマネージャー画面の[設定]→[ネットワーク]→[ポートフォワーディング]ボタンを押下。
ポートフォワーディングルール画面にて、画面右の[+]を押下。
以下のルールを設定する。
■sshでホストマシンから接続。
接続コマンド例。
ssh -o StrictHostKeyChecking=no -o PasswordAuthentication=yes -o UserKnownHostsFile=/dev/null george@localhost -p 2222
上で設定したユーザーgeorgeのパスワードを入力するとsshログインできる。
■一般ユーザー作成(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
■ホストマシンの/etc/hostsに追加
以下の行を C:\Windows\System32\drivers\etc\hostsに追加。
127.0.0.1 freebsd69.hyperv.local freebsd69
■ゲストFreeBSDマシンの一般ユーザーの秘密鍵の持ち出し
ここでは共有フォルダ経由でゲストFreeBSDマシンのユーザーの秘密鍵を持ち出す想定とする。
FreeBSDマシンにて、以下のコマンドで秘密鍵を表示させテキストとしてコピーしてファイルに保存する。
保存ファイル名の例:freebsd69-george-privatekey.pem
cat /home/george/.ssh/id_rsa
■ゲストFreeBSDマシンへのssh接続
ホストマシンから以下のコマンドでssh接続ができる。
ssh -i <持ち出した秘密鍵ファイル名> -o StrictHostKeyChecking=no -o PasswordAuthentication=no -o UserKnownHostsFile=/dev/null george@freebsd69 -p 2222
■VirtualBoxのコマンドラインインターフェースであるVBoxManageコマンドを使って仮想マシンの起動と電源オフ
ホストマシンの管理者権限を持つpowershellなどから以下。
${vboxmanage_vmname}には、仮想マシン作成時につけた名前を指定する。
# 仮想マシン起動
VBoxManage startvm ${vboxmanage_vmname}
# 仮想マシン電源オフ
VBoxManage controlvm ${vboxmanage_vmname} acpipowerbutton