FreeBSD12.2がリリースされたので下記の手順FreeBSDで構築したサーバを更新してました
$ sudo freebsd-update upgrade -r 12.2-RELEASE
$ sudo freebsd-update install
$ sudo reboot
$ sudo freebsd-update install
# 更新系ファイルを削除(更新に必須ではない。ただの容量節約)
$ sudo rm -rf /var/db/freebsd-update/files
更新するサーバは複数台あったのでパラレルで手作業してたところ、
そのうちの1台のサーバで手順をミスり1回目のsudo freebsd-update install
を行った後に
sudo rm -rf /var/db/freebsd-update/files
を行ってしまいました。
あせって下記のrollbackやfetchなどを再実行しても、手遅れでどうしようもない状態になってしまいました。
(更新系ファイルを消してしまったので当然ですが...)
$ sudo freebsd-update rollback
$ sudo freebsd-update fetch
$ sudo freebsd-update upgrade -r 12.2-RELEASE
結果的にカーネルが12.2でユーザランドが12.1の状態になってしまいました。
この状態でもサーバで使用していたプログラムは動きましたが気持ち悪いので、
サーバごと削除し他VMからコピーして復旧しました。
もし、他VMからコピーできるような状況ではなかったらどうしようかなと考えていたら、
freebsd-updateのマニュアルに--currently-running
というオプションがあるのを発見。
下記のコマンドを実行すればさきほどの状況でも更新できたかもしれません。
機会があったらやってみようと思います。
$ sudo freebsd-update upgrade -r 12.2-RELEASE --currently-running 12.1-RELEASE