====== FreeBSD 9.2-RELEASEへのfreebsd-updateに失敗してmake buildworldする羽目になった ====== freebsd-updateが悪いんじゃありません。更新中に間違ってsshを閉じた自分が悪いんです… ===== 経緯 ===== - 家鯖(9.0-RELEASE)で88SE9230なSATAカードとZFSのLZ4圧縮を使いたい!! - 9.2-RELEASEに更新しようず。 - 2度目のfreebsd-update installの途中で間違ってsshの接続を切る。 - とりあえず動いてはいるけど、何か気持ち悪い。freebsd-update installしても「更新は何もない。まずはfetchせよ」とでる。 - freebsd-update rollbackってコマンドがあるぞ→詳しく調べもせずに実行。 - FreeBSDがブートしなくなる。 - シングルユーザーモードで何とか起動。 - freebsd-update -r 9.0-RELEASE upgradeでダウングレードを試してみる。 - cannot open files/.gz: No such file or directory.とか出る。どうみても怪しい。 - ソースから9.2-RELEASEを作れば一番確実?と思い立ちカーネル再構築することに。(←いまここ) ===== 手順 ===== ==== ソースツリーの更新 ==== svnupを使う。 昔はCVSupやcsupだったが既に非推奨となっており、9.2-RELEASEのソースは最早正しく取得できない。 cd /usr/ports/net/svnup make install == 設定ファイルを編集 == host=svn0.us-west.freebsd.org branch=base/releng/9.2 == ソース取得 == 結構時間がかかるのでそのつもりで。 svnup release -v 2 ==== ビルド ==== FreeBSDハンドブックを熟読の事。 cd /usr/src make -j6 buildworld make -j6 buildkernel Xeon E3-1260L(2.40GHz)を論理3コア割り当て、2.5インチHDD(750GB/5400rpm)×2のZFSミラーリングの環境において、buildworldは約40分、buildkernelは約10分掛かった。 ==== カーネルのインストール ==== make installkernel ==== ユーザーランドのインストール ==== シングルユーザーモードで再起動する。 ルートを読み書き可能状態でマウントしなおす。 zfs set readonly=off zroot zfs mount -a BIOSの時計がローカルタイムの場合は時間を調整。 adjkerntz -i == 設定ファイルの更新 == 念のためバックアップ cp -Rp /etc /etc.old マージ mergemaster -p インストール cd /usr/src make installworld mergemaster -UPi make delete-old reboot make delete-old-libs http://toriyu.jp/hitorigoto/id2856.html http://w.vmeta.jp/tdiary/?date=20130808 http://www.freebsd.org/doc/ja/books/handbook/makeworld.html http://d.hatena.ne.jp/flageo/20081208/p1