銀河の歴史がまた1ページ(日記)

Last Update (2026/07/19 18:26:39)
1997.09.06から数えて counter 番目のアクセスです。

ミラーサイト [www.ceres.dti.ne.jp] [yk.rim.or.jp]

[ホームページ] [日記] [日記ファイル一覧] [読んでいる日記] [FreeBSD] [FreeBSD LINK] [検索]

ページ内目次


■ 宇宙暦 2026.06.28

http://www.ceres.dti.ne.jp/~george/jdiary20260628-freebsd-15.1-virtualbox.html#20260628

2026.06.28(日) 00:37:12 FreeBSD 15.1-RELEASE 公式仮想イメージを Oracle VirtualBox で動かす

FreeBSD 15.1-RELEASE 公式仮想イメージを Oracle VirtualBox で動かす

tag: freebsd-15.1, freebsd, virtualbox, FreeBSD-15.1-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 51-virtualbox-freebsd151
cd 51-virtualbox-freebsd151
cp ~/Downloads/FreeBSD-15.1-RELEASE-amd64-zfs.vhd.xz  .
xz -d FreeBSD-15.1-RELEASE-amd64-zfs.vhd.xz 

■ディスクを仮想メディアマネージャーに追加

VirtualBox の[ファイル]→[ツール]→[メディア]を選択、ハードディスクタブを選択、[追加]ボタンで開くダイアログに上で展開したvhdファイルを指定。

追加したハードディスクを選択し、右クリック→プロパティからサイズを80GBに増やす。(一度増やすと、減らせないので注意)

OS起動時に自動的にディスクサイズいっぱいまでファイルシステムを拡張するのでここでディスクサイズが決まる。

■仮想マシンの作成

VirtualBox メニューから[仮想マシン]→[新規]を選択して[仮想マシンの作成]ダイアログを表示。

を指定。[完了]ボタンを押すと仮想マシンが作成される。

■起動

起動してみる。

VirtualBox マネージャー画面の左ペインにて仮想マシンを選択。今回の仮想マシンを選択して起動ボタンをクリック。

マルチユーザーモードで起動する場合は、FreeBSDのbootメニューが表示されている10秒間の間にEnterキーを押す。(10秒待ってもいいけど)

順調ならばログインプロンプトまで進む。

ログインは root ユーザーでパスワードなしで行える。

■日本語キーボード設定

日本語キーボードを使用している場合は、以下の設定を行って再起動する。

余談だが、 「=」は日本語キーボードでは「^」の位置、「"」は日本語キーボードでは「Shift+:」の位置に相当する。

sysrc keymap="jp"
reboot

■ホスト名設定

必要であればホスト名を設定する。ここではfreebsd51.area54.localとした。

以下の設定を行って再起動する。

sysrc hostname="freebsd51.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    freebsd51.hyperv.local  freebsd51

■ゲストFreeBSDマシンの一般ユーザーの秘密鍵の持ち出し

ここでは共有フォルダ経由でゲストFreeBSDマシンのユーザーの秘密鍵を持ち出す想定とする。

FreeBSDマシンにて、以下のコマンドで秘密鍵を表示させテキストとしてコピーしてファイルに保存する。

保存ファイル名の例:freebsd51-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@freebsd51 -p 2222

■VirtualBoxのコマンドラインインターフェースであるVBoxManageコマンドを使って仮想マシンの起動と電源オフ

ホストマシンの管理者権限を持つpowershellなどから以下。

${vboxmanage_vmname}には、仮想マシン作成時につけた名前を指定する。

# 仮想マシン起動
VBoxManage  startvm  ${vboxmanage_vmname}
# 仮想マシン電源オフ
VBoxManage  controlvm  ${vboxmanage_vmname}   acpipowerbutton

■ 宇宙暦 2026.07.01

http://www.ceres.dti.ne.jp/~george/jdiary20260628-freebsd-15.1-virtualbox.html#20260701

2026.07.01(水) 17:47:24 emacsからja-yc.elを(無理矢理)使う

emacsからja-yc.elを(無理矢理)使う

tag: freebsd-15.1, freebsd, virtualbox, FreeBSD-15.1-for-VirtualBox, emacs

割と無理矢理だけどとりあえず動いたのでメモ。

ja-yc.el パッケージの特徴は以下。

他の環境だと体験できないなんとも不思議な変換感覚になる。

yc.elの本家サイトの最終更新が2010年で、他にも色々動かない所があると思うので、あまりオススメはできないが面白いのでインストールしている。

■ パッケージのインストール。

sudo pkg install -y ja-canna-server ja-canna-lib ja-cannadic
sudo pkg install -y ja-yc.el ja-icanna

/etc/rc.confにcannaサーバ起動設定を追加。

sudo sysrc canna_enable="YES"

再起動するか、以下のコマンドでcannaサーバを起動する。

sudo service canna start

■ yc.el にパッチを適用する

■ yc.el パッチ 内容メモ

--- yc.el.orig	2026-07-11 05:02:06.000000000 +0900
+++ yc.el	2026-07-16 18:06:33.395200000 +0900
@@ -370,6 +370,10 @@
   (if (waiting-for-user-input-p)
       (put 'yc-server 'init nil)
     (signal 'yc-trap-server-down (list yc-server-host))))
+
+
+(defun process-kill-without-query (process &optional flag)
+  (set-process-query-on-exit-flag process flag))
 
 (defun yc-server-open ()
   "cannaserver との通信を開始する関数"
@@ -383,7 +387,8 @@
 		     (make-network-process
 		      :name "canna"
 		      :buffer yc-debug
-		      :remote "/tmp/.iroha_unix/IROHA")
+                     :remote "/tmp/.iroha_unix/IROHA"
+                     :service 5680)
 		   (let ((process-connection-type nil))
 		     (start-process "canna" yc-debug yc-icanna-path))))
 		(t (with-timeout (1 nil)
@@ -3232,6 +3237,7 @@
 
 (defun yc-input-mode-function ()
   (setq inactivate-current-input-method-function 'yc-inactivate)
+  (setq deactivate-current-input-method-function 'yc-inactivate)
   (setq current-input-method-title "あ")
   (yc-open)
   (remove-hook 'input-method-activate-hook 'yc-input-mode-function))
@@ -3247,16 +3253,18 @@
     (if yc-input-mode
 	(progn
 	  (setq inactivate-current-input-method-function 'yc-inactivate)
+	  (setq deactivate-current-input-method-function 'yc-inactivate)
 	  (setq current-input-method-title "あ")
 	      (add-hook 'input-method-activate-hook 'yc-input-mode-function);)
 	  (if (eq (selected-window) (minibuffer-window))
 	      (add-hook 'minibuffer-exit-hook 'yc-exit-from-minibuffer)))
       (setq inactivate-current-input-method-function nil)
+      (setq deactivate-current-input-method-function nil)
       (setq current-input-method-title nil))
     (force-mode-line-update t));)
 
 (defun yc-exit-from-minibuffer ()
-  (inactivate-input-method)
+  (deactivate-input-method)
   (when (<= (minibuffer-depth) 1)
     (remove-hook 'minibuffer-exit-hook 'yc-exit-from-minibuffer)))
 

■ .emacsに以下を記載。

;;
;; Canna + ja-yc.el を使う
;;

;; yc-el の設定。 ycロード前に実施。デバッグ用
;;(setq yc-debug "*yc-debug*")
;;(setq debug-on-error t)

(set-language-environment "japanese")

;; yc-elのロード前に設定
(setq yc-server-host nil) ;; nilの場合はlocalhost
(setq yc-canna-lib-path "/usr/local/share/canna/") ;; default.canna があるディレクトリ
(setq yc-canna-dic-path "/usr/local/share/canna/dic/") ;; default.cbp があるディレクトリ
(setq yc-icanna-path "/usr/local/bin/icanna") ;; unix domain socket 通信支援バイナリコマンドのパス

;; yc-el のロード
(load "yc") ; これでフェンスモードは使用可能

;; フェンスモードを使用 (フェンスモードは変換中の文字の前後を | で囲む表示を行う)
(setq yc-use-fence t)

;; yc-mode トグルするキー設定 (Ctrl - \)(yc-mode ONでは、Ctrl-Jで変換が走る)
(global-set-key "\C-\\" 'yc-mode)

;; デフォルトの日本語入力メソッドを Canna + yc.el に
(setq default-input-method 'japanese-yc)

■ emacs 上でのyc.elの使用方法

emacs -nw hoge.txt などとして新規テキストファイルを編集する emacs を起動。

上の .emacs 設定では、各bufferはyc-modeにはなっていないので、 M-x yc-mode または 上の設定では Ctrl - \ として ycモードにする。

ローマ字で「nihonngo」とタイプした後に Ctrl-J を入力すると、「日本語」に変換される。

■ 以下個人的なメモ

yc.el.patch の適用方法

# rootになる
sudo bash

# ファイル名初期設定
YC_DIFF_FILE=/home/george/yc.el.patch
for i in /usr/local/share/emacs/site-lisp/yc /usr/local/share/emacs/*.*/site-lisp/yc
do
    if [ -f "$i/yc.el" ] ; then
        YC_DIR="$i"
        break
    fi
done
echo YC_DIR is $YC_DIR

# patch を適用する場合は以下を実行
if [ -d "$YC_DIR" ] ; then
    cd "$YC_DIR"
    chmod +w "$YC_DIR/yc.el"
    patch < $YC_DIFF_FILE
    /bin/rm yc.elc
    rm -rf /home/george/.emacs.d/eln-cache
    rm -rf /root/.emacs.d/eln-cache
fi

# patchを作成する場合は以下を実行
if [ -d "$YC_DIR" ] ; then
    cd "$YC_DIR"
    diff -uw yc.el.orig yc.el > $YC_DIFF_FILE
    chown george $YC_DIFF_FILE
fi

■ 宇宙暦 2026.07.18

http://www.ceres.dti.ne.jp/~george/jdiary20260628-freebsd-15.1-virtualbox.html#20260718

2026.07.18(土) 10:46:17 portsソース取得

portsソース取得

tag: freebsd-15.1, freebsd, FreeBSD-15.1-for-VirtualBox, ports

■ ports コレクションのソースを拾う

/usr/ports/japaneseの下に日本語関係のパッケージの元ネタが展開されるので、日本語対応済みのソフトを探す時に使う

※fcitx5-anthyはコレで探した

その他、ライセンスの関係でソースコードのみ配布になっているパッケージのインストールにも使える

注意:portsからインストールは基本的には避けること。バイナリパッケージ作成時のコンパイル時オプションと異なるものをインストールした場合、他のバイナリパッケージとの動作整合性が取れなくなるので。

git コマンドを使って git clone する。

sudo bash

pkg install -y git

mkdir -p /usr/ports

git clone --depth 1 https://git.FreeBSD.org/ports.git /usr/ports

2026.07.18(土) 11:23:21 virtualbox-ose-additions-72 をインストールする

virtualbox-ose-additions-72 をインストールする

tag: freebsd-15.1, freebsd, virtualbox, FreeBSD-15.1-for-VirtualBox, virtualbox-ose-additions

VirtualBox OSE Additions(VirtualBox Open Source Edition Additions)は、ゲストOS向けの追加ドライバ・ユーティリティ。

FreeBSDの場合は Oracle VirtualBox 公式の guest additions が提供されていないので、OSE版を利用する。

これを使うとVirtualBoxの仮想ウィンドウのサイズなどがGuest OS(FreeBSD上のX11)上で取得可能になる。

(クリップボード共有はうまくいっていない。。。)

■仮想マシンのグラフィックス設定を行う。

仮想マシンの電源オフの状態で操作する。

Oracle VirtualBox マネージャーからfreebsdの仮想マシンを選択して設定ボタン > 画面左上の高度タブを選択 > 画面左側ペインからディスプレイを選択 > グラフィックスコントローラ:VBoxSVGAを選択。(この時警告が出るが無視する)

■現在VirtualBox 7.2系を使っているので対応しているパッケージをインストールする

仮想マシン起動後の操作。

sudo bash

# パッケージの検索。細かいバージョン番号などは変動があるので毎回探す。
pkg search virtualbox-ose-additions

pkg install -y virtualbox-ose-additions-72

# 以下のコマンドを実行して、virtualbox guest addition サービスを有効にして、再起動する。
sysrc vboxguest_enable="YES"
sysrc vboxservice_enable="YES"

# 普段使うユーザーはwheelグループに所属していない場合は以下を実行
pw groupmod wheel -m george

# 再起動
reboot

■マウスボタンイベント(8と9)の無効化

virtualbox-ose-additions-72をインストールした場合、マウスホイールの操作に伴ってボタンイベント 8 9 (back/forward) が勝手に発生する。

firefox などを使ってスクロールする場合は不便なので、マウスボタンイベント 8 9 を無効化する。

sudo bash

cat > /usr/local/etc/X11/xorg.conf.d/50-mouse.conf << "EOF"
Section "InputClass"
    Identifier "Disable Mouse Button 8 9"
    MatchIsPointer "on"
    Option "ButtonMapping" "1 2 3 4 5 6 7 0 0"
EndSection
EOF

上の設定ファイルを追加後、X11を一度終了させて再度起動すると有効になる。

■余談

pkg install時に表示されるメッセージは以下。

Message from virtualbox-ose-additions-72-7.2.12.1500068:

--
VirtualBox Guest Additions are installed.

To enable and start the required services:

# sysrc vboxguest_enable="YES"
# sysrc vboxservice_enable="YES"

To start the services, restart the system.

In some situations, a panic will occur when the kernel module loads.
Having no more than one virtual CPU might mitigate the issue.

For features such as window scaling and clipboard sharing, membership of
the wheel group is required. With username "jerry" as an example:

# pw groupmod wheel -m jerry

The settings dialogue for FreeBSD guests encourages use of the VMSVGA
graphics controller. Whilst this might suit installations of FreeBSD
without a desktop environment (a common use case), it is not appropriate
where Guest Additions are installed.

Where Guest Additions are installed:

1. prefer VBoxSVGA

2. do not enable 3D acceleration (doing so will invisibly
   lose the preference for VBoxSVGA)

You may ignore the yellow alert that encourages use of VMSVGA.

2026.07.18(土) 11:43:31 X11設定編

X11設定編

tag: freebsd-15.1, freebsd, virtualbox, FreeBSD-15.1-for-VirtualBox

■ VirtualBox上で起動したFreeBSDからX11を使う

virtualbox-ose-additionsをインストールしたので、X11を使ってみる。

VirtualBoxの仮想マシンのウィンドウのコンソールからログイン。

ログイン後、そこからstartxコマンドを実行。

特に設定を行っていない場合(~/.xinitrc ファイルが無い場合)は、800x600のスクリーンサイズでtwmとxtermとxclockが起動する。

loginというタイトルの付いたxtermからexitと入力すると、X11は終了する。

■ ~/.xinitrcファイルの作成

startxした時に起動するプログラムや設定などは、~/.xinitrcファイルに書く。

まだ ~/.xinitrc ファイルが存在しない場合は、以下のコマンドでシステム標準のxinitrcをコピーして作成する。

cp /usr/local/etc/X11/xinit/xinitrc ~/.xinitrc

■ xrandr (X11 Resize and Rotate) コマンドを使って、VirtualBoxのスクリーンサイズを設定する

X11上のxterm上から引数なしでxrandrを実行すると、使用可能なディスプレイとスクリーンサイズが表示される。

コマンドの例。

xrandr

実行結果の例。

Screen 0: minimum 64 x 64, current 1400 x 967, maximum 32766 x 32766
VGA-0 connected primary 1400x967+0+0 0mm x 0mm
   1400x967      60.00 +
   2560x1600     60.00
   2560x1440     60.00
   2048x1536     60.00
   1920x1600     60.00
   1920x1080     60.00
   1600x1200     60.00
   1680x1050     60.00
   1400x1050     60.00
   1280x1024     60.00
   1024x768      60.00*
   800x600       60.00
   640x480       60.00

VirtualBoxの仮想マシンのウィンドウのサイズを手動で変化させた場合、xrandrの結果に「+」マークが付く。

普通はプリセットのサイズ(1024x768など)を設定するのだが、VirtualBoxのウィンドウサイズに合わせてスクリーンサイズを指定する場合は「+」マークの値を指定する。

設定コマンドの例:

xrandr --output VGA-0 --mode 1400x967 --rate 60

■ setxkbmapとxkbcompコマンドを使って日本語キーボード設定を行う

デフォルトでは us キーボード設定になっているので、必要ならば日本語キーボードレイアウト設定を行う。

以下のようなコマンドを ~/.xinitrc に記載しておく。

setxkbmap -layout jp -print | xkbcomp - $DISPLAY

■ X11 日本語入力設定 (fcitx5 anthy使用)

fcitx5 (anthy使用) パッケージのインストール。

sudo pkg search ja-fcitx5-anthy
sudo pkg install ja-fcitx5-anthy

以下を ~/.xinitrc に記載しておく。

export GTK_IM_MODULE=fcitx/xim
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
fcitx5 &

startxを入力してX11を起動し、xtermの上にマウスを置いて、Ctrl + スペース キーを押すとかな漢字変換開始になる。

再度Ctrl + スペース キーを押すとかな漢字変換終了する。

■ 変更後の ~/.xinitrc の例

(前略)

if [ -d "$xinitdir"/xinitrc.d ] ; then
        for f in "$xinitdir/xinitrc.d"/?*.sh ; do
                [ -x "$f" ] && . "$f"
        done
        unset f
fi

# start some nice programs

(ここから記述変更)

# fcitx5起動
USE_FCITX5=yes
if [ x"$USE_FCITX5"x = x"yes"x ] ; then
    export GTK_IM_MODULE=fcitx/xim
    export QT_IM_MODULE=fcitx
    export XMODIFIERS="@im=fcitx"
    fcitx5 &
    sleep 3
fi

# 日本語キーボードをセット
setxkbmap -layout jp -print | xkbcomp - ":0" 2>/dev/null

"$twm" &
"$xclock" -geometry 50x50-1+1 &
"$xterm" -geometry 80x25+620+130 &
exec "$xterm" -geometry 80x25+120+100 -name login

■ xrandr (X11 Resize and Rotate)コマンドを実行する bash関数を定義

~/.bashrc に以下の関数定義を記載して、 VirtualBoxの仮想マシンのウィンドウサイズを手動で変更した後に f-xrandr-VGA-0-resize を実行すると、ウィンドウサイズにフィットした X11 スクリーンサイズになる。

#
# resize VGA-0 screen size
#
function f-xrandr-VGA-0-resize() {
    if xrandr > /dev/null 2>&1 ; then
        xrandr
        if xrandr | grep VGA-0 > /dev/null ; then
            WIN_SIZE=$( xrandr | awk '{print $1 " " $2 " " $3}' | grep "\+" | awk '{print $1}' )
            if [ -z "$WIN_SIZE" ] ; then
                WIN_SIZE="1024x768"
            fi
            echo "WIN_SIZE is ::$WIN_SIZE::"
            if xrandr | grep "$WIN_SIZE" ; then
                xrandr --output VGA-0 --mode "$WIN_SIZE" --rate 60
            fi
        fi
    fi

}


日記ファイルリスト最新100件


Copyright(c) 1996-2026 George(小濱 純). All rights reserved.
私の作成したページへのリンクはご自由にどうぞ。
このページに間違いや要望などがありましたら george@yk.rim.or.jp まで御連絡ください。
メール本文に 6020-5440-3372 とか私の 本名 を漢字で書いて頂くと、ウチのSPAMフィルタを通過できます。

[ホームページ] [日記] [日記ファイル一覧] [読んでいる日記] [FreeBSD] [FreeBSD LINK] [検索]

home: <george@yk.rim.or.jp> or <george@ceres.dti.ne.jp>
(I am using white list SPAM filter. To avoid it, please write 6020-5440-3372 in mail body. This key word is valid since 2009-06-14 until 2025-12-31.)