
jail領域内の更新に失敗した時の話。
jail領域内のバージョンを12.3-RELEASEから13.1-RELEASEに更新しようとして、jailの母艦側から
freebsd-update -r 13.1-RELEASE -b /jail/hogehoge upgrade
みたいにやろうと思ったけども、上手く行かないので(いや、上手く行かせる方法は分かってるんだけど)jail領域内で
freebsd-update -r 13.1-RELEASE upgrade
みたいにやろうと思ったのね。
そして各種設定ファイルの調整・マージをして、
/usr/sbin/freebsd-update install
みたいにやったのね。
でも途中から、ファイルが無いとかエラーを吐き出して、なんか怪しい感じになったのね。まぁなんか一応更新ができたようなので、
/etc/rc.d/jail restart
とかやったのね。そうしたら、ld-elf.soなんちゃらエラーで起動しないのね( ノД`)シクシク…
で。
ここでミスを犯します。せっかくのjail領域なんだから、一旦領域丸ごとバックアップを取るべきだった。いや、もっと言うと、freebsd-updateを掛ける前にバックアップ取ってないとダメだったんですよね。
でまぁ、ftp.iij.ad.jpあたりからFreeBSDの塊を取ってきてですね
tar -zxpf base.txz -C /jail/hogehoge
とかやって、ベースパッケージを上書きしてみたんですよ。
そしたら当然、/etc/master.passwdとか/etc/groupとか、その辺もみんなインストール直後の設定になるわけですよね( ノД`)
(; ・`д・´)<あたりめーだろ!
…ハイ。仕方がないので、/etc/master.passwdとか/etc/groupとかを編集して何とか対応しましたよ。
まぁアレですね。バックアップはちゃんと取っておきましょうって話で。
もっとも、tar -zxpf base.txz -C /jail/hogehoge で真っさらなjail領域を先に作ってしまい、そこに各種ディレクトリを突っ込んでいくという手もあるか…?
いや、既存のものを生かす方が楽か…。
とりま復帰はできたのでほっと一安心。
以上。