Re: 外付けディスクへのFreeBSD のインストール

From: Tomoaki AOKI <junchoon_at_dec.sakura.ne.jp>
Date: Sun, 11 Jan 2026 08:58:57 UTC
On Sun, 11 Jan 2026 15:59:50 +0900
丸山直昌 <masa@amogha.jp> wrote:

> 丸山です。
> 
> Sun, 11 Jan 2026 10:23:35 +0900
> Tomoaki AOKI <junchoon@dec.sakura.ne.jp> writes:
> 
> >スクリプト全体を読んでいないので間違っている可能性は高いですが、
> >変数名からするとdestroyするのではなくexportしているだけっぽいです。
> >ただ、exportした結果busyでなくなってdestroyできるようになってしまって...
> >という流れは有り得そうに見えます。
> 
> ちょっと書き間違いました。 export です。すべての zfs を umount して
> export しようとします。実際には root fsだけは busy で umount できず、
> export もできないのですが、 /tmp と /var/log がumountされてしまうので、
> インストール作業そのものはエラーで止まります。

もしかして、USB memstickなりDVD-Rなりに書き込んだインストール媒体から
起動するのでなく、インストール済みの環境から別ドライブ等にインストール
しようとしていて元の環境がRoot on ZFSで/tmpも/var/logも独立した
データセットになっている状況又はbsdinstallを使ってのアップグレード
でしょうか?

普通にインストールする場合、恐らくですがメモリが潤沢でない場合を
考慮して媒体中のファイルシステムにZFSを使うのは考え難いですし、
CD-RやDVD-Rのようなrwでリマウントしようとしても本質的にできない
媒体を使う場合を考慮すると/tmpや/var/logのようなインストール中に
書き込みが発生する筈のディレクトリはmfsかtmpfsで構成しておく
必要があります(たぶん、インストール先のパーティションやpoolを
用意するまでの段階でも書き込みが発生しますし)。

となると、ZFSのpool内のデータセット(ファイルシステム)を
アンマウントしても、通常のインストールなら影響させようが
ない筈なのですが。

アップグレードにbsdinstallを使う(sysinstall時代のまだ
freebsd-updateが無かった時期はsysinstallを使うのが常道
でしたが)形であれば、恐らくですが、開発者サイドとしては
「そういう人たちはアップグレードにはfreebsd-updateを
使うよね」としか認識していなくて全くテストしていないと
いう可能性が臭います。

freebsd-updateが遅い!ということであれば、私は試していないの
ですが、比較的最近portsに入ったsysutils/freebsd-rustdate

 https://www.freshports.org/sysutils/freebsd-rustdate/

が数倍速いという話が流れてきていたと思います。
その名の通りRust依存なのでビルドしようと思うとRustの時点で大変
ですが、pkgから入れるならそのあたり関係ありませんし、試す価値は
あるかもしれません。

# sourceアップグレード派には関係ないもので、突っ込んで調べては
# いないんです。


> >Bugzillaで"bsdinstall zfs"をキーワードとしてstatusがNEWかOPENかIN
> >PROGRESSかのものを検索すると16個ほど引っかかりますね。
> >
> > https://bugs.freebsd.org/bugzilla/buglist.cgi?bug_status=New&bug_status=Open&bug_status=In%20Progress&list_id=919788&query_format=advanced&short_desc=bsdinstall%20zfs&short_desc_type=allwordssubstr
> >
> >ある程度近そうなのはこれですか。
> >
> > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=214911
> 
> あ、そうです。
> 
>  Tim Chase 2016-11-28 19:56:14 UTC
> 
> When issuing "bsdinstall -D debug.log", the tail of my log (right before the hang/freeze) is
> 
> DEBUG: zfs_create_diskpart: disk=[md0] index=[0]
> DEBUG: zfs_create_diskpart: Exporting ZFS pools...   
> DEBUG: zfs_create_diskpart: zpool export -f "zroot"
> 
> So the attempt to "zpool export -f" my root also seems to be taking down the GELI according to my console.  But I need that zroot to stick around since that's where bsdinstall and its supporting files are located.
> 
> ということです。Tim の場合は重要なファイルが /usr/src にあって、それが
> umount されるのが困る、と言うことらしいですね。そんな凝ったことをしない
> 普通のインストールだと元ファイルが /usr/freebsd-dist/ にあって、これは
> root fs と一体ですから umount されませんが、/tmp と /var/log が無くなる
> ことによって通常のインストールでもコケます。こんな酷いバグが10年近く放っ
> ておかれるなんて、信じられない。

たぶん、先述のとおりの状況なのかな、と。


> >> 別の問題ですが、14.3のインストーラーを先ほどちょっと動かしてみたらCtrl-l
> >> での画面更新が効きませんね。インストーラーを起動してから USBデバイスを刺
> >> し込んでそのUSBデバイスにインストールする場合、つまりは私のブログの「外
> >> 付けディスクへのFreeBSD13.5のインストール(その2) 」ではこれ必要なんです
> >> が、、、。
> >
> >こちらはもしかするとデフォルトのコマンドラインシェルがtcshから
> >shに変更されたからかもしれません。
> 
> なるほど!試してみます。
> 
> > コミットの履歴を追っていないので
> >間違っているかもしれませんが、確か14系からの変更だったと思います。
> >もしこれが原因だと、一番安全なのはデフォルトのシェルをtcshに切り戻した
> >インストール媒体を用意することでしょうか。
> >試していませんが、インストール媒体がUSB memstickならインストール済みの
> >FreeBSD環境から(仮に/mnt/にマウントしたとして)/mnt/etc/master.passwd
> >を編集してrootのシェルを(t)cshに変更し、処理対象をデフォルトから
> >変更してpwd_mkdbを実行して/mnt/etc/spwd.dbを更新させる感じでしょうか?
> 
> そんな面倒なこと、UNIX未経験者に要求できません。私がインストール作業をす
> る場合の話をしているのではないのです。UNIX未経験者に「こうすればFreeBSD
> を楽しく使えるよ」という解説をどう書いたら良いか、という話が私のテーマな
> のです。UNIX未経験者がハマりそうな落とし穴はすべて塞いでおかなくてはいけ
> ないのです。

うーん、別の方法でリフレッシュできればいいんですが。
検索してみても/bin/shでも画面更新はCtrl+Lになっていて、何故駄目なのかが
分かりません。

あるいは、ハンドブックの2.6.2(リンク先は2.6ですが)の画面でCancelしたら
直前のステップに戻るようなら、一度Cancelして入り直せば更新された情報に
なったりしませんか?
もしそれでうまくいくなら、「後から接続したUSBメモリが認識されて
いなければ、一度Cancelしてやり直してみましょう」で済みそうなんですが。

> 
> --------
> 丸山 直昌 まるやま なおまさ
> メールアドレス: masa@amogha.jp
> 


-- 
青木 知明  [Tomoaki AOKI]    <junchoon@dec.sakura.ne.jp>