Boot Environment を使っているならば、新しいマシンへ簡単に環境を移すことができます。
単に古いマシンの default 環境を新しいマシンの new 環境にコピーし、new 環境から起動するだけです。
以下、古いマシンを old_host 、新しいマシンを new_host として、具体的な手順を示します。
まず、新しいマシンに zfs root で FreeBSD をインストールします。 この時、古いマシンと同じバージョンの FreeBSD か、より新しいバージョンの FreeBSD を選びます。 新しいマシンの設定はネットワークに接続できる最小限の設定で構いません。 ports / pkg のインストールも不要です。 ユーザも作る必要はありません。(どのみち root で作業しますので)
そして、古いマシンと新しいマシンをネットワークに接続します。 IP アドレスやデフォルトルート等は環境に合わせて、適切に設定してください。
新しいマシン側では new 環境に対して zfs recv を行います。
new_host# nc -l 9999 | zfs recv zroot/ROOT/new
古いマシン側では default 環境にタグをつけた上でそれを zfs send します。
old_host# zfs snapshot zroot/ROOT/default@current old_host# zfs send -L -c zroot/ROOT/default@current | nc -N new_host 9999 old_host# zfs destroy zroot/ROOT/default@current
最近の zfs では large blocks と圧縮をサポートしていますので、 zfs send に -L と -c をつけておくと良いでしょう。
もし、ネットワークが不安定で一度の send で送れないようでしたら、 send & recv のレジュームを試してみてください。
コピーが完了したら古いホストを停止します。新しいホストは設定を含めて何もかもが全く同じ状態で立ち上がります。 もし static な IPアドレスを設定していた場合、重複することになりますので、古いホストは停止しておくと良いでしょう。
old_host# shutdown -p now
新しいホストでは new 環境から起動します。
new_host# bectl activate new new_host# shutdown -r now
これで新しいマシンで設定も何もかもが同じ FreeBSD が起動します。 必要ならば IP アドレスを再設定してください。
host id も同じになりますので、以下のコマンドで host id を再設定すると良いでしょう。
new_host# /etc/rc.d/hostid reset
host id が同じだと bridge(4) や tap(4) に割り当てる MAC アドレスが同じになります。 また、NFS のクライアント識別にも使用されており、古いホストと同時に接続するとエラーが表示されます。 zfs のプールにも import 中のシステムの情報として host id が書き込まれます。物理的なディスク装置を抜き出す時は export してからにしましょう。 古いホストを再起動する際にはこれらにも注意してください。