長らく放置していたFreeBSD機をアップグレードすることにしました。

失敗編

いつものように……

freebsd-update -r 10.2-RELEASE upgrade

しばらく待つ……

終わったので再起動

reboot

再起動したらインストール

freebsd-update install

ここでまさかの展開

順調に進んできたかと思いきや、実際にファイルをインストールする段でSegmentation Fault! :weary:

なにかlibcあたりでも腐ったのか、あらゆるコマンドが動かなくなりました。

そしてシングルユーザモードも動かない

Ctrl-Alt-Delは効いたので再起動

ここでシングルユーザモードを選択しても、shが動かない :fearful:

回復編

10.2-RELEASEのインストーラで起動、Live DVDとして動かします。

gpartコマンドで、既存ルートファイルシステムの位置を確認。
ディレクトリを作ってマウント。

mkdir /var/tmproot
mount /dev/da0p2 /var/tmproot

/usr/freebsd-dist/base.txzファイルから、
/bin/*
/sbin/*
/lib/*
/libexec/*
/usr/lib/*
/usr/libexec/*
/usr/share/*
/usr/bin/*
/usr/sbin/*
を展開

cd /var/tmproot
tar jxvf /usr/freebsd-dist/base.txz '/bin/*' '/sbin/*' '/lib/*' '/libexec/*' '/usr/lib/*' '/usr/libexec/*' '/usr/share/*' '/usr/bin/*' '/usr/sbin/*'

マウントを外して再起動

cd /
umount /var/tmproot
reboot

これでとりあえず動くようになりました。 :kissing:

念のためもう一回freebsd-update動かしました。

freebsd-update install
reboot

今度は大丈夫でした。

おしまい。

次回「portmaster編」をお楽しみに!