====== 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